IP Library Granted Patent US 12,450,245
Granted Patent B2
US 12,450,245 · App. 18/358,253 · Granted Oct 21, 2025

Systems and methods for processing timeseries data

Inventors: Geert Bosch (Brooklyn, NY); Henrik Edin (Portsmouth, NH); Pawel Terlecki (Miami, FL); David Percy (New York, NY); Daniel Larkin-York (Saint Petersburg, FL)
Assignee: MongoDB, Inc.
G06F16/2477G06F16/221G06F16/2246G06F16/2474
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 12,450,245
App. No.
18/358,253
Granted
Oct 21, 2025
Kind
B2
Abstract

A system is provided for storing, in a database, a plurality of timeseries represented by a plurality of respective documents events in a columnar format. The system further is adapted compress at least one of the values within the plurality of documents. According to some embodiments, the system stores the compressed values as a Simple-8b block and calculates the optimal Simple-8b selector. According to some embodiments, the system is adapted to determine a secondary index based on values within the bucket.

Claims (56)

1. A system comprising:

a database engine in a database executed by at least one computer processor and configured to store timeseries events, the database engine being further configured to:

receive, over a network operatively coupled to the database engine, the timeseries events as one or more BSON documents, wherein the one or more BSON documents includes timeseries measurements;

compress the one or more BSON documents, wherein the compressing comprises:

performing a delta compression operation or a delta-of-delta compression operation on at least one of the timeseries measurements; and

store, in one or more storage entities of the database, the compressed one or more BSON documents using a Simple-8b block, wherein the database engine is configured to store the compressed one or more BSON documents using the Simple-8b block by:

determining whether an optimal Simple-8b selector to be used is an extended Simple-8b selector based on a number of trailing zeros in one or more of the compressed measurements; and

calculating the optimal Simple-8b selector for the Simple-8b block based on the compressed measurements and the determination of whether the optimal Simple-8b selector is the extended Simple-8b selector; and

storing the compressed measurements in the one or more storage entities of the database using the Simple-8b block employing the optimal Simple-8b selector.

2. The system according to claim 1 , wherein the compressing further comprises performing a ZigZag encoding using an output of the delta compression or the delta-of-delta compression.

3. The system according to claim 2 , wherein the compressing further comprises calculating a number associated with meaningful bits of an output of the ZigZag encoding.

4. The system according to claim 3 , wherein the compressing further comprises performing a scale encoding on the at least one of the timeseries measurements.

5. The system according to claim 1 , wherein the delta compression operation or a delta-of-delta compression operation of a document element based on a type value of the document element.

6. The system according to claim 1 , wherein the storing of the compressed one or more BSON documents further comprises:

storing a first portion of the compressed measurements using the Simple-8b block, and

storing a second portion of the compressed measurements using a second Simple-8b block.

7. The system according to claim 1 , wherein the Simple-8b block comprises

the Simple-8b selector, the Simple-8b selector configured to encode a number of slots for storing the compressed measurements; and

a shift configured to encode the number of trailing zeros stored within a slot of the Simple-8b block.

8. A method comprising:

storing, by a database engine in a database, timeseries events, the database engine being configured to:

receive, over a network operatively coupled to the database engine, the timeseries events as one or more BSON documents, wherein the one or more BSON documents includes timeseries measurements;

compress the one or more BSON documents, wherein the compressing comprises:

performing a delta compression operation or a delta-of-delta compression operation on at least one of the timeseries measurements; and

storing, in one or more storage entities of the database, the compressed one or more BSON documents using a Simple-8b block, wherein the storing comprises:

determining whether an optimal Simple-8b selector to be used in an extended Simple-8b selector based on a number of trailing zeros in one or more of the compressed measurements; and

calculating the optimal Simple-8b selector for the Simple-8b block based on the compressed measurements and the determination of whether the optimal Simple-8b selector is the extended Simple-8b selector; and

storing the compressed measurements in the one or more storage entities of the database using the Simple-8b block employing the optimal Simple-8b selector.

9. The method according to claim 8 , wherein the compressing further comprises performing a ZigZag encoding using an output of the delta compression or the delta-of-delta compression.

10. The method according to claim 9 , wherein the compressing further comprises calculating a number associated with meaningful bits of an output of the ZigZag encoding.

11. The method according to claim 10 , wherein the compressing further comprises performing a scale encoding on the at least one of the timeseries measurements.

12. The method according to claim 8 , wherein the delta compression operation or a delta-of-delta compression operation of a document element based on a type value of the document element.

13. The method according to claim 8 , wherein the storing of the compressed one or more BSON documents further comprises:

storing a first portion of the compressed measurements using the Simple-8b block, and

storing a second portion of the compressed measurements using a second Simple-8b block.

14. The method according to claim 8 , wherein the Simple-8b block comprises

the Simple-8b selector, the Simple-8b selector configured to encode a number of slots for storing the compressed measurements; and

a shift configured to encode the number of trailing zeros stored within a slot of the Simple-8b block.

