IP Library › Granted Patent US 11,580,105
Granted Patent B2
US 11,580,105 · App. 16/592,352 · Granted Feb 14, 2023

Method and system for implementing subscription barriers in a distributed computation system

Inventors: George Duncan Pearson (York, GB); Jason Stephen Reich (York, GB); Thomas Francis Shackell (Leeds, GB)
Assignee: Anaplan, Inc.
G06F16/24545G06F16/212G06F16/24568
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,580,105
App. No.
16/592,352
Granted
Feb 14, 2023
Kind
B2
Abstract

Embodiments of the invention relate to a method for managing subscriptions. The method includes initiating execution of a first subscription, in response to the initiating, obtaining a first subscription barrier associated with a first subscription, making, using the first subscription barrier, a first determination to block execution of a first query request associated with the first subscription, and in response to the first determination, ceasing execution of the first subscription.

Claims (70)

1. A method for managing subscriptions to query requests in a query system, comprising:

initiating, by a subscription engine, execution of a first subscription associated with a first query request from a user of the query system;

In response to the initiating, obtaining a criterion of a first subscription barrier, of a plurality of subscription barriers, associated with the first subscription, wherein the first subscription barrier prevents issuance of the first query request based on data that triggered the first subscription and calculations that are performed on the data in order to generate a query result;

making, based on an evaluation of the criterion of the first subscription barrier and by the subscription engine, a first determination to block execution of the first subscription by a query node associated with the first query request, wherein an order in which the plurality of subscription barriers are evaluated is set such that a first set of subscription barriers of the plurality of subscription barriers that require less computing resources to evaluate are evaluated prior to a second set of subscription barriers of the plurality of subscription barriers that require more computing resources to evaluate than the first set of subscription barriers, wherein the first set of subscription barriers comprises the first subscription barrier; and

making, after the first determination and after evaluating all of the plurality of subscription barriers, a second determination that one of the plurality of subscription barriers aside from the first subscription barrier permits the processing of the first subscription; and

based on the second determination and by the subscription engine, allowing execution of the first subscription by the query node even though the first subscription barrier prevents execution of the first subscription,

wherein making the first determination comprises:

determining that execution of a first query request by the query node will result in a first query result that is equal to a second query result, wherein the second query result is generated in response to a prior execution of the first query request;

Identifying, after determining that execution of the first query will result in the first query result being equal to the second query result, a cause specifying reasons as to why execution of the first query request will result in the first query result being equal to the second query result;

determining, based on the cause, that the first subscription barrier can be generated and generating the first subscription barrier; and

evaluating the generated first subscription barrier.

2. The method of claim 1 , further comprising:

receiving, by the subscription engine, an event; and

making a third determination, by the subscription engine, that the event is associated with a subscription trigger;

wherein the initiation of the execution of the first subscription is based on the third determination.

3. The method of claim 2 , wherein the event comprises receiving updated user data associated with the first subscription.

4. The method of claim 1 , further comprising:

initiating execution of a second subscription by the subscription engine;

in response to the initiating, obtaining a second subscription barrier, of the plurality of subscription barriers, associated with the second subscription, wherein the second subscription barrier prevents issuance of a second query request based on no ultimate change to a first query response to the second query request relative to a last query response to the second query request;

making, using the second subscription barrier, a second third determination to allow execution of the second query request associated with the second subscription; and

in response to the third determination, issuing the second query request to the query node.

5. The method of claim 4 , further comprising:

obtaining a first query response associated with the second query request;

generating, based on the first query response associated with the second query request and a second query response, a third subscription barrier, of the plurality of subscription barriers, associated with the second subscription, wherein the second query response was generated during a prior execution of the second query request.

6. The method of claim 1 , further comprising:

prior to initiating execution of the first subscription:

analyzing, by the subscription engine, a data model associated with the first subscription to determine user data associated with the first subscription;

generating, by the subscription engine, based on the user data, a subscription trigger associated with the first subscription, wherein the subscription trigger is used to initiate the execution of the first subscription; and

associating, by the subscription engine, the subscription trigger with the first subscription.

7. The method of claim 6 , wherein the subscription trigger is associated with the first subscription and a second subscription, wherein the second subscription is associated with the data model.

8. The method of claim 1 , further comprising:

initiating, by the subscription engine, execution of a second subscription;

in response to the initiating, obtaining, by the subscription engine, a second subscription barrier, of the plurality of subscription barriers, and a third subscription barrier, of the plurality of subscription barriers, associated with the second subscription;

making, by the subscription engine, using the second subscription barrier and the third subscription barrier, a second determination to allow execution of a second query request associated with a second subscription; and

in response to the second determination, issuing the second query request to a query node.

