IP Library Granted Patent US 10,872,095
Granted Patent B2
US 10,872,095 · App. 16/013,720 · Granted Dec 22, 2020

Aggregation framework system architecture and method

Inventors: Eliot Horowitz (New York, NY); David Lenox Storch (Brooklyn, NY); Charles William Swanson (New York, NY)
Assignee: MongoDB, Inc.
G06F16/258G06F16/23G06F16/2471G06F16/24556G06F16/254G06F16/284G06F16/248G06F16/27G06F16/951G06F16/958
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 10,872,095
App. No.
16/013,720
Granted
Dec 22, 2020
Kind
B2
Abstract

A system and computer implemented method for execution of aggregation expressions on a distributed non-relational database system is provided. According to an aspect, an operation is provided to perform the aggregation operation. An indication of at least one foreign collection of documents is accepted. An indication of at least one variable for at least one local field of at least one local collection of documents is accepted. An indication of a pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents is accepted. An operation comparing the local field of the at least one local collection of documents and the foreign field of the at least one foreign collection of documents is performed. Responsive to the operation, data from the at least one local collection of documents and the at least one foreign collection of documents is aggregated.

Claims (78)

1. A computer implemented method for execution of aggregation expressions on a distributed non-relational database system, the method comprising the acts of:

executing, by a computer system, an aggregation operation, wherein the aggregation operation includes a plurality of data operations on a distributed non-relational database having a plurality of collections of documents including at least one local collection of documents and at least one foreign collection of documents;

providing an operation using the at least one local collection of documents and the at least one foreign collection of documents, wherein the operation performing the aggregation operation comprises the acts of:

accepting an indication of the at least one foreign collection of documents;

accepting an indication of at least one variable for at least one local field of the at least one local collection of documents;

accepting an indication of a pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the pipeline includes:

an indication of at least one foreign field of the at least one foreign collection of documents;

an indication of the at least one variable for the at least one local field of the at least one local collection of documents, wherein referencing the at least one variable allows access to the at least one local field from the pipeline; and

an indication of a comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents;

performing the comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation.

2. The computer implemented method according to claim 1 , further comprising the acts of:

accepting an indication of a sub-pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the sub-pipeline includes:

an indication of the at least one foreign field of the at least one foreign collection of documents;

an indication of the at least one variable for the at least one local field of the at least one local collection of documents, wherein referencing the at least one variable allows access to the at least one local field from the sub-pipeline; and

an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents;

performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the second comparison operation.

3. The computer implemented method according to claim 2 , further comprising the act of creating, for the sub-pipeline, a context for allowing access to the at least one variable for the at least one local field of the at least one local collection of documents.

4. The computer implemented method according to claim 1 , wherein the indication of the pipeline further includes an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents, further comprising the acts of:

performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation and/or the second comparison operation.

5. The computer implemented method according to claim 1 , wherein the comparison operation is selected from the group consisting of an equality operation, a non-equality operation, a less than operation, a less than or equal operation, a greater than operation, and a greater than or equal operation.

6. The computer implemented method according to claim 1 , further comprising the act of:

caching the aggregated data from the at least one foreign collection of documents responsive to the comparison operation,

wherein a subsequent iteration of the pipeline retrieves the cached aggregated data instead of repeating the aggregating of the data from the at least one foreign collection of documents.

7. The computer implemented method according to claim 1 , further comprising an act of creating an output data structure including a result of the aggregated data.

8. The computer implemented method according to claim 1 , wherein the non-relational database system is a NoSQL database system.

9. The computer implemented method according to claim 1 , wherein the act of aggregating data from the at least one local collection of documents responsive to the comparison operation comprises the acts of:

aggregating data from the at least one local collection of documents including at least one identified field of the at least one local collection of documents; and/or

aggregating data from the at least one foreign collection of documents including at least one identified field of the at least one foreign collection of documents.

10. The computer implemented method according to claim 1 , wherein the act of aggregating data from the at least one local collection of documents comprises the act of grouping documents of the at least one local collection of documents.

11. A distributed database system for execution of aggregation expressions on a distributed non-relational database system, the system comprising:

at least one processor operatively connected to a memory;

a distributed non-relational database having a plurality of collections of documents including at least one local collection of documents and at least one foreign collection of documents;

a component adapted to perform an operation using the at least one local collection of documents and the at least one foreign collection of documents, comprising:

means for accepting an indication of the at least one foreign collection of documents;

means for accepting an indication of at least one variable for at least one local field of the at least one local collection of documents;

means for accepting an indication of a pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the pipeline includes:

an indication of at least one foreign field of the at least one foreign collection of documents;