15. A non-transitory computer-readable medium containing instruction that, when executed, cause at least one computer hardware processor to perform:

storing, in a database, timeseries events, the at least one computer hardware processor being further configured to:

receive, over a network operatively coupled to the database, the timeseries events as one or more BSON documents, wherein the one or more BSON documents includes timeseries measurements;

compress the one or more BSON documents, wherein the compressing comprises:

performing a delta compression operation or a delta-of-delta compression operation on at least one of the timeseries measurements; and

storing, in one or more storage entities of the database, the compressed one or more BSON documents using a Simple-8b block, wherein the at least one computer hardware processor is configured to store the compressed one or more BSON documents using the Simple-8b block by:

determining whether an optimal Simple-8b selector to be used in an extended Simple-8b selector based on a number of trailing zeros in one or more of the compressed measurements; and

calculating the optimal Simple-8b selector for the Simple-8b block based on the compressed measurements and the determination of whether the optimal Simple-8b selector is the extended Simple-8b selector; and

storing the compressed measurements in the one or more storage entities of the database using the Simple-8b block employing the optimal Simple-8b selector.

16. The non-transitory computer-readable medium according to claim 15 , wherein the compressing further comprises performing a ZigZag encoding using an output of the delta compression or the delta-of-delta compression.

17. The non-transitory computer-readable medium according to claim 16 , wherein the compressing further comprises calculating a number associated with meaningful bits of an output of the ZigZag encoding.

18. The non-transitory computer-readable medium according to claim 17 , wherein the compressing further comprises performing a scale encoding on the at least one of the timeseries measurements.

19. The non-transitory computer-readable medium according to claim 15 , wherein the storing of the compressed one or more BSON documents further comprises:

storing a first portion of the compressed measurements using the Simple-8b block, and

storing a second portion of the compressed measurements using a second Simple-8b block.

20. The non-transitory computer-readable medium according to claim 15 , wherein the Simple-8b block comprises

the Simple-8b selector, the Simple-8b selector configured to encode a number of slots for storing the compressed measurements; and

a shift configured to encode a number of trailing zeros stored within a slot of the Simple-8b block.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 9, 2024
From: BOSCH, GEERT; EDIN, HENRIK; TERLECKI, PAWEL; PERCY, DAVID; LARKIN-YORK, DANIEL
To: MONGODB, INC.
Reel/Frame 067043/0015 →
Continuity (4)
Continuation In Part 17858950 · Jul 6, 2022
Provisional Application 63392457 · Jul 26, 2022
Provisional Application 63220332 · Jul 9, 2021
Related Publication 20230367781A1 · Nov 16, 2023
References Cited (28)
US 11010223B2 · Dasgupta et al. · 2021 [cited by applicant]
US 12038926B1 · Pathak et al. · 2024 [cited by applicant]
US 12174847B2 · Terlecki et al. · 2024 [cited by applicant]
US 20070255758A1 · Zheng et al. · 2007 [cited by applicant]
US 20120109985A1 · Chandrasekaran · 2012 [cited by applicant]
US 20170262517A1 · Horowitz et al. · 2017 [cited by applicant]
US 20180232459A1 · Park et al. · 2018 [cited by applicant]
US 20180300381A1 · Horowtiz et al. · 2018 [cited by applicant]
US 20190087696A1 · Verhoeven et al. · 2019 [cited by applicant]
US 20200372004A1 · Barber et al. · 2020 [cited by applicant]
US 20200387509A1 · Florendo · 2020 [cited by examiner]
US 20210034598A1 · Arye · 2021 [cited by examiner]
US 20210156401A1 · Cristofori et al. · 2021 [cited by applicant]
US 20210406528A1 · Ramani et al. · 2021 [cited by applicant]
US 20220067980A1 · Kletter · 2022 [cited by examiner]
US 20230037619A1 · Terlecki et al. · 2023 [cited by applicant]
US 20230040530A1 · Terlecki et al. · 2023 [cited by applicant]
US 20230041129A1 · Terlecki et al. · 2023 [cited by applicant]
US 20230367752A1 · Bosch et al. · 2023 [cited by applicant]
US 20230367801A1 · Bosch et al. · 2023 [cited by applicant]
CN 111061722A · 2020 [cited by examiner]
CN 111626623A · 2020 [cited by applicant]
CN 112307177A · 2021 [cited by applicant]
CN 113518081A · 2021 [cited by applicant]
WO WO2021174104A1 · 2021 [cited by applicant]
Jeong et al. A data management infrastructure for bridge monitoring. Proceedings vol. 9435, Sensors and Smart Structures Technologies for Civil, Mechanical and Aerospace Systems 2015; 94350P (2015). pp. 1-16 (Year: 2015… [cited by applicant]
MongoDB Manual, https://www.mongodb.com/docs/v4.4 pp. 1-122 (Year: 2020). [cited by applicant]
Qi M. Digital Forensics and NoSQL Databases, 2014 11th International Conference on Fuzzy Systems and Knowledge Discovery pp. 1-6 (Year: 2014). [cited by applicant]