DETAILED ACTION
Claims 1-20 are pending.
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 § 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., a law of nature, a natural phenomenon, or an abstract idea) without significantly more.
With Respect to Claim 1:
Step 1: Claim 1 is directed to a method, which is a process, and falls within one of the statutory categories of invention.
Step 2A, Prong One: Claim 1 recites the limitations:
using an identity associated with the particular consumer to identify a set of one or more partitions of the data store that store data for the first event.
These recited steps, under the broadest reasonable interpretation, cover performance of the steps in the human mind alone or with the aid of pen and paper. Accordingly, the claim recites an abstract idea.
Step 2A, Prong Two: This judicial exception is not integrated into a practical application. In particular, the claim recites the additional elements:
at an event server:
receiving a registration to receive data for a first event from a particular consumer;
and providing, to the particular consumer, a stream of data regarding the first event that is stored in the identified partition set for the particular consumer to process.
The additional element (a) is recited at a high-level of generality such that it amounts to no more than mere instructions to apply the judicial exception using generic computer components, and thus does not integrate into a practical application. See MPEP § 2106.05(f). Furthermore, the additional elements (b) and (c) are mere data gathering. Therefore, (b) and (c) are insignificant extra-solution activities to the judicial exception. See MPEP § 2106.05(g).
Step 2B: The claim does not include additional elements that are sufficient to amount to significantly more than the judicial exception because the additional elements when considered both individually and as a combination do not amount to significantly more than the abstract idea. As discussed above with respect to integration of the abstract idea into a practical application, the claim recites the additional elements:
at an event server:
receiving a registration to receive data for a first event from a particular consumer;
and providing, to the particular consumer, a stream of data regarding the first event that is stored in the identified partition set for the particular consumer to process.
The additional element (a) is recited at a high-level of generality such that it amounts to no more than mere instructions to apply the judicial exception using generic computer components, and thus does not amount to significantly more than the judicial exception. See MPEP § 2106.05(f). Furthermore, with regards to additional elements (b) and (c), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 2:
Under Step 2A Prong 2, Claim 2 depends on Claim 1, and it recites the following additional element:
receiving a first event identifier that specifically identifies the first event.
The additional element (a) is mere data gathering. Therefore, (a) is an insignificant extra-solution activity to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, The claim recites the additional element:
receiving a first event identifier that specifically identifies the first event.
With regards to additional element (a), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 3:
Under Step 2A Prong 2, Claim 3 depends on Claim 1, and it recites the following additional element:
receiving a first event type identifier that identifies the first event.
The additional element (a) is mere data gathering. Therefore, (a) is an insignificant extra-solution activity to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, the claim recites the additional element:
receiving a first event type identifier that identifies the first event.
With regards to additional element (a), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 4:
Under Step 2A Prong 2, Claim 4 depends on Claim 3, and it recites the following additional element:
wherein the event type identifier identifies a category of events that comprises the first event.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional elements:
wherein the event type identifier identifies a category of events that comprises the first event.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
Claim 4 does not recite any additional elements.
With Respect to Claim 5:
Under Step 2A Prong 2, Claim 5 depends on Claim 4, and it recites the following additional element:
wherein the identified category of events further comprises at least a second event.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the identified category of events further comprises at least a second event.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 6:
Under Step 2A Prong 2, Claim 6 depends on Claim 3, and it recites the following additional element:
wherein receiving the registration further comprises receiving an identifier that identifies the particular consumer.
The additional element (a) is mere data gathering. Therefore, (a) is an insignificant extra-solution activity to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, the claim recites the additional element:
wherein receiving the registration further comprises receiving an identifier that identifies the particular consumer.
With regards to additional element (a), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 7:
Under Step 2A Prong 2, Claim 7 depends on Claim 6, and it recites the following additional elements:
wherein the particular consumer comprises a plurality of consumer instances
receiving an identifier that identifies a first instance of the particular consumer as the instance that is registering for the data for the first event.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h). Furthermore, the additional element (b) is mere data gathering. Therefore, (b) is an insignificant extra-solution activity to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, the claim recites the following additional elements:
wherein the particular consumer comprises a plurality of consumer instances
receiving an identifier that identifies a first instance of the particular consumer as the instance that is registering for the data for the first event.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h). Furthermore, with regards to additional element (b), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 8:
Under Step 2A Prong 1, Claim 8 depends on Claim 7, and it recites the following limitation:
wherein using the identity associated with the particular consumer to identify the partition set comprises using the identifier that identifies the first instance of the particular consumer to identify the partition set.
These recited steps, under the broadest reasonable interpretation, cover performance of the steps in the human mind alone or with the aid of pen and paper. Accordingly, the claim recites an abstract idea.
Claim 8 does not recite any additional elements.
With Respect to Claim 9:
Under Step 2A Prong 1, Claim 9 depends on Claim 8, and it recites the following limitation:
wherein using the identifier that identifies the first instance of the particular consumer to identify the partition set comprises performing a lookup in a cache to determine that the partition set is assigned to the first instance.
These recited steps, under the broadest reasonable interpretation, cover performance of the steps in the human mind alone or with the aid of pen and paper. Accordingly, the claim recites an abstract idea.
Claim 9 does not recite any additional elements.
With Respect to Claim 10:
Under Step 2A Prong 1, Claim 10 depends on Claim 7, and it recites the following limitation:
using an identifier that identifies the second instance to identify another partition set of the data store that stores other data for the first event.
These recited steps, under the broadest reasonable interpretation, cover performance of the steps in the human mind alone or with the aid of pen and paper. Accordingly, the claim recites an abstract idea.
Under Step 2A Prong 2, Claim 10 also recites the following additional elements:
receiving from a second instance of the particular consumer a registration to receive data associated with the first event type identifier;
and providing, to the second instance, another stream of data from the other identified partition set that stores other data regarding the first event.
The additional elements (a) and (b) are mere data gathering. Therefore, (a) and (b) are insignificant extra-solution activities to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, the claim recites the following additional elements:
receiving from a second instance of the particular consumer a registration to receive data associated with the first event type identifier;
and providing, to the second instance, another stream of data from the other identified partition set that stores other data regarding the first event.
With regards to additional elements (a) and (b), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 11:
Under Step 2A Prong 2, Claim 11 depends on Claim 1, and it recites the following additional element:
wherein providing, to the particular consumer, the stream of data regarding the first event comprises iteratively providing data tuples that are stored continuously in the identified partition set regarding the first event.
The additional element (a) is mere data gathering. Therefore, (a) is an insignificant extra-solution activity to the judicial exception. See MPEP § 2106.05(g).
Under Step 2B, the claim recites the additional element:
wherein providing, to the particular consumer, the stream of data regarding the first event comprises iteratively providing data tuples that are stored continuously in the identified partition set regarding the first event.
With regards to additional element (a), the courts have identified functions such as gathering, displaying, updating, transmitting and storing data as well-understood, routine, conventional activity, and thus do not amount to significantly more than the judicial exception. See MPEP § 2106.05(d).
With Respect to Claim 12:
Under Step 2A Prong 2, Claim 12 depends on Claim 1, and it recites the following additional element:
wherein the data storage is a distributed data storage.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the data storage is a distributed data storage.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 13:
Under Step 2A Prong 2, Claim 13 depends on Claim 12, and it recites the following additional element:
wherein the distributed data storage is a distributed database.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the distributed data storage is a distributed database.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 14:
Under Step 2A Prong 2, Claim 14 depends on Claim 1, and it recites the following additional element:
wherein at least two partitions of the data store are in two different geographic sites.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein at least two partitions of the data store are in two different geographic sites.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 15:
Under Step 2A Prong 2, Claim 15 depends on Claim 1, and it recites the following additional element:
wherein the particular consumer resides in a first datacenter and the data store resides in a second datacenter.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the particular consumer resides in a first datacenter and the data store resides in a second datacenter.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 16:
Under Step 2A Prong 2, Claim 16 depends on Claim 15, and it recites the following additional element:
wherein the first and second datacenters belong to a same cloud provider.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the first and second datacenters belong to a same cloud provider.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claim 17:
Under Step 2A Prong 2, Claim 17 depends on Claim 15, and it recites the following additional element:
wherein the first and second datacenters belong to different cloud providers.
This judicial exception is not integrated into a practical application. The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not integrate into a practical application. See MPEP § 2106.05(h).
Under Step 2B, the claim recites the following additional element:
wherein the first and second datacenters belong to different cloud providers.
The additional element (a) is not comprised of anything beyond generally linking the use of the judicial exception to a particular field of use, and does not amount to significantly more than the judicial exception in Step 2B. See MPEP § 2106.05(h).
With Respect to Claims 18-20:
Claims 18-20 are non-transitory machine readable medium claims corresponding to the method claims 1, 3 and 6-7. They recite the following additional element:
A non-transitory machine readable medium storing a program for execution by at least one processing unit for providing data regarding events that is stored in a data store, the program comprising sets of instructions for:
The additional element (a) is recited at a high-level of generality such that it amounts to no more than mere instructions to apply the judicial exception using generic computer components, and thus does not does not integrate into a practical application under Step 2A Prong 2, and also does not amount to significantly more than the judicial exception under Step 2B. See MPEP § 2106.05(f).
Claim Rejections - 35 USC § 102
The following is a quotation of the appropriate paragraphs of 35 U.S.C. 102 that form the basis for the rejections under this section made in this Office action:
A person shall be entitled to a patent unless –
(a)(1) the claimed invention was patented, described in a printed publication, or in public use, on sale, or otherwise available to the public before the effective filing date of the claimed invention.
(a)(2) the claimed invention was described in a patent issued under section 151, or in an application for patent published or deemed published under section 122(b), in which the patent or application, as the case may be, names another inventor and was effectively filed before the effective filing date of the claimed invention.
Claims 1, 12-13, and 18 are rejected under 35 U.S.C. 102(a)(1)/102(a)(2) as being anticipated by St. Clair (US 20200257574 A1).
Regarding Claim 1, St. Clair teaches a method for providing data regarding events that is stored in a data store, the method comprising: at an event server: (
St. Clair discloses, “The topic and partition can be used as a schema to store and retrieve the event in an event recordation system 110, when this event recordation system is a database,” ¶ 0017.
The claimed data store is mapped to the disclosed “event recordation system”.),
receiving a registration to receive data for a first event from a particular consumer (
St. Clair discloses, “In some implementations, the receipt of a batch of events for a given topic (e.g., topic 152A, topic 152B or topic 152C) is a result of a request (e.g., requests 0a, 0b, and 0c) transmitted from an event consumer (e.g., 140A-H) to the event recordation system 110. The request is sent through the event delivery manager 130. In some implementations, transmitting a request includes subscribing to a topic. In some implementations, each event consumer is operative to subscribe to a single topic,” ¶ 0036.
The claimed “registration” is mapped to the disclosed “subscribing to a topic” that covers a type of events.);
using an identity associated with the particular consumer to identify a set of one or more partitions of the data store that store data for the first event (
St. Clair discloses, “The event may also include a partition. For example, the partition can include a tenant identifier… Typically, events of a stream may have one of multiple partitions and/or topics. Some events may share the same partition and/or the same topic,” ¶ 0026, “In some implementations, when a partition refers to a tenant identifier in a multi-tenant environment, all events received with that same partition belong to the same tenant,” ¶ 0027, and “For example, in a multi-tenant system, a first event consumer 140A is dedicated to a first tenant and a second event consumer 140C may execute the same code and be dedicated to a second tenant that is different from the first tenant,” ¶ 0028.
Since a specific consumer is dedicated to a specific tenant, a consumer can be associated with the tenant’s identifier, which can then be used to identify a partition associated with the tenant.);
and providing, to the particular consumer, a stream of data regarding the first event that is stored in the identified partition set for the particular consumer to process (
St. Clair also discloses, “The event system receives a stream of events 150 including multiple events 151A-C and is operative to store the events in one or more of the event recordation system (e.g., 110) and enable consumption/delivery of the events from these systems,” ¶ 0023.
“In some implementations, the event is also associated with a partition. The topic and/or partition can be added to the event as an additional field to the other data included in the event… The replay identifier enables an event consumer to indicate the event from which consumption is to start,” ¶ 0017.
St. Clair provides explanation and examples for the disclosed events, stating “An event (e.g., 151A-151C) in the system 100 is an identifiable unit of data that conveys information about operations that occur in a system (e.g., measurements recorded in an IoT device, actions performed by a user of a social networking system, failures of an operation or a system, etc.),” ¶ 0016, and “In some implementations, the stream of events 150 can be received from a stream manager (not shown in FIG. 1) that manages the receipt of streams generated by one or more IoT devices, and/or application data source(s),” ¶ 0023).
Claim 18 is a non-transitory machine readable medium corresponding to the method Claim 1 (¶ 0082 of St. Clair). Therefore, Claim 18 is rejected for the same reason set forth in the rejection of Claim 1.
Regarding Claim 12, St. Clair teaches the method of claim 1, wherein the data storage is a distributed data storage (
St. Clair discloses, “In some implementations, one or more of the service(s) 542 may utilize one or more multi-tenant databases 546, as well as system data storage 550 for system data 552 accessible to system 540. In certain implementations, the system 540 includes a set of one or more servers that are running on server electronic devices and that are configured to handle requests for any authorized user associated with any tenant (there is no server affinity for a user and/or tenant to a specific server),” ¶ 0087.
PNG
media_image1.png
341
523
media_image1.png
Greyscale
).
Regarding Claim 13, St. Clair teaches the method of claim 12, wherein the distributed data storage is a distributed database (
St. Clair discloses, “In some implementations, one or more of the service(s) 542 may utilize one or more multi-tenant databases 546, as well as system data storage 550 for system data 552 accessible to system 540. In certain implementations, the system 540 includes a set of one or more servers that are running on server electronic devices and that are configured to handle requests for any authorized user associated with any tenant (there is no server affinity for a user and/or tenant to a specific server),” ¶ 0087. Also see fig. 5B.).
Claim Rejections - 35 USC § 103
The following is a quotation of 35 U.S.C. 103 which forms the basis for all obviousness rejections set forth in this Office action:
A patent for a claimed invention may not be obtained, notwithstanding that the claimed invention is not identically disclosed as set forth in section 102, if the differences between the claimed invention and the prior art are such that the claimed invention as a whole would have been obvious before the effective filing date of the claimed invention to a person having ordinary skill in the art to which the claimed invention pertains. Patentability shall not be negated by the manner in which the invention was made.
Claims 2-8 and 19-20 are rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1).
Regarding Claim 2, St. Clair teaches the method of claim 1, wherein receiving the registration comprises receiving a first event identifier that specifically identifies the first event (
PNG
media_image2.png
236
214
media_image2.png
Greyscale
Part of Fig. 1.
St. Clair discloses, “In the event recordation system 110 the events are grouped with an associated topic (and in some implementations based on a topic and a partition). Each event is stored with a respective replay identifier as assigned by the event publication manager 120… The event recordation system 110 includes a first set of events 113A stored for a first topic 152A and a second set of events 113B stored for a second topic 152B, and events 113N stored for topic 152N,” ¶ 0032, and “The event delivery manager 130 is operative to receive batches of events for a given topic from the event recordation system 110 and deliver the events without any discontinuities to the event consumers 140,” ¶ 0037.
The claimed “first event identifier” is mapped to the disclosed event identifiers associated with Event(s) 113A-C (8-15, 23-26, and 56-70) in the Event Recordation System 110 in Fig. 1.
It is implicit that identifiers similar to Fig. 1 113A and “8, 9, 13, 14, 15” are used to identify events. However, such disclosure is not explicit.
Meanwhile, St. Clair teaches the use of identifier to identify and associate information, stating “The event may also include a partition. For example, the partition can include a tenant identifier… Typically, events of a stream may have one of multiple partitions and/or topics. Some events may share the same partition and/or the same topic,” ¶ 0026, “In some implementations, when a partition refers to a tenant identifier in a multi-tenant environment, all events received with that same partition belong to the same tenant,” ¶ 0027.
Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have combine St. Clair’s teaching of use identifiers to identify and associate information with St Clair’s teaching of events. Doing so would help to quickly and accurate request and retrieve event information.).
Regarding Claim 3, St. Clair teaches the method of claim 1, wherein receiving the registration comprises receiving a first event type identifier that identifies the first event (
PNG
media_image3.png
55
638
media_image3.png
Greyscale
PNG
media_image2.png
236
214
media_image2.png
Greyscale
Part of Fig. 1.
St. Clair discloses topic identifiers associated with topics 152A-C as described in Fig. 1.
St. Clair also discloses, “The event delivery manager 130 is operative to receive batches of events for a given topic from the event recordation system 110 and deliver the events without any discontinuities to the event consumers 140. For example, the event delivery manager 130 can receive a batch of events (2a) for a topic 152A, a batch of events (2b) for topic 152A, and a batch of events (2c) for topic 152C.” ¶ 0037.
The claimed “first event type identifier” is mapped to the disclosed topic identifiers associated with topics 152A-C as described in Fig. 1.
It is implicit that identifiers similar to fig. 1 topics 152A-C are used to identify topics. However, such disclosure is not explicit.
Meanwhile, St. Clair teaches the use of identifier to identify and associate information, stating “The event may also include a partition. For example, the partition can include a tenant identifier… Typically, events of a stream may have one of multiple partitions and/or topics. Some events may share the same partition and/or the same topic,” ¶ 0026, “In some implementations, when a partition refers to a tenant identifier in a multi-tenant environment, all events received with that same partition belong to the same tenant,” ¶ 0027.
Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have combine St. Clair’s teaching of use identifiers to identify and associate information with St Clair’s teaching of topics. Doing so would help to quickly and accurate request and retrieve topic information.).
Claim 19 is a non-transitory machine readable medium corresponding to the method Claim 3. Therefore, Claim 19 is rejected for the same reason set forth in the rejection of Claim 3.
Regarding Claim 4, St. Clair teaches the method of claim 3, wherein the event type identifier identifies a category of events that comprises the first event (
PNG
media_image2.png
236
214
media_image2.png
Greyscale
Part of Fig. 1.
St. Clair discloses event identifiers associated with each topic 152A-C in the Event Recordation System 110 as described in Fig. 1.
St. Clair also discloses, “The event delivery manager 130 is operative to receive batches of events for a given topic from the event recordation system 110 and deliver the events without any discontinuities to the event consumers 140. For example, the event delivery manager 130 can receive a batch of events (2a) for a topic 152A, a batch of events (2b) for topic 152A, and a batch of events (2c) for topic 152C.” ¶ 0037.).
Regarding Claim 5, St. Clair teaches the method of claim 4, wherein the identified category of events further comprises at least a second event (
St. Clair discloses, “The partition and topic can be used to group events with the same topic and partition…,” ¶ 0016.).
Regarding Claim 6, St. Clair teaches the method of claim 4, wherein receiving the registration further comprises receiving an identifier that identifies the particular consumer (
PNG
media_image4.png
287
487
media_image4.png
Greyscale
Part of Fig. 1.
St. Clair discloses, “In some implementations, upon receipt of a request from an event consumer (e.g., a subscription to a topic), the event delivery manager 130 transmits the request to the event recordation system 110,” ¶ 0036.
Here, system 100 receives identifiers for event consumers 140A, 140B, … 140H to request events for topics 152A-152C.
It is implicit that identifiers similar to Fig. 1 event consumer 140 are used to identify consumer. However, such disclosure is not explicit.
Meanwhile, St. Clair teaches the use of identifier to identify and associate information, stating “The event may also include a partition. For example, the partition can include a tenant identifier… Typically, events of a stream may have one of multiple partitions and/or topics. Some events may share the same partition and/or the same topic,” ¶ 0026, “In some implementations, when a partition refers to a tenant identifier in a multi-tenant environment, all events received with that same partition belong to the same tenant,” ¶ 0027.
Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have combine St. Clair’s teaching of use identifiers to identify and associate information with St Clair’s teaching of consumers. Doing so would help to quickly and accurate request and retrieve consumer related information.).
Regarding Claim 7, St. Clair teaches the method of claim 6, wherein the particular consumer comprises a plurality of consumer instances, and receiving the registration further comprises receiving an identifier that identifies a first instance of the particular consumer as the instance that is registering for the data for the first event (
PNG
media_image4.png
287
487
media_image4.png
Greyscale
Part of Fig. 1.
St. Clair discloses, “Each instance from the instances of event consumers 140A-C is a process that is being executed on one or more servers of a distributed computing platform. The process is the actual execution of program code including instructions that form a computer program,” ¶ 0028, “In some implementations, the event consumers 140A-H may be implemented in a distributed computing environment, where multiple instances of event consumers can be run on one or more servers,” ¶ 0029.
Fig. 1 illustrates this, with Event Consumer 140A sending a first request to the Event Delivery Manager 130 for events.
It is implicit that identifiers similar to Fig. 1 event consumers 140A-C are used to identify consumer instances. However, such disclosure is not explicit.
Meanwhile, St. Clair teaches the use of identifier to identify and associate information, stating “The event may also include a partition. For example, the partition can include a tenant identifier… Typically, events of a stream may have one of multiple partitions and/or topics. Some events may share the same partition and/or the same topic,” ¶ 0026, “In some implementations, when a partition refers to a tenant identifier in a multi-tenant environment, all events received with that same partition belong to the same tenant,” ¶ 0027.
Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have combine St. Clair’s teaching of use identifiers to identify and associate information with St Clair’s teaching of consumer instances. Doing so would help to quickly and accurate request and retrieve consumer instance related information.).
Claim 20 is a non-transitory machine readable medium corresponding to the method Claims 6-7. Therefore, Claim 20 is rejected for the same reason set forth in the rejection of Claims 6-7.
Regarding Claim 8, St. Clair teaches the method of claim 7, wherein using the identity associated with the particular consumer to identify the partition set comprises using the identifier that identifies the first instance of the particular consumer to identify the partition set (
St. Clair discloses, “The event may also include a partition. For example, the partition can include a tenant identifier,” ¶ 0026, and “For example, in a multi-tenant system, a first event consumer 140A is dedicated to a first tenant and a second event consumer 140C may execute the same code and be dedicated to a second tenant that is different from the first tenant,” ¶ 0028.
The partition that is identified using a tenant identifier, associated with a tenant that each event consumer is dedicated to, is a singleton set consisting of a single partition.).
Claim 9 is rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view of Sevilmis (US 20150370767 A1).
Regarding Claim 9, St. Clair teaches the method of claim 8. St. Clair does not teach wherein using the identifier that identifies the first instance of the particular consumer to identify the partition set comprises performing a lookup in a cache to determine that the partition set is assigned to the first instance.
However, Sevilmis teaches wherein using the identifier that identifies the first instance of the particular consumer to identify the partition set comprises performing a lookup in a cache to determine that the partition set is assigned to the first instance (
Sevilmis discloses, “A user cache check operation 310 determines if a user-specific partition 140 exists for the user who submitted the read request 114 and, if so, whether the user-specific partition 140 contains any user view records responsive to the read request 114,” ¶ 0050).
St. Clair and Sevilmis are both considered to be analogous to the claimed invention because they are in the same field of data-based computing. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified St. Clair to incorporate the teachings of Sevilmis and provide wherein using the identifier that identifies the first instance of the particular consumer to identify the partition set comprises performing a lookup in a cache to determine that the partition set is assigned to the first instance. Doing so would help allow for storing the associations between each instance and partition set in the cache and for faster searches or data retrieval. (Sevilmis discloses, “The system also includes a user cache 136 for storing records of changes made users,” ¶ 0030.).
Claims 10 is rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view Karis (US 11620164 B1).
Regarding Claim 10, St. Clair teaches the method of claim 7. St. Clair does not teach further comprising: receiving from a second instance of the particular consumer a registration to receive data associated with the first event type identifier.
However, Karis teaches further comprising: receiving from a second instance of the particular consumer a registration to receive data associated with the first event type identifier (
Karis discloses, “The first consumer process 620a may include first consumer threads 622a, each of which may process data for a specific virtual partition of the first set of virtual partitions 614a. For example, a first thread of the first consumer threads 622a may consume a first virtual partition (e.g., (Org1, VP1)) of the first set of virtual partitions 614a, a second thread of the first consumer threads 622a may consume a second virtual partition (e.g., (Org1, VP2)) of the first set of virtual partitions 614a…,” Col 14, Lines 52-61.
The second thread receives data from an event that is the same type of event as the one associated with the first thread.);
using an identifier that identifies the second instance to identify another partition set of the data store that stores other data for the first event (
Karis discloses, “For example, a first thread of the first consumer threads 622a may consume a first virtual partition (e.g., (Org1, VP1)) of the first set of virtual partitions 614a, a second thread of the first consumer threads 622a may consume a second virtual partition (e.g., (Org1, VP2)) of the first set of virtual partitions 614a…,” Col 14, Lines 55-61.
The second partition can be considered a singleton set of partitions that stores data associated with the same first event as the first partition.);
and providing, to the second instance, another stream of data from the other identified partition set that stores other data regarding the first event (
Karis discloses, “FIG. 6 illustrates an exemplary system architecture 600 for virtual partitioning of data, according to an embodiment of the present disclosure. The system 600 may include multiple trace-ingests 602a, 602b, 602c for virtually partitioning data of users. For example, a stream of data may be received that includes traces (e.g., trace data) for various users (e.g., customers/tenants/organizations) in a multi-tenant environment,”, Col 13, Lines 59-66, and “A second thread of the first consumer threads 622a may consume a second virtual partition (e.g., (Org1, VP2)) of the first set of virtual partitions 614a…,” Col 14, Lines 58-61.).
St. Clair and Karis are both considered to be analogous to the claimed invention because they are in the same field of stream-processing. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified St. Clair to incorporate the teachings of Karis and provide further comprising: receiving from a second instance of the particular consumer a registration to receive data associated with the first event type identifier; using an identifier that identifies the second instance to identify another partition set of the data store that stores other data for the first event; and providing, to the second instance, another stream of data from the other identified partition set that stores other data regarding the first event. Doing so would help improve the efficiency of processing data. (Karis discloses, “The disclosed subject technology further provides improvements to the functioning of the computer itself because it improves efficiency in processing the data and reduces utilization of computing and memory resources,” Col 13, Lines 54-58.).
Claim 11 is rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view of Barsness (US 20180121517 A1).
Regarding Claim 11, St. Clair teaches the method of claim 1. St. Clair does not teach wherein providing, to the particular consumer, the stream of data regarding the first event comprises iteratively providing data tuples that are stored continuously in the identified partition set regarding the first event.
However, Barsness teaches wherein providing, to the particular consumer, the stream of data regarding the first event comprises iteratively providing data tuples that are stored continuously in the identified partition set regarding the first event (
Barsness discloses, “Stream computing applications handle massive volumes of data that need to be processed efficiently and in real time. For example, a stream computing application may continuously ingest and analyze hundreds of thousands of messages per second and up to petabytes of data per day. Accordingly, each stream operator in a stream computing application may be required to process a received tuple within fractions of a second. Unless the stream operators are located in the same processing element, it is necessary to use an inter-process communication path each time a tuple is sent from one stream operator to another,” ¶ 0039, and “For example, if tuples within a buffer are organized into partitions or similar structures based on a key value, this partitioning may be used to reduce the scope of tuples which must be examined to respond to the local query.” ¶ 0131.).
St. Clair and Barsness are both considered to be analogous to the claimed invention because they are in the same field of stream-processing. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified St. Clair to incorporate the teachings of Barsness and provide wherein providing, to the particular consumer, the stream of data regarding the first event comprises iteratively providing data tuples that are stored continuously in the identified partition set regarding the first event. Doing so would help ensure improve efficiency of querying/accessing for data. (Barsness discloses, “…this partitioning may be used to reduce the scope of tuples which must be examined to respond to the local query,” ¶ 0131.).
Claim 14 is rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view of Sandholm (US 20130072233 A1).
Regarding Claim 14, St. Clair teaches the method of claim 1. St. Clair does not teach wherein at least two partitions of the data store are in two different geographic sites.
However, Sandholm teaches wherein at least two partitions of the data store are in two different geographic sites (
Sandholm discloses, “Furthermore, such databases may be geographically partitioned (‘geo-partitioned’) according to different geographic location identifiers,” ¶ 0032).
St. Clair and Sandholm are both considered to be analogous to the claimed invention because they are in the same field of data computing. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified St. Clair to incorporate the teachings of Sandholm and provide wherein at least two partitions of the data store are in two different geographic sites. Doing so would help allow for scalable geo-location queries. (Sandholm discloses, “In some examples, the online search system 16 includes a back-end service that uses dynamic database sharding to partition the data efficiently for scalable geo-location (e.g., find nearby and rank) queries,” ¶ 0032.).
Claims 15-16 are rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view of Krishnaswamy (US 20230244577 A1).
Regarding Claim 15, St. Clair teaches the method of claim 1, wherein the particular consumer resides in a first datacenter (
St. Clair discloses, “In some implementations, the event consumers 140A-H may be implemented in a distributed computing environment, where multiple instances of event consumers can be run on one or more servers,” ¶ 0029.).
St. Clair does not teach wherein the data store resides in a second datacenter.
However, Krishnaswamy teaches wherein the data store resides in a second datacenter (
Krishnaswamy discloses, “According to exemplary embodiments, during normal operation mode, the first data center site 502 may be referred to as a production site or an active site during which application consumers and producers 524 are in active mode. The first data center site 502 may include a first database 506, a first messaging platform manager 508 at a passive mode, and a messaging platform 522 at the production site,” ¶ 0094, and “According to exemplary embodiments, during normal operation mode, the second data center 504 may be referred to as a disaster recovery site or a passive site. The second data center 504 may include a second database 512, a second messaging platform manager 516 at an active mode, and a messaging platform 518,” ¶ 0095.
The claimed “second datacenter” is mapped to the disclosed “second data center 504”, which contains a second database (a type of data store).
Krishnaswamy teaches that data centers may be dedicated to different functionalities. After the combination, the database is separated from the application consumers that are stored on the first data center site 502, as the first data center manages the consumers while the second data center manages the database.).
St. Clair and Krishnaswamy are both considered to be analogous to the claimed invention because they are in the same field of data-based computing. Therefore, it would have been obvious to someone of ordinary skill in the art before the effective filing date of the claimed invention to have modified St. Clair to incorporate the teachings of Krishnaswamy and provide wherein the data store resides in a second datacenter. Doing so would help to make the system more scalable and easier to manage and maintain (Krishnaswamy discloses, “The present disclosure, through one or more of its various aspects, embodiments, and/or specific features or sub-components, provides, among other features, various systems, servers, devices, methods, media, programs, and platforms for implementing an automated secondary site failover module for detecting database states of a primary and a secondary site and automatically switching replication flows, thereby improving applications' performances and reducing customer impact but the disclosure is not limited thereto,” ¶ 0006.).
Regarding Claim 16, St. Clair in view of Krishnaswamy teaches the method of claim 15, wherein the first and second datacenters belong to a same cloud provider (
St. Clair discloses, “The event consumers 140 can be owned and operated by a same entity such as a multi-tenant cloud computing architecture supporting multiple services,” ¶ 0029).
Claim 17 is rejected under 35 U.S.C. 103 as being unpatentable over St. Clair (US 20200257574 A1) in view of Krishnaswamy (US 20230244577 A1) and Davis (US 11416294 B1).
Regarding Claim 17, St. Clair in view of Krishnaswamy teaches the method of claim 15. St. Clair in view of Krishnaswamy does not te