an indication of the at least one variable for the at least one local field of the at least one local collection of documents, wherein referencing the at least one variable allows access to the at least one local field from the pipeline; and

an indication of a comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents;

means for performing the comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

means for aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation.

12. The system according to claim 11 , further comprising:

means for accepting an indication of a sub-pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the sub-pipeline includes:

an indication of the at least one foreign field of the at least one foreign collection of documents;

an indication of the at least one variable for the at least one local field of the at least one local collection of documents, wherein referencing the at least one variable allows access to the at least one local field from the sub-pipeline; and

an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents;

means for performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

means for aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the second comparison operation.

13. The system according to claim 12 , further comprising means for creating, for the sub-pipeline, a context for allowing access to the at least one variable for the at least one local field of the at least one local collection of documents.

14. The system according to claim 11 , wherein the indication of the pipeline further includes an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents, further comprising:

means for performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

means for aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation and/or the second comparison operation.

15. The system according to claim 11 , wherein the comparison operation is selected from the group consisting of an equality operation, a non-equality operation, a less than operation, a less than or equal operation, a greater than operation, and a greater than or equal operation.

16. The system according to claim 11 , further comprising:

means for caching the aggregated data from the at least one foreign collection of documents responsive to the comparison operation,

wherein a subsequent iteration of the pipeline retrieves the cached aggregated data instead of repeating the aggregating of the data from the at least one foreign collection of documents.

17. The system according to claim 11 , further comprising means for creating an output data structure including a result of the aggregated data.

18. The system according to claim 11 , wherein the non-relational database system is a NoSQL database system.

19. The system according to claim 11 , wherein the means for aggregating data from the at least one local collection of documents responsive to the comparison operation comprises:

means for aggregating data from the at least one local collection of documents including at least one identified field of the at least one local collection of documents; and/or

means for aggregating data from the at least one foreign collection of documents including at least one identified field of the at least one foreign collection of documents.

20. The system according to claim 11 , wherein the means for aggregating data from the at least one local collection of documents comprises means for grouping documents of the at least one local collection of documents.

21. A computer implemented method for execution of aggregation expressions on a distributed non-relational database system, the method comprising the acts of:

receiving, by a computer system, an operation referencing at least one local collection of documents and at least one foreign collection of documents, wherein the operation comprises the acts of:

accepting an indication of a pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the pipeline includes an indication of a comparison operation for comparing at least one local field of the at least one local collection of documents and at least one foreign field of the at least one foreign collection of documents;

performing the comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation.

22. The computer implemented method according to claim 21 , wherein the operation further comprises the acts of:

accepting an indication of a sub-pipeline for execution on the at least one local collection of documents and the at least one foreign collection of documents, wherein the indication of the sub-pipeline includes an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents;

performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the second comparison operation.

23. The computer implemented method according to claim 22 , further comprising the act of creating, for the sub-pipeline, a context for allowing access to at least one variable for the at least one local field of the at least one local collection of documents.

24. The computer implemented method according to claim 21 , wherein the indication of the pipeline further includes an indication of a second comparison operation for comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents, further comprising the acts of:

performing the second comparison operation comparing the at least one local field of the at least one local collection of documents and the at least one foreign field of the at least one foreign collection of documents; and

aggregating data from the at least one local collection of documents and the at least one foreign collection of documents responsive to the comparison operation and/or the second comparison operation.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2020
From: HOROWITZ, ELIOT
To: MONGODB, INC.
Reel/Frame 054418/0955 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 19, 2020
From: STORCH, DAVID LENOX; SWANSON, CHARLES WILLIAM
To: MONGODB, INC.
Reel/Frame 054419/0005 →
Continuity (19)
Continuation In Part 15604879 · May 25, 2017
Continuation In Part 15042297 · Feb 12, 2016
Continuation 13951987 · Jul 26, 2013
Continuation In Part 13794710 · Mar 11, 2013
Continuation In Part 14672901 · Mar 30, 2015
Continuation 13794710 · Mar 11, 2013
Continuation 16013720 · Jun 20, 2018
Continuation 15605391 · May 25, 2017
Continuation In Part 15042297 · Feb 12, 2016
Continuation 13951987 · Jul 26, 2013
Continuation In Part 13794710 · Mar 11, 2013
Continuation In Part 14672901 · Mar 30, 2015
Continuation 13794710 · Mar 11, 2013
Provisional Application 62522540 · Jun 20, 2017
Provisional Application 62522150 · Jun 20, 2017
Provisional Application 62341511 · May 25, 2016
Provisional Application 62341490 · May 25, 2016
Provisional Application 61676188 · Jul 26, 2012
Related Publication 20180300381A1 · Oct 18, 2018
Cited By (2)
US 12,373,456 US 12,710,931