9. A non-transitory computer readable medium comprising computer readable program code, which when executed by a computer processor enables the computer processor to perform a method for managing subscriptions to query requests in a query system, the method comprising:

initiating, by a subscription engine, execution of a first subscription associated with a first query request;

in response to the initiating, obtaining a criterion of a first subscription barrier, of a plurality of subscription barriers, associated with the first subscription, wherein the first subscription barrier prevents issuance of the first query request based on data that triggered the first subscription and calculations that are performed on the data in order to generate a query result by the subscription engine;

making, based on an evaluation of the criterion of the first subscription barrier and by the subscription engine, a first determination to block execution of the first subscription by a query node associated with the first query request, wherein an order in which the plurality of subscription barriers are evaluated is set such that a first set of subscription barriers of the plurality of subscription barriers that require less computing resources to evaluate are evaluated prior to a second set of subscription barriers of the plurality of subscription barriers that require more computing resources to evaluate than the first set of subscription barriers, wherein the first set of subscription barriers comprises the first subscription barrier;

making, after the first determination and after evaluating all of the plurality of subscription barriers, a second determination that one of the plurality of subscription barriers aside from the first subscription barrier permits the processing of the first subscription; and

based on the second determination and by the subscription engine, allowing execution of the first subscription by the query node even though the first subscription barrier prevents execution of the first subscription,

wherein making the first determination comprises:

determining that execution of a first query request by the query node will result in a first query result that is equal to a second query result, wherein the second query result is generated in response to a prior execution of the first query request;

identifying, after determining that execution of the first query request will result in the first query result being equal to the second query result, a cause specifying reasons as to why execution of the first query request will result in the first query result being equal to the second query result;

determining, based on the cause, that the first subscription barrier can be generated and generating the first subscription barrier; and

evaluating the generated first subscription barrier.

10. The non-transitory computer readable medium of claim 9 , the method further comprising:

receiving, by the subscription engine, an event; and

making a third determination, by the subscription engine, that the event is associated with a subscription trigger;

wherein the initiation of the execution of the first subscription is based on the third determination.

11. The non-transitory computer readable medium of claim 10 , wherein the event comprises receiving updated user data associated with the first subscription.

12. The non-transitory computer readable medium of claim 9 , the method further comprising:

initiating execution of a second subscription by the subscription engine;

in response to the initiating, obtaining a second subscription barrier, of the plurality of subscription barriers, associated with the second subscription, wherein the second subscription barrier prevents issuance of a second query request based on no ultimate change to a first query response to the second query request relative to a last query response to the second query request;

making, using the second subscription barrier, a second third determination to allow execution of the second query request associated with the second subscription; and

in response to the third determination, issuing the second query request to the query node.

13. The non-transitory computer readable medium of claim 12 , the method further comprising:

obtaining a first query response associated with the second query request;

generating, based on the first query response associated with the second query request and a second query response, a third subscription barrier, of the plurality of subscription barriers, associated with the second subscription, wherein the second query response was generated during a prior execution of the second query request.

14. The non-transitory computer readable medium of claim 9 , the method further comprising:

prior to initiating execution of the first subscription:

analyzing, by the subscription engine, a data model associated with the first subscription to determine user data associated with the first subscription;

generating, by the subscription engine, based on the user data, a subscription trigger associated with the first subscription, wherein the subscription trigger is used to initiate the execution of the first subscription; and

associating, by the subscription engine, the subscription trigger with the first subscription.

15. The non-transitory computer readable medium of claim 14 , wherein the subscription trigger is associated with the first subscription and a second subscription, wherein the second subscription is associated with the data model.

16. The non-transitory computer readable medium of claim 9 , the method further comprising:

initiating, by the subscription engine, execution of a second subscription;

in response to the initiating, obtaining, by the subscription engine, a second subscription barrier, of the plurality of subscription barriers, and a third subscription barrier, of the plurality of subscription barriers, associated with the second subscription;

making, by the subscription engine, using the second subscription barrier and the third subscription barrier, a second determination to allow execution of a second query request associated with a second subscription; and

in response to the second determination, issuing the second query request to a query node.

Assignments (2)
GRANT OF SECURITY INTEREST IN PATENT RIGHTS Recorded Jun 22, 2022
From: ANAPLAN, INC.
To: OWL ROCK CAPITAL CORPORATION, AS COLLATERAL AGENT
Reel/Frame 060408/0434 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 7, 2020
From: PEARSON, GEORGE DUNCAN; REICH, JASON STEPHEN; SHACKELL, THOMAS FRANCIS
To: ANAPLAN, INC.
Reel/Frame 051442/0629 →
Continuity (2)
Continuation In Part 16176522 · Oct 31, 2018
Related Publication 20210011914A1 · Jan 14, 2021
Cited By (1)
US 12,455,900