DETAILED ACTION
This action is in reply to the original application filed on 06/11/2024.
Claims 1-20 are rejected.
Claims 1-20 are currently pending and have been examined.
Information Disclosure Statement
Information Disclosure Statement received 09/13/2024, 12/07/2025, and 03/09/2026 has been reviewed and considered.
Notice of Pre-AIA or AIA Status
The present application, filed on or after March 16, 2013, is being examined under the first inventor to file provisions of the AIA .
Claim Rejections - 35 USC § 112(b)
The following is a quotation of 35 U.S.C. 112(b):
(b) CONCLUSION.—The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the inventor or a joint inventor regards as the invention.
The following is a quotation of 35 U.S.C. 112 (pre-AIA ), second paragraph:
The specification shall conclude with one or more claims particularly pointing out and distinctly claiming the subject matter which the applicant regards as his invention.
Claims 1-11 and 17-20 are rejected under 35 U.S.C. 112(b) or 35 U.S.C. 112 (pre-AIA ), second paragraph, as being indefinite for failing to particularly point out and distinctly claim the subject matter which the inventor or a joint inventor (or for applications subject to pre-AIA 35 U.S.C. 112, the applicant), regards as the invention.
Claims 1 and 17 recite “receiving item request data describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity … processing the queued item request in the item request processing queue to allocate an amount of the item equal to the item procurement quantity to the recipient.” It is unclear to one of ordinary skill in the art how to allocate an amount of the item that is equal to the item procurement quantity to the recipient when the received item request data does not contain optional item procurement quantity information. Is the item procurement quantity determined from a data that is not the received item request data? Is the item procurement quantity always included in the received item request data? For the purpose of this examination, Examiner interprets “receiving item request data describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity … processing the queued item request in the item request processing queue to allocate an amount of the item equal to the item procurement quantity to the recipient” as the item procurement quantity being determined from a data that is not the received item request data.
Claims 2-11 and 18-20 inherit the deficiencies noted in claims 1 and 17, respectfully, and are therefore rejected on the same basis.
Claim Rejections - 35 USC § 101
35 U.S.C. 101 reads as follows:
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
Claims 1-20 are rejected under 35 U.S.C. 101 because the claimed invention is directed to a judicial exception (i.e., law of nature, a natural phenomenon, or an abstract idea) without significantly more.
Under Step 1 of the Subject Matter Eligibility Test for Products and Processes, the claims must be directed to one of the four statutory categories (see MPEP 2106.03). All the claims are directed to one of the four statutory categories (YES).
Under Step 2A of the Subject Matter Eligibility Test, it is determined whether the claims are directed to a judicially recognized exception (see MPEP 2106.04). Step 2A is a two-prong inquiry.
Under Prong 1, it is determined whether the claim recites a judicial exception (YES). Taking Claim 12 as representative, the claim recites limitations that fall within the certain methods of organizing human activity groupings of abstract ideas, including:
-one or more computing devices; and
-one or more computer-readable storage media storing instructions which, when executed by the one or more computing devices, cause the one or more computing devices to perform operations comprising:
-receiving item request data describing a plurality of recipients, an item associated with an item listing, and item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients;
-generating a plurality of secure hashes from the item request data, the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring;
-generating queued item requests in an item request processing queue from the plurality of secure hashes; and
-processing the queued item requests in the item request processing queue in a sequence of the plurality of secure hashes in the secure hash ring to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient.
The above limitations recite the concept of receiving and processing queued product order requests. The above limitations fall within the “Certain Methods of Organizing Human Activity” groupings of abstract ideas, enumerated in MPEP 2106.04(a).
Certain methods of organizing human activity include:
fundamental economic principles or practices (including hedging, insurance, and mitigating risk)
commercial or legal interactions (including agreements in the form of contracts; legal obligations; advertising, marketing or sales activities or behaviors; and business relations)
managing personal behavior or relationships or interactions between people (including social activities, teaching, and following rules or instructions)
The limitations of receiving item request data describing a plurality of recipients, an item associated with an item listing, and item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients; and generating queued item requests in an item request processing queue from the plurality of secure hashes are processes that, under their broadest reasonable interpretation, cover a commercial interaction. For example, “receiving” and “generating” in the context of this claim encompass advertising, and marketing or sales activities.
Similarly, the limitations of one or more computer-readable storage media storing instructions which, when executed by the one or more computing devices, cause the one or more computing devices to perform operations comprising: generating a plurality of secure hashes from the item request data, the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring; processing the queued item requests in the item request processing queue in a sequence of the plurality of secure hashes in the secure hash ring to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient are processes that, under their broadest reasonable interpretation, cover a commercial interaction. That is, other than reciting that the operations are performed via one or more computing devices that execute one or more computer-readable storage media storing instructions, that the secure hashes are stored in a hash ring, that the item procurement quantities are in the secure hash ring, and that the plurality of secure hashes are in the secure hash ring, nothing in the claim element precludes the step from practically being performed by people. For example, but for the “one or more computer-readable storage media storing instructions,” “one or more computing devices,” and “a secure hash ring” language, “perform,” “generating,” and “processing” in the context of this claim encompasses advertising, and marketing or sales activities.
Under Prong 2, it is determined whether the claim recites additional elements that integrate the exception into a practical application of the exception. This judicial exception is not integrated into a practical application (NO).
-one or more computing devices; and
-one or more computer-readable storage media storing instructions which, when executed by the one or more computing devices, cause the one or more computing devices to perform operations comprising:
-receiving item request data describing a plurality of recipients, an item associated with an item listing, and item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients;
-generating a plurality of secure hashes from the item request data, the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring;
-generating queued item requests in an item request processing queue from the plurality of secure hashes; and
-processing the queued item requests in the item request processing queue in a sequence of the plurality of secure hashes in the secure hash ring to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient.
These limitations are not indicative of integration into a practical application because:
The additional elements of claim 12 are recited at a high level of generality (i.e. as generic computing hardware) such that they amount to nothing more than mere instructions to implement or apply the abstract idea on a generic computing hardware (or, merely use a computer as a tool to perform an abstract idea) as supported by paragraph [0027] of Applicant’s specification – “Processor set 110 includes one, or more, computer processors (e.g., hardware processors) of any type now known or to be developed in the future.” Specifically, the additional elements of one or more computing devices, one or more computer-readable storage media storing instructions, one or more computing devices, and a secure hash ring are recited at a high-level of generality (i.e. as a generic processor performing the generic computer functions of performing data, receiving data, generating data, and processing data) Accordingly, these additional elements do not integrate the abstract idea into a practical application because they do not impose any meaningful limits on practicing the abstract idea. The claim is directed to an abstract idea. Further, the additional elements do no more than generally link the use of the judicial exception to a particular technological environment or field of use (such as computers or computing networks). Employing well-known computer functions to execute an abstract idea, even when limiting the use of the idea to one particular environment, does not integrate the exception into a practical application.
Additionally, the additional elements are insufficient to integrate the abstract idea into a practical application because the claim fails to i) reflect an improvement in the functioning of a computer or an improvement to another technology or technical field, ii) apply the judicial exception with, or use the judicial exception in conjunction with, a particular machine or manufacture that is integral to the claim, iii) effect a transformation or reduction of a particular article to a different state or thing, or iv) apply or use the judicial exception in some other meaningful way beyond generally linking the use of the judicial exception to a particular technological environment.
Accordingly, the judicial exception is not integrated into a practical application.
Under Step 2B, it is determined whether the claims recite additional elements that amount to significantly more than the judicial exception. The claims of the present application do not include additional elements that are sufficient to amount to significantly more than the judicial exception (NO).
In the case of claim 12, taken individually or as a whole, the additional elements of claim 9 do not provide an inventive concept. As discussed above under step 2A (prong 2) with respect to the integration of the abstract idea into a practical application, the additional elements used to perform the claimed functions amount to no more than a general link to a technological environment.
Even considered as an ordered combination (as a whole), the additional elements do not add anything significantly more than when considered individually.
Claim 1 is a method reciting similar functions as claim 12. Examiner notes that claim 1 recites the additional elements of a secure hash ring, however, claim 1 does not qualify as eligible subject matter for similar reasons as claim 12 indicated above.
Claim 17 is one or more non-transitory computer-readable storage medium reciting similar functions as claim 12. Examiner notes that claim 17 recites the additional elements of one or more non-transitory computer-readable storage medium, computer-readable instructions, one or more processors, and a secure hash ring, however, claim 17 does not qualify as eligible subject matter for similar reasons as claim 12 indicated above.
Therefore, claims 1, 12, and 17 do not provide an inventive concept and do not qualify as eligible subject matter.
Dependent claims 2-11, 13-16, and 18-20, when analyzed as a whole, are held to be patent ineligible under 35 U.S.C. § 101 because they do not add “significantly more” to the abstract idea. More specifically, dependent claims 2-11, 13-16, and 18-20 further fall within the “Certain Methods of Organizing Human Activity” grouping of abstract ideas in that they recite commercial interactions. Dependent claims 7-9, 11, 16, and 18-19 do not recite any farther additional elements, and as such are not indicative of integration into a practical application for at least similar reasons discussed above. Dependent claims 2-6, 10, 13-15, and 20 recite the additional elements of network traffic, forming the secure hash ring, a platform of a service provider system, a count-min sketch probabilistic data structure, a sharded random hash ring, a graphical user interface, and the one or more computing devices, but similar to the analysis under prong two of Step 2A these additional elements are used as a tool to perform the abstract idea. As such, under prong two of Step 2A, claims 2-11, 13-16, and 18-20 are not indicative of integration into a practical application for at least similar reasons as discussed above. Thus, dependent claims 2-11, 13-16, and 18-20 are “directed to” an abstract idea. Next, under Step 2B, similar to the analysis of claims 1, 12, and 17, dependent claims 2-11, 13-16, and 18-20 when analyzed individually and as an ordered combination, merely further define the commonplace business method (i.e. receiving and processing queued product order requests) being applied on a general-purpose computer and, therefore, do not amount to significantly more than the abstract idea itself. Accordingly, the Examiner concludes that there are no meaningful limitations in the claims that transform the judicial exception into a patent eligible application such that the claims amount to significantly more than the judicial exception itself. The analysis above applies to all statutory categories of invention.
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.
This application currently names joint inventors. In considering patentability of the claims the examiner presumes that the subject matter of the various claims was commonly owned as of the effective filing date of the claimed invention(s) absent any evidence to the contrary. Applicant is advised of the obligation under 37 CFR 1.56 to point out the inventor and effective filing dates of each claim that was not commonly owned as of the effective filing date of the later invention in order for the examiner to consider the applicability of 35 U.S.C. 102(b)(2)(C) for any potential 35 U.S.C. 102(a)(2) prior art against the later invention.
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.
Claims 1, 8, 12, 17, and 19 are rejected under 35 U.S.C. 103 as being unpatentable over Wang et al. (US 2022/0035666 A1), hereinafter Wang, in view of Vosshall et al. (US 2010/0076930 A1), hereinafter Vosshall.
Regarding claim 1, Wang discloses a method, comprising:
-receiving item request data describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity (Wang, see at least: “a user event to be processed is received [i.e. receiving item request data]” [0026] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity]” [0035] and “the user identifier [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity] of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value” [0046] and “user events may be stored into different event queues based on types of the user events. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity] may be stored into another event queue” [0050] Examiner notes that Taobao is an online shopping platform [i.e. an item associated with an item listing]);
-generating a secure hash from the item request data, the secure hash stored and representing the item request data (Wang, see at least: “the user identifier of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value [i.e. generating a secure hash from the item request data]” [0046] and “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. the secure hash stored and representing the item request data]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048] and “the storage module 102 is configured to process the user identifier of the user event to be processed through a consistent hashing algorithm to obtain a hash value, and store the user event to be processed into the event queue corresponding to the hash value [i.e. the secure hash stored and representing the item request data]” [0127]);
-generating a queued item request in an item request processing queue based on the secure hash (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. generating a queued item request in an item request processing queue based on the secure hash]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048]); and
-processing the queued item request in the item request processing queue to allocate an amount of the item equal to the item procurement quantity to the recipient (Wang, see at least: “a received user event may be cached to an event queue and the user event may be taken from the event queue and then is processed [i.e. processing the queued item request in the item request processing queue]” [0055] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid” [0035] and “an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. to allocate an amount of the item equal to the item procurement quantity to the recipient] may be stored into another event queue, etc.” [0050] Examiner notes that Taobao is an online shopping platform and processing the order for an item results in the quantity of the product ordered by the user being provided to the user [i.e. to allocate an amount of the item equal to the item procurement quantity to the recipient]).
Wang does not explicitly disclose the secure hash being stored in a secure hash ring and representing the item request data being in the secure hash ring.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring (Vosshall, see at least: “FIG. 8 shows the manner in which responsibility for a read operation or a write operation is assigned to a particular host 130 based on a hash value [i.e. representing the item request data in the secure hash ring]. Each host 130 is responsible for read/write operations in connection with hash values extending from its own position in the hash range to the position of the previous host 130. For example, if hosts A, B, C, D and E are positioned at hash values h.sub.1, h.sub.2, h.sub.3, h.sub.4, and h.sub.5, respectively, then host B is responsible for the range of hash values h.sub.1<h.ltoreq.h.sub.2, host C is responsible for the range of hash values h.sub.2<h.ltoreq.h.sub.3, and so on. The assignment of responsibility "wraps around" for host A, that is, host A is responsible for the range of hash values h.sub.5<h.ltoreq.2.sup.128 and 0.ltoreq.h.ltoreq.h.sub.1 In operation, for example, data sets with keys k.sub.1 and k.sub.2 are assigned to hosts 130 by hashing the keys k.sub.1 and k.sub.2 to yield their position on ring 184 [i.e. the secure hash stored in a secure hash ring], and then walking ring 184 clockwise to find the first host 130 with a position larger than the hashed key of the data set. In the case of key k.sub.1, the first host with a larger position, which the corresponding data set is assigned to, is host A. In the case of key k.sub.2, the first host with a larger position, which the corresponding data set is assigned to, is host B” [0035] and “As shown in FIG. 4, to store data received from a client process 134 (e.g., one of the services 114), the data set service 112 receives a write request from the client process 134 (step 150) [i.e. representing the item request data] and then responds by writing the data at multiple hosts 130 (step 152). (For purposes of this application, the term "client process" refers to any program logic that may request data sets from any other program logic, e.g., herein, from the data set service 112.)” [0028] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set and that is suitable for use as an input to a hash function [i.e. representing the item request data in the secure hash ring]” [0033] and Fig. 8 displays that the hash values are stored in a hash ring). This known technique is applicable to the method of Wang as they both share characteristics and capabilities, namely, they are directed to utilizing a hash function for data processing.
It would have been recognized that applying the known technique of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring, as taught by Vosshall, to the teachings of Wang 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 references into similar methods. Further, adding the modification of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring, as taught by Vosshall, into the method of Wang would have been recognized by those of ordinary skill in the art as resulting in an improved method that would improve load balancing (Vosshall, [0045]).
Regarding claim 8, Wang in view of Vosshall teaches the method of claim 1. Wang further discloses:
-wherein the secure hash is encoded via a cryptographic hash algorithm (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value [i.e. wherein the secure hash is encoded via a cryptographic hash algorithm], and the user event to be processed is stored into the event queue corresponding to the hash value” [0048]).
Regarding claim 12, Wang discloses a system, comprising:
-one or more computing devices (Wang, see at least: “The present disclosure may include dedicated hardware implementations such as application specific integrated circuits, programmable logic arrays and other hardware devices” [0171]); and
-one or more computer-readable storage media storing instructions which, when executed by the one or more computing devices (Wang, see at least: “a non-temporary computer readable storage medium including an instruction is further provided, for example, the memory 932 including the instruction; and the instruction may be executed by the processing component 922 of the server 900 to complete the above method” [0136]), cause the one or more computing devices to perform operations comprising:
-receiving item request data describing a plurality of recipients and an item associated with an item listing (Wang, see at least: “a user event to be processed is received [i.e. receiving item request data]” [0026] and “user events may be stored into different event queues based on types of the user events [i.e. receiving item request data describing a plurality of recipients]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. describing an item associated with an item listing] may be stored into another event queue, etc.” [0050] and “the user identifier [i.e. describing a recipient] of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value” [0046] Examiner notes that Taobao is an online shopping platform [i.e. an item associated with an item listing]);
-generating a plurality of secure hashes from the item request data, the plurality of secure hashes stored and representing the plurality of recipients and the item procurement (Wang, see at least: “the user identifier of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value [i.e. generating a plurality of secure hashes from the item request data]” [0046] and “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. the plurality of secure hashes stored and representing the item procurement]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048] and “user events may be stored into different event queues based on types of the user events [i.e. and representing the plurality of recipients]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order may be stored into another event queue, etc.” [0050]);
-generating queued item requests in an item request processing queue from the plurality of secure hashes (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. generating queued item requests in an item request processing queue from the plurality of secure hashes]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048] and “user events may be stored into different event queues based on types of the user events [i.e. queued item requests in an item request processing queue from the plurality of secure hashes]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order may be stored into another event queue, etc.” [0050]); and
-processing the queued item requests in the item request processing queue in a sequence of the plurality of secure hashes to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient (Wang, see at least: a received user event may be cached to an event queue and the user event may be taken from the event queue and then is processed [i.e. processing the queued item requests in the item request processing queue]” [0055] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid” [0035] and “a sequential order for processing user events in an event queue [i.e. in a sequence of the plurality of secure hashes] can be dynamically adjusted by dynamically sorting priorities” [0064] and “an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient] may be stored into another event queue, etc.” [0050] Examiner notes that Taobao is an online shopping platform and processing the order for an item results in the quantity of the product ordered by the user being provided to the user [i.e. to allocate an amount of the item to each recipient of the plurality of recipients, where the amount of the item for each recipient is equal to the respective procurement quantity for the recipient]).
Wang does not explicitly disclose receiving item request data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients; the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring; and the plurality of secure hashes being in the secure hash ring.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of receiving item request data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients (Vosshall, see at least: “each data set may be a shopping cart related to a specific customer. The data set may include item identification information for items in the shopping cart, item information for items that a user may have selected but not yet purchased, quantity information of items in the shopping cart [i.e. data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients], and so on” [0025] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests [i.e. receiving item request data] that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set [i.e. receiving item request data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients] and that is suitable for use as an input to a hash function” [0033]);
the known technique of the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring (Vosshall, see at least: “FIG. 8 shows the manner in which responsibility for a read operation or a write operation is assigned to a particular host 130 based on a hash value [i.e. the plurality of secure hashes representing the plurality of recipients and the item procurement quantities in the secure hash ring]. Each host 130 is responsible for read/write operations in connection with hash values extending from its own position in the hash range to the position of the previous host 130. For example, if hosts A, B, C, D and E are positioned at hash values h.sub.1, h.sub.2, h.sub.3, h.sub.4, and h.sub.5, respectively, then host B is responsible for the range of hash values h.sub.1<h.ltoreq.h.sub.2, host C is responsible for the range of hash values h.sub.2<h.ltoreq.h.sub.3, and so on. The assignment of responsibility "wraps around" for host A, that is, host A is responsible for the range of hash values h.sub.5<h.ltoreq.2.sup.128 and 0.ltoreq.h.ltoreq.h.sub.1 In operation, for example, data sets with keys k.sub.1 and k.sub.2 are assigned to hosts 130 by hashing the keys k.sub.1 and k.sub.2 to yield their position on ring 184 [i.e. the plurality of secure hashes stored in a secure hash ring], and then walking ring 184 clockwise to find the first host 130 with a position larger than the hashed key of the data set. In the case of key k.sub.1, the first host with a larger position, which the corresponding data set is assigned to, is host A. In the case of key k.sub.2, the first host with a larger position, which the corresponding data set is assigned to, is host B” [0035] and “As shown in FIG. 4, to store data received from a client process 134 (e.g., one of the services 114), the data set service 112 receives a write request from the client process 134 (step 150) and then responds by writing the data at multiple hosts 130 (step 152). (For purposes of this application, the term "client process" refers to any program logic that may request data sets from any other program logic, e.g., herein, from the data set service 112.)” [0028] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set and that is suitable for use as an input to a hash function [i.e. representing the plurality of recipients and the item procurement quantities in the secure hash ring]” [0033] and “each data set may be a shopping cart related to a specific customer. The data set may include item identification information for items in the shopping cart, item information for items that a user may have selected but not yet purchased, quantity information of items in the shopping cart [i.e. the item procurement quantities], and so on” [0025] and Fig. 8 displays that the hash values are stored in a hash ring); and
the known technique of the plurality of secure hashes in the secure hash ring (Vosshall, see at least: “FIG. 8 shows the manner in which responsibility for a read operation or a write operation is assigned to a particular host 130 based on a hash value [i.e. the plurality of secure hashes in the secure hash ring]. Each host 130 is responsible for read/write operations in connection with hash values extending from its own position in the hash range to the position of the previous host 130. For example, if hosts A, B, C, D and E are positioned at hash values h.sub.1, h.sub.2, h.sub.3, h.sub.4, and h.sub.5, respectively, then host B is responsible for the range of hash values h.sub.1<h.ltoreq.h.sub.2, host C is responsible for the range of hash values h.sub.2<h.ltoreq.h.sub.3, and so on. The assignment of responsibility "wraps around" for host A, that is, host A is responsible for the range of hash values h.sub.5<h.ltoreq.2.sup.128 and 0.ltoreq.h.ltoreq.h.sub.1 In operation, for example, data sets with keys k.sub.1 and k.sub.2 are assigned to hosts 130 by hashing the keys k.sub.1 and k.sub.2 to yield their position on ring 184 [i.e. the plurality of secure hashes in the secure hash ring], and then walking ring 184 clockwise to find the first host 130 with a position larger than the hashed key of the data set. In the case of key k.sub.1, the first host with a larger position, which the corresponding data set is assigned to, is host A. In the case of key k.sub.2, the first host with a larger position, which the corresponding data set is assigned to, is host B” [0035]). These known techniques are applicable to the system of Wang as they both share characteristics and capabilities, namely, they are directed to utilizing a hash function for data processing.
It would have been recognized that applying the known techniques of receiving item request data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients; the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring; and the plurality of secure hashes in the secure hash ring, as taught by Vosshall, to the teachings of Wang 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 references into similar systems. Further, adding the modifications of receiving item request data describing item procurement quantities including a respective item procurement quantity for each recipient of the plurality of recipients; the plurality of secure hashes stored in a secure hash ring and representing the plurality of recipients and the item procurement quantities in the secure hash ring; and the plurality of secure hashes in the secure hash ring, as taught by Vosshall, into the system of Wang would have been recognized by those of ordinary skill in the art as resulting in an improved system that would improve load balancing (Vosshall, [0045]).
Regarding claim 17, Wang discloses one or more non-transitory computer-readable storage medium comprising computer-readable instructions stored thereon that, responsive to execution by one or more processors, perform operations comprising:
-receiving item request data describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity (Wang, see at least: “a user event to be processed is received [i.e. receiving item request data]” [0026] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity]” [0035] and “the user identifier [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity] of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value” [0046] and “user events may be stored into different event queues based on types of the user events. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. describing at least one of a recipient, an item associated with an item listing, or an item procurement quantity] may be stored into another event queue” [0050] Examiner notes that Taobao is an online shopping platform [i.e. an item associated with an item listing]);
-generating a secure hash from the item request data, the secure hash stored and representing the item request data (Wang, see at least: “the user identifier of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value [i.e. generating a secure hash from the item request data]” [0046] and “the user identifier of the user event to be processed may be processed through the consistent hash ing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. the secure hash stored and representing the item request data]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048]);
-generating a queued item request in an item request processing queue from the secure hash (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. generating a queued item request in an item request processing queue from the secure hash]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048]); and
-processing the queued item request in the item request processing queue to allocate an amount of the item equal to the item procurement quantity to the recipient (Wang, see at least: “a received user event may be cached to an event queue and the user event may be taken from the event queue and then is processed [i.e. processing the queued item request in the item request processing queue]” [0055] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid” [0035] and “an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. to allocate an amount of the item equal to the item procurement quantity to the recipient] may be stored into another event queue, etc.” [0050] Examiner notes that Taobao is an online shopping platform and processing the order for an item results in the quantity of the product ordered by the user being provided to the user [i.e. to allocate an amount of the item equal to the item procurement quantity to the recipient]).
Wang does not explicitly disclose the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring (Vosshall, see at least: “FIG. 8 shows the manner in which responsibility for a read operation or a write operation is assigned to a particular host 130 based on a hash value [i.e. representing the item request data in the secure hash ring]. Each host 130 is responsible for read/write operations in connection with hash values extending from its own position in the hash range to the position of the previous host 130. For example, if hosts A, B, C, D and E are positioned at hash values h.sub.1, h.sub.2, h.sub.3, h.sub.4, and h.sub.5, respectively, then host B is responsible for the range of hash values h.sub.1<h.ltoreq.h.sub.2, host C is responsible for the range of hash values h.sub.2<h.ltoreq.h.sub.3, and so on. The assignment of responsibility "wraps around" for host A, that is, host A is responsible for the range of hash values h.sub.5<h.ltoreq.2.sup.128 and 0.ltoreq.h.ltoreq.h.sub.1 In operation, for example, data sets with keys k.sub.1 and k.sub.2 are assigned to hosts 130 by hashing the keys k.sub.1 and k.sub.2 to yield their position on ring 184 [i.e. the secure hash stored in a secure hash ring], and then walking ring 184 clockwise to find the first host 130 with a position larger than the hashed key of the data set. In the case of key k.sub.1, the first host with a larger position, which the corresponding data set is assigned to, is host A. In the case of key k.sub.2, the first host with a larger position, which the corresponding data set is assigned to, is host B” [0035] and “As shown in FIG. 4, to store data received from a client process 134 (e.g., one of the services 114), the data set service 112 receives a write request from the client process 134 (step 150) [i.e. representing the item request data] and then responds by writing the data at multiple hosts 130 (step 152). (For purposes of this application, the term "client process" refers to any program logic that may request data sets from any other program logic, e.g., herein, from the data set service 112.)” [0028] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set and that is suitable for use as an input to a hash function [i.e. representing the item request data in the secure hash ring]” [0033] and Fig. 8 displays that the hash values are stored in a hash ring). This known technique is applicable to the one or more non-transitory computer-readable storage medium of Wang as they both share characteristics and capabilities, namely, they are directed to utilizing a hash function for data processing.
It would have been recognized that applying the known technique of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring, as taught by Vosshall, to the teachings of Wang 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 references into similar one or more non-transitory computer-readable storage mediums. Further, adding the modification of the secure hash stored in a secure hash ring and representing the item request data in the secure hash ring, as taught by Vosshall, into the one or more non-transitory computer-readable storage medium of Wang would have been recognized by those of ordinary skill in the art as resulting in an improved one or more non-transitory computer-readable storage medium that would improve load balancing (Vosshall, [0045]).
Regarding claim 19, Wang in view of Vosshall teaches the one or more non-transitory computer-readable storage medium of claim 17. Wang further discloses:
-the item request data describes each of the recipient and the item associated with the item listing (Wang, see at least: “a user event to be processed is received [i.e. receiving item request data]” [0026] and “user events may be stored into different event queues based on types of the user events [i.e. receiving item request data describing a plurality of recipients]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. describes the item associated with the item listing] may be stored into another event queue, etc.” [0050] and “the user identifier [i.e. the item request data describes each of the recipient] of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value” [0046] Examiner notes that Taobao is an online shopping platform [i.e. the item associated with the item listing]);
-generating the secure hash from the item request data includes inputting the item request data to a cryptographic hash algorithm (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value [i.e. generating the secure hash from the item request data includes inputting the item request data to a cryptographic hash algorithm], and the user event to be processed is stored into the event queue corresponding to the hash value” [0048]); and
-an output of the cryptographic hash algorithm is the secure hash (Wang, see at least: “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value [i.e. an output of the cryptographic hash algorithm is the secure hash], and the user event to be processed is stored into the event queue corresponding to the hash value” [0048]).
Wang does not explicitly disclose that the item request data describes the item procurement quantity.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of the item request data describes the item procurement quantity (Vosshall, see at least: “each data set may be a shopping cart related to a specific customer. The data set may include item identification information for items in the shopping cart, item information for items that a user may have selected but not yet purchased, quantity information of items in the shopping cart [i.e. the item request data describes the item procurement quantity], and so on” [0025] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests [i.e. receiving item request data] that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set [i.e. the item request data describes the item procurement quantity] and that is suitable for use as an input to a hash function” [0033]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang with Vosshall for the reasons identified above with respect to claim 17.
Claims 2, 4-6, and 9-11 are rejected under 35 U.S.C. 103 as being unpatentable over Wang, in view of Vosshall, in further view of Murthy et al. (US 10,425,341 B2), hereinafter Murthy.
Regarding claim 2, Wang in view of Vosshall teaches the method of claim 1. Wang further discloses:
-determining network traffic associated with the item listing, the item listing implemented by a platform of a service provider system (Wang, see at least: “when the duration that the number of user events in the event queue [i.e. by a platform of a service provider system] is greater than the first number threshold exceeds a first duration threshold, one or more event queues are newly added. With the determination based on the duration, whether the capacity expansion is needed is determined so as to improve the necessity for capacity expansion and the stability of the server platform” [0096] and “user events may be stored into different event queues based on types of the user events. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. associated with the item listing] may be stored into another event queue, etc.” [0050] Examiner notes that Taobao is an online shopping platform [i.e. the item listing implemented by a platform of a service provider system]); and
-forming a second queue responsive to the network traffic (Wang, see at least: “when the duration that the number of user events in the event queue is greater than the first number threshold exceeds a first duration threshold, one or more event queues are newly added [i.e. forming a second queue responsive to the network traffic]. With the determination based on the duration, whether the capacity expansion is needed is determined so as to improve the necessity for capacity expansion and the stability of the server platform” [0096]).
Wang in view of Vosshall does not explicitly teach forming the secure hash ring responsive to the network traffic.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of forming the secure hash ring responsive to the network traffic (Murthy, see at least: “in operations the messaging system can identify a number of consumer devices (e.g., forming a “consumer cluster ring”) [i.e. forming the secure hash ring] available to receive and process messages on a given topic that a producer device generates” Col. 5 Ln. 55-58 and “At interaction lines 1002-1004, the producer-side stack 502 transmits event messages to the consumer-side stack 504. At interaction line 1006, the consumer-side stack 504 monitors upstream queue depth to detect slowness of the consumer application. At interaction line 1008, the consumer-side stack 504 senses that the upstream queue in the consumer messaging stack has built up beyond a first threshold value, and at interaction line 1010 it sends advisories to all producer devices to stop sending messages to the consumer side stack 504. At interaction line 1012, the producer-side stack 502 reacts to the advisory message by rebalancing traffic destined to this consumer instance and distributing this traffic across the cluster ring [i.e. forming the secure hash ring responsive to the network traffic]” Col. 15 Ln. 57-67 & Col. 16 Ln. 1-2 and “The messaging system can be deployed in a network cloud or other distributed computing environment, as the messaging system can batch, compress, and enable flow control. The messaging system can elastically scale consumer clusters in real time in response to changes in load [i.e. forming the secure hash ring responsive to the network traffic] and can automatically rebalance traffic in case of network congestion on computation machine failures. As such, example embodiment of the messaging system facilitates deploying the messaging system on a network cloud and facilitating complex event processing” Col. 7 Ln. 51-61; see also Col. 12 Ln. 5-26). This known technique is applicable to the method of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing event data.
It would have been recognized that applying the known technique of forming the secure hash ring responsive to the network traffic, as taught by Murthy, to the teachings of Wang in view of Vosshall 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 references into similar methods. Further, adding the modification of forming the secure hash ring responsive to the network traffic, as taught by Murthy, into the method of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved method that would enable flow control and facilitate complex event processing (Murthy, Col. 7 Ln. 51-61).
Regarding claim 4, the combination of Wang/Vosshall/Murthy teaches the method of claim 2. Wang further discloses:
-comparing the network traffic to a threshold traffic amount, and the forming of the second queue occurs responsive to the determined network traffic being greater than the threshold traffic amount (Wang, see at least: “when the duration that the number of user events in the event queue is greater than the first number threshold exceeds a first duration threshold, one or more event queues are newly added [i.e. comparing the network traffic to a threshold traffic amount, and the forming of the second queue occurs responsive to the determined network traffic being greater than the threshold traffic amount]. With the determination based on the duration, whether the capacity expansion is needed is determined so as to improve the necessity for capacity expansion and the stability of the server platform” [0096]).
Wang in view of Vosshall does not explicitly teach that the forming of the secure hash ring occurs responsive to the determined network traffic.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of the forming of the secure hash ring occurring responsive to the determined network traffic being greater than the threshold traffic amount (Murthy, see at least: “in operations the messaging system can identify a number of consumer devices (e.g., forming a “consumer cluster ring”) [i.e. forming the secure hash ring] available to receive and process messages on a given topic that a producer device generates” Col. 5 Ln. 55-58 and “At interaction lines 1002-1004, the producer-side stack 502 transmits event messages to the consumer-side stack 504. At interaction line 1006, the consumer-side stack 504 monitors upstream queue depth to detect slowness of the consumer application. At interaction line 1008, the consumer-side stack 504 senses that the upstream queue in the consumer messaging stack has built up beyond a first threshold value [i.e. responsive to the determined network traffic being greater than the threshold traffic amount], and at interaction line 1010 it sends advisories to all producer devices to stop sending messages to the consumer side stack 504. At interaction line 1012, the producer-side stack 502 reacts to the advisory message by rebalancing traffic destined to this consumer instance and distributing this traffic across the cluster ring [i.e. forming the secure hash ring occurs responsive to the determined network traffic]” Col. 15 Ln. 57-67 & Col. 16 Ln. 1-2 and “The messaging system can be deployed in a network cloud or other distributed computing environment, as the messaging system can batch, compress, and enable flow control. The messaging system can elastically scale consumer clusters in real time in response to changes in load [i.e. forming the secure hash ring occurs responsive to the determined network traffic] and can automatically rebalance traffic in case of network congestion on computation machine failures. As such, example embodiment of the messaging system facilitates deploying the messaging system on a network cloud and facilitating complex event processing” Col. 7 Ln. 51-61; see also Col. 12 Ln. 5-26). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang in view of Vosshall with Murthy for the reasons identified above with respect to claim 2.
Regarding claim 5, the combination of Wang/Vosshall/Murthy teaches the method of claim 2.
Wang in view of Vosshall does not explicitly teach controlling a processing delay associated with the item request processing queue based on the network traffic.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of controlling a processing delay associated with the item request processing queue based on the network traffic (Murthy, see at least: “the sessionizer architecture 1400 can facilitate dynamic scaling and fault accommodations [i.e. controlling a processing delay associated with the item request processing queue]. For example, the consumer devices 1228A-F (also referred to as “sessionizer nodes”) of FIG. 12 can be automatically discovered by the CEP engines 1204 (e.g., the producer devices of the collector cluster ring 1206). The sessionizer cluster ring 1226 can grow to hundreds of nodes, and as new nodes are added to the cluster, traffic automatically rebalances. When a node in the sessionizer cluster ring 1226 fails or a new node is added to the ring, traffic is rebalanced so that all the events flowing to that particular sessionizer node is now scheduled to other nodes in the cluster ring [i.e. controlling a processing delay associated with the item request processing queue based on the network traffic]. As traffic enters other nodes, the session state associated with that event is restored from the distributed cache” Col. 24 Ln. 60-67 & Col. 25 Ln. 1-7). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang in view of Vosshall with Murthy for the reasons identified above with respect to claim 2.
Regarding claim 6, Wang in view of Vosshall teaches the method of claim 1.
Wang in view of Vosshall does not explicitly teach controlling a processing delay associated with the item request processing queue based on a size of the secure hash ring.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of controlling a processing delay associated with the item request processing queue based on a size of the secure hash ring (Murthy, see at least: “the sessionizer architecture 1400 can facilitate dynamic scaling and fault accommodations [i.e. controlling a processing delay associated with the item request processing queue]. For example, the consumer devices 1228A-F (also referred to as “sessionizer nodes”) of FIG. 12 can be automatically discovered by the CEP engines 1204 (e.g., the producer devices of the collector cluster ring 1206). The sessionizer cluster ring 1226 can grow to hundreds of nodes, and as new nodes are added to the cluster, traffic automatically rebalances [i.e. controlling a processing delay associated with the item request processing queue based on a size of the secure hash ring]” Col. 24 Ln. 60-67 & Col. 25 Ln. 1; see also Col. 12 Ln. 5-26). This known technique is applicable to the method of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing event data.
It would have been recognized that applying the known technique of controlling a processing delay associated with the item request processing queue based on a size of the secure hash ring, as taught by Murthy, to the teachings of Wang in view of Vosshall 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 references into similar methods. Further, adding the modification of controlling a processing delay associated with the item request processing queue based on a size of the secure hash ring, as taught by Murthy, into the method of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved method that would enable flow control and facilitate complex event processing (Murthy, Col. 7 Ln. 51-61).
Regarding claim 9, Wang in view of Vosshall teaches the method of claim 1.
Wang in view of Vosshall does not explicitly teach controlling a speed of the processing of the queued item request, the speed of the processing being different than a speed of generating the secure hash from the item request data.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of controlling a speed of the processing of the queued item request, the speed of the processing being different than a speed of generating the secure hash from the item request data (Murthy, see at least: “the sessionizer architecture 1400 can facilitate dynamic scaling and fault accommodations [i.e. controlling a speed of the processing of the queued item request]. For example, the consumer devices 1228A-F (also referred to as “sessionizer nodes”) of FIG. 12 can be automatically discovered by the CEP engines 1204 (e.g., the producer devices of the collector cluster ring 1206)” Col. 24 Ln. 60-67 and “The provisioning module(s) 308 can be a hardware-implemented module that facilitates scheduling event messages to the consumer devices in a scalable, fault-tolerant manner [i.e. the speed of the processing being different than a speed of generating the secure hash from the item request data]. The provisioning module(s) 308 links a plurality of values, such as hash values, to respective consumer devices that are linked to the topic” Col. 9 Ln. 37-42). This known technique is applicable to the method of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing event data.
It would have been recognized that applying the known technique of controlling a speed of the processing of the queued item request, the speed of the processing being different than a speed of generating the secure hash from the item request data, as taught by Murthy, to the teachings of Wang in view of Vosshall 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 references into similar methods. Further, adding the modification of controlling a speed of the processing of the queued item request, the speed of the processing being different than a speed of generating the secure hash from the item request data, as taught by Murthy, into the method of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved method that would enable flow control and facilitate complex event processing (Murthy, Col. 7 Ln. 51-61).
Regarding claim 10, Wang in view of Vosshall teaches the method of claim 1. Wang further discloses:
-wherein the secure hash represents the item request data (Wang, see at least: “the user identifier of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value [i.e. wherein the secure hash represents the item request data]” [0046] and “the user identifier of the user event to be processed may be processed through the consistent hashing algorithm to obtain the hash value, and the user event to be processed is stored into the event queue corresponding to the hash value [i.e. wherein the secure hash represents the item request data]. In this way, there is no need to compare the user identifier of the user event with the user identifier of each event queue one by one, but just the user event is stored into the event queue corresponding to the hash value based on the calculated hash value” [0048]).
Wang in view of Vosshall does not explicitly teach the secure hash represents the item request data in the secure hash ring as a pair of nodes.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of the secure hash represents the item request data in the secure hash ring as a pair of nodes (Murthy, see at least: “The producer device, e.g. using consistent hashing, associates a number of hash values to each of the consumer devices of the consumer cluster. The hash values can be viewed as respective consumer nodes on a circle. As such, the assignment of hash values to consumer devices partitions the identified consumer cluster to form a logical ring of consumer nodes for the given topic. In other words, each consumer device is represented by a number of consumer nodes on the logical ring [i.e. the secure hash represents the item request data in the secure hash ring as a pair of nodes]” Col. 6 Ln. 18-26; see also Col. 12 Ln. 5-26). This known technique is applicable to the method of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing event data.
It would have been recognized that applying the known technique of the secure hash represents the item request data in the secure hash ring as a pair of nodes, as taught by Murthy, to the teachings of Wang in view of Vosshall 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 references into similar methods. Further, adding the modification of the secure hash represents the item request data in the secure hash ring as a pair of nodes, as taught by Murthy, into the method of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved method that would enable flow control and facilitate complex event processing (Murthy, Col. 7 Ln. 51-61).
Regarding claim 11, the combination of Wang/Vosshall/Murthy teaches the method of claim 10. Wang further discloses:
-the item request data describes each of the recipient and the item associated with the item listing (Wang, see at least: “a user event to be processed is received [i.e. receiving item request data]” [0026] and “user events may be stored into different event queues based on types of the user events [i.e. receiving item request data describing a plurality of recipients]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. describes the item associated with the item listing] may be stored into another event queue, etc.” [0050] and “the user identifier [i.e. the item request data describes each of the recipient] of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value” [0046] Examiner notes that Taobao is an online shopping platform [i.e. the item associated with the item listing]);
Wang does not explicitly disclose that the item request data describes the item procurement quantity.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of the item request data describing each of the recipient and the item procurement quantity (Vosshall, see at least: “each data set may be a shopping cart related to a specific customer. The data set may include item identification information for items in the shopping cart, item information for items that a user may have selected but not yet purchased, quantity information of items in the shopping cart [i.e. data describes each of the recipient and the item procurement quantity], and so on” [0025] and “in order to access the data stored by the data set service 112 (e.g., via a read operation or a write operation), client processes transmit data requests [i.e. the item request data] that include a key for the data set to which each request refers. For example, in the context of a shopping cart application, the key may be generated based on the user ID of the user to whom the shopping cart is related (e.g., the user ID may be used as the key). The keys may be any data value that is associated with a data set [i.e. the item request data describes each of the recipient and the item procurement quantity] and that is suitable for use as an input to a hash function” [0033]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang with Vosshall for the reasons identified above with respect to claim 1.
Wang in view of Vosshall does not explicitly teach a node of the pair of nodes represents the recipient; and another node of the pair of nodes represents the item and the item procurement quantity.
Murthy, however, teaches processing event data (i.e. Col. 3 Ln. 3-5), including the known technique of a node of the pair of nodes represents the recipient (Murthy, see at least: “The producer device, e.g. using consistent hashing, associates a number of hash values to each of the consumer devices of the consumer cluster. The hash values can be viewed as respective consumer nodes on a circle. As such, the assignment of hash values to consumer devices partitions the identified consumer cluster to form a logical ring of consumer nodes for the given topic. In other words, each consumer device is represented by a number of consumer nodes on the logical ring [i.e. a node of the pair of nodes]” Col. 6 Ln. 18-26 and “The advertisement 700 comprises an address data field 704, which can correspond to the consumers IP address and/or port binding [i.e. represents the recipient]. The advertisement 700 also includes a QOS data field 706 that can be indicative of any suitable quality of service characteristic, such as compression, serialization format, data rate, and the like. The advertisement 700 can also include a timestamp data field 708 that is indicative of when the consumer device posted the advertisement 700. The advertisement 700 can also include a weight data field 710 that is indicative of a relative workload requested by the consumer device. The advertisement 700 can also include a topic data field 712 that is indicative of the topics to which the consumer device subscribing” Col. 14 Ln. 11-24 and “The provisioning module(s) 308 can be a hardware-implemented module that facilitates scheduling event messages to the consumer devices in a scalable, fault-tolerant manner. The provisioning module(s) 308 links a plurality of values, such as hash values, to respective consumer devices that are linked to the topic. For example, the provisioning module(s) 308 can generate a plurality of values based on the corresponding consumer device identifier. The generating of the plurality of values can be in response to receiving respective request messages (e.g., advertisement data as will be described in greater in connection with FIG. 7). The plurality of values can be computed per topic [i.e. a node of the pair of nodes]. The provisioning module(s) 308 can include a pseudo-random number generator to generate the hash values for use with a consistent hashing scheduler” Col. 9 Ln. 37-51); and
the known technique of another node of the pair of nodes represents the item and the item procurement quantity (Murthy, see at least: “The producer device, e.g. using consistent hashing, associates a number of hash values to each of the consumer devices of the consumer cluster. The hash values can be viewed as respective consumer nodes on a circle. As such, the assignment of hash values to consumer devices partitions the identified consumer cluster to form a logical ring of consumer nodes for the given topic. In other words, each consumer device is represented by a number of consumer nodes on the logical ring [i.e. another node of the pair of nodes]” Col. 6 Ln. 18-26 and “The advertisement 700 comprises an address data field 704, which can correspond to the consumers IP address and/or port binding. The advertisement 700 also includes a QOS data field 706 that can be indicative of any suitable quality of service characteristic, such as compression, serialization format, data rate, and the like. The advertisement 700 can also include a timestamp data field 708 that is indicative of when the consumer device posted the advertisement 700. The advertisement 700 can also include a weight data field 710 that is indicative of a relative workload requested by the consumer device [i.e. represents the item and the item procurement quantity]. The advertisement 700 can also include a topic data field 712 that is indicative of the topics to which the consumer device subscribing” Col. 14 Ln. 11-24 and “The provisioning module(s) 308 can be a hardware-implemented module that facilitates scheduling event messages to the consumer devices in a scalable, fault-tolerant manner. The provisioning module(s) 308 links a plurality of values, such as hash values, to respective consumer devices that are linked to the topic. For example, the provisioning module(s) 308 can generate a plurality of values based on the corresponding consumer device identifier. The generating of the plurality of values can be in response to receiving respective request messages (e.g., advertisement data as will be described in greater in connection with FIG. 7). The plurality of values can be computed per topic [i.e. another node of the pair of nodes]. The provisioning module(s) 308 can include a pseudo-random number generator to generate the hash values for use with a consistent hashing scheduler” Col. 9 Ln. 37-51). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang in view of Vosshall with Murthy for the reasons identified above with respect to claim 10.
Claim 3 is rejected under 35 U.S.C. 103 as being unpatentable over Wang, in view of Vosshall, in further view of Huang et al. (US 2022/0086080 A1), hereinafter Huang.
Regarding claim 3, the combination of Wang/Vosshall/Murthy teaches the method of claim 2.
The combination of Wang/Vosshall/Murthy does not explicitly teach determining the network traffic is performed using a count-min sketch probabilistic data structure.
Huang, however, teaches processing incoming traffic (i.e. [0002]), including the known technique of determining the network traffic is performed using a count-min sketch probabilistic data structure (Huang, see at least: “the statistical entry may include only an identifier field and a count value field. In this case, each time a packet is received, a count value in a matched statistical entry is increased by 1 [i.e. wherein determining the network traffic], and an updated count value (or a sum of count values of all matched statistical entries) is compared with the preset threshold. Whether a flow to which the packet belongs is a large flow is determined based on a comparison result” [0076] and “the determining module 130 may use a count-mini sketch (Count-Min Sketch, CM-Sketch) to determine whether a flow to which a packet belongs meets the large flow condition [i.e. wherein determining the network traffic is performed using a count-min sketch probabilistic data structure]” [0077]). This known technique is applicable to the method of the combination of Wang/Vosshall/Murthy as they both share characteristics and capabilities, namely, they are directed to processing incoming traffic.
It would have been recognized that applying the known technique of determining the network traffic is performed using a count-min sketch probabilistic data structure, as taught by Huang, to the teachings of the combination of Wang/Vosshall/Murthy 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 references into similar methods. Further, adding the modification of determining the network traffic is performed using a count-min sketch probabilistic data structure, as taught by Huang, into the method of the combination of Wang/Vosshall/Murthy would have been recognized by those of ordinary skill in the art as resulting in an improved method that would improve a traffic sharing effect of load balancing (Huang, abstract).
Claims 7, 15-16, 18, and 20 are rejected under 35 U.S.C. 103 as being unpatentable over Wang, in view of Vosshall, in further view of Dornbush et al. (US 2015/0100465 A1), hereinafter Dornbush.
Regarding claim 7, Wang in view of Vosshall teaches the method of claim 1.
Wang in view of Vosshall does not explicitly teach adjusting an available quantity of the item in the item listing based on the secure hash.
Dornbush, however, teaches processing product requests (i.e. [0038]), including the known technique of adjusting an available quantity of the item in the item listing based on the secure hash (Dornbush, see at least: “In response to the selection of the at least one of the specific products, the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products (540) [i.e. adjusting an available quantity of the item in the item listing]” [0029] and “inputs to the hash function may include a product SKU identifier and a country related to distribution of the specific product [i.e. based on the secure hash]. A hashing algorithm, such as one based on Consistent hashing, may be used to determine an active inventory management server” [0031]). This known technique is applicable to the method of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing product requests.
It would have been recognized that applying the known technique of adjusting an available quantity of the item in the item listing based on the secure hash, as taught by Dornbush, to the teachings of Wang in view of Vosshall 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 references into similar methods. Further, adding the modification of adjusting an available quantity of the item in the item listing based on the secure hash, as taught by Dornbush, into the method of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved method that would provide a well-managed and efficient distribution of inventory of a specific product for presentation to a user (Dornbush, [0020]).
Regarding claim 15, Wang in view of Vosshall teaches the system of claim 12. Wang further discloses:
-wherein the operations further comprise decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes (Wang, see at least: “a received user event may be cached to an event queue and the user event may be taken from the event queue and then is processed [i.e. decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes]” [0055] and “the user identifier of the user event to be processed is processed through a consistent hashing algorithm to obtain a hash value [i.e. responsive to generating each secure hash of the plurality of secure hashes]” [0046] and “the event queue is deleted in response to the user event in the event queue being processed [i.e. decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes]” [0100] and “a user event may be an order event which is an order that is generated based on a shopping action of a user and is to be paid” [0035] and “an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order [i.e. decrementing an available item quantity] may be stored into another event queue, etc.” [0050] Examiner notes that Taobao is an online shopping platform and processing the order for an item results in the quantity of the product ordered by the user being reduced [i.e. decrementing an available item quantity]).
Wang does not explicitly disclose the operations further comprising decrementing an available item quantity specified by an indicator of a graphical user interface implemented by the one or more computing devices.
Vosshall, however, teaches utilizing a hash function for data processing (i.e. abstract), including the known technique of decrementing an available item quantity specified by an indicator of a graphical user interface implemented by the one or more computing devices (Vosshall, see at least: “In such an embodiment, network shopping interface 120 may provide users with graphical and/or text data on the website to facilitate the display and/or sale of items. The data provided to users may include item information such as pricing, dimensions, availability [i.e. wherein the operations further comprise decrementing an available item quantity specified by an indicator of a graphical user interface implemented by the one or more computing devices], items currently selected for purchase, and so on” [0024]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang with Vosshall for the reasons identified above with respect to claim 12.
Wang in view of Vosshall does not explicitly teach decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes.
Dornbush, however, teaches processing product requests (i.e. [0038]), including the known technique of decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes (Dornbush, see at least: “the remaining quantity of the specific product in the inventory lease that is available for distribution may be determined. For example, the order indication may be used by the inventory management server to perform a calculation of the remaining quantity or adjust a counter based on the initial quantity of a specific product allocated to the respective inventory lease [i.e. wherein the operations further comprise decrementing an available item quantity]” [0025] and “inputs to the hash function may include a product SKU identifier and a country related to distribution of the specific product. A hashing algorithm, such as one based on Consistent hashing, may be used to determine an active inventory management server [i.e. responsive to generating each secure hash of the plurality of secure hashes]” [0031]). This known technique is applicable to the system of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing product requests.
It would have been recognized that applying the known technique of decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes, as taught by Dornbush, to the teachings of Wang in view of Vosshall 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 references into similar systems. Further, adding the modification of decrementing an available item quantity responsive to generating each secure hash of the plurality of secure hashes, as taught by Dornbush, into the system of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved system that would provide a well-managed and efficient distribution of inventory of a specific product for presentation to a user (Dornbush, [0020]).
Regarding claim 16, the combination of Wang/Vosshall/Dornbush teaches the system of claim 15.
Wang in view of Vosshall does not explicitly teach decrementing the available item quantity including reducing the available item quantity by the respective item procurement quantity for each recipient of the plurality of recipients.
Dornbush, however, teaches processing product requests (i.e. [0038]), including the known technique of decrementing the available item quantity including reducing the available item quantity by the respective item procurement quantity for each recipient of the plurality of recipients (Dornbush, see at least: “the remaining quantity of the specific product in the inventory lease that is available for distribution may be determined. For example, the order indication may be used by the inventory management server to perform a calculation of the remaining quantity or adjust a counter based on the initial quantity of a specific product allocated to the respective inventory lease [i.e. wherein decrementing the available item quantity includes reducing the available item quantity by the respective item procurement quantity for each recipient of the plurality of recipients]” [0025] and “In response to the selection of the at least one of the specific products, the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products (540) [i.e. decrementing the available item quantity includes reducing the available item quantity by the respective item procurement quantity for each recipient of the plurality of recipients]” [0029]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang in view of Vosshall with Dornbush for the reasons identified above with respect to claim 15.
Regarding claim 18, Wang in view of Vosshall teaches the one or more non-transitory computer-readable storage medium of claim 17.
Wang in view of Vosshall does not explicitly teach that the operations further comprise adjusting an available quantity of the item in the item listing based on the secure hash.
Dornbush, however, teaches processing product requests (i.e. [0038]), including the known technique of adjusting an available quantity of the item in the item listing based on the secure hash (Dornbush, see at least: “In response to the selection of the at least one of the specific products, the quantity of specific product in the at least one of the plurality of inventory leases may be decremented by the number of selected specific products (540) [i.e. adjusting an available quantity of the item in the item listing]” [0029] and “inputs to the hash function may include a product SKU identifier and a country related to distribution of the specific product. A hashing algorithm, such as one based on Consistent hashing, may be used to determine an active inventory management server [i.e. based on the secure hash]” [0031]). This known technique is applicable to the one or more non-transitory computer-readable storage medium of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing product requests.
It would have been recognized that applying the known technique of adjusting an available quantity of the item in the item listing based on the secure hash, as taught by Dornbush, to the teachings of Wang in view of Vosshall 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 references into similar one or more non-transitory computer-readable storage mediums. Further, adding the modification of adjusting an available quantity of the item in the item listing based on the secure hash, as taught by Dornbush, into the one or more non-transitory computer-readable storage medium of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved one or more non-transitory computer-readable storage medium that would provide a well-managed and efficient distribution of inventory of a specific product for presentation to a user (Dornbush, [0020]).
Regarding claim 20, Wang in view of Vosshall teaches the one or more non-transitory computer-readable storage medium of claim 17.
Wang in view of Vosshall does not explicitly teach determining network traffic associated with the item listing and adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic.
Dornbush, however, teaches processing product requests (i.e. [0038]), including the known technique of determining network traffic associated with the item listing and adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic (Dornbush, see at least: “The system 100 may also measure the status and progress of sales (such as volume of sales, velocity of sales (which is the rate of sales in a given time period) [i.e. determining network traffic associated with the item listing]” [0015] and “The infrastructure also may need to determine which of the plurality of inventory management servers 215B or 215C is handling the SKU A product requests [i.e. associated with the item listing]. The identification of the responsible inventory management server may be determined using the hash functions described above. If inventory leases are available for the SKU A products then no delays will be evident at a customer device [i.e. adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic]” [0038] and “A lease management server may also analyze updated data related to sales of the specific product, external systems handling sales of the specific product and analytical data related to the specific product … The second sub-quantity may be, for example, based on at least one of: location of a data center that is directly contacted by a customer, a product country, a remaining inventory of the specific product, a global consumption rate of the specific product, a locale specific consumption rate, an inventory management server consumption rate, peak load time for an inventory management server [i.e. based on the network traffic], a current time of day, historical sales trend for a product similar to the specific product, or an estimated sell out date. Both the optimal quantity and the new expiration may be calculated based on the results of the data analysis (370). The expiration time for each inventory lease may be determined using a velocity of sales of the specific product covered by the inventory lease [i.e. based on the network traffic]. As a result, the system may dynamically allocate more quantities of products to areas that are selling products at higher velocity thereby eliminating delays or failures due to a lack of available inventory [i.e. determining network traffic associated with the item listing and adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic]” [0022]). This known technique is applicable to the one or more non-transitory computer-readable storage medium of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to processing product requests.
It would have been recognized that applying the known technique of determining network traffic associated with the item listing and adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic, as taught by Dornbush, to the teachings of Wang in view of Vosshall 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 references into similar one or more non-transitory computer-readable storage mediums. Further, adding the modification of determining network traffic associated with the item listing and adjusting a timing of processing the queued item request in the item request processing queue based on the network traffic, as taught by Dornbush, into the one or more non-transitory computer-readable storage medium of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved one or more non-transitory computer-readable storage medium that would provide a well-managed and efficient distribution of inventory of a specific product for presentation to a user (Dornbush, [0020]).
Claims 13-14 are rejected under 35 U.S.C. 103 as being unpatentable over Wang, in view of Vosshall, in further view of Hickey et al. (US 2024/0307785 A1), hereinafter Hickey.
Regarding claim 13, Wang in view of Vosshall teaches the system of claim 12.
Wang in view of Vosshall does not explicitly teach the secure hash ring being a sharded random hash ring.
Hickey, however, teaches collecting and processing data (i.e. [0021]) including the known technique of the secure hash ring being a sharded random hash ring (Hickey, see at least: “the plurality of client application servers 112 can be configured as, for example, a hash ring. A hash ring can take the leading bits of the hash value of an item (e.g., a match identification (ID)) and use this information to determine to which node the item should be assigned. For example, nodes on the hash ring can be broken into shards, and each shard can be assigned an integer value in an appropriate keyspace, which can be the set of integers from 1 to a predetermined number (e.g., 232-1 or the like). The distribution of these shards can be random [i.e. wherein the secure hash ring is a sharded random hash ring]” [0057]). This known technique is applicable to the system of Wang in view of Vosshall as they both share characteristics and capabilities, namely, they are directed to collecting and processing data.
It would have been recognized that applying the known technique of the secure hash ring being a sharded random hash ring, as taught by Hickey, to the teachings of Wang in view of Vosshall 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 references into similar systems. Further, adding the modification of the secure hash ring being a sharded random hash ring, as taught by Hickey, into the system of Wang in view of Vosshall would have been recognized by those of ordinary skill in the art as resulting in an improved system that would improve the efficiency and processing capabilities (Hickey, [0019]).
Regarding claim 14, the combination of Wang/Vosshall/Hickey teaches the system of claim 13. Wang further discloses:
-the plurality of recipients (Wang, see at least: “user events may be stored into different event queues based on types of the user events [i.e. the plurality of recipients]. For example, an express event may be stored into an event queue, a take-out order may be stored into an event queue, and a Taobao order may be stored into another event queue, etc.” [0050]).
Wang in view of Vosshall does not explicitly teach that each recipient of the plurality of recipients is assigned a respective shard of the sharded random hash ring.
Hickey, however, teaches collecting and processing data (i.e. [0021]) including the known technique of each item of the plurality of items is assigned a respective shard of the sharded random hash ring (Hickey, see at least: “the plurality of client application servers 112 can be configured as, for example, a hash ring. A hash ring can take the leading bits of the hash value of an item (e.g., a match identification (ID)) and use this information to determine to which node the item should be assigned [i.e. wherein each [item] of the plurality of [items]]. For example, nodes on the hash ring can be broken into shards, and each shard can be assigned an integer value in an appropriate keyspace, which can be the set of integers from 1 to a predetermined number (e.g., 232-1 or the like). The distribution of these shards can be random, but deterministic. Keys can then be mapped to a shard by converting the key to a binary, hashing it with an appropriate hashing algorithm (e.g., SHA-256 or the like), converting the hash to an integer in the keyspace, and then locating the shard that is assigned the next highest value [i.e. is assigned a respective shard of the sharded random hash ring]” [0057]). It would have been obvious to one of ordinary skill in the art before the effective filing date of the claimed invention to combine Wang in view of Vosshall with Hickey for the reasons identified above with respect to claim 13.
Conclusion
The prior art made of record and not relied upon is considered pertinent to applicant's disclosure.
-Tanwer et al. (US 2020/0073765 A1) teaches balancing incoming traffic using consistent hashing.
Any inquiry concerning this communication or earlier communications from the examiner should be directed to ARIELLE E WEINER whose telephone number is (571)272-9007. The examiner can normally be reached M-F 8:30-5:00.
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, Maria-Teresa (Marissa) Thein can be reached at 571-272-6764. 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.
/ARIELLE E WEINER/ Primary Examiner, Art Unit 3689