# US 12,112,068 B2 · Systems and methods for multi-tiered data storage abstraction layer

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,112,068 B2
- Document ID: US12112068B2
- Status: Granted
- Kind: B2
- Application number: 18/078,698
- Filed: 2022-12-09
- Published: 2023-04-06
- Granted: 2024-10-08
- Earliest claimed: 2020-09-02
- Assignees: Tyco Fire & Security GmbH
- Applicants: Johnson Controls Tyco IP Holdings LLP
- Inventors: Carol T. Tumey; Michael F. Jaeger
- Web page: https://patentgrep.com/patent/US12112068B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0685: {Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays}
- G05B 19/042: using digital processors (G05B19/05 takes precedence)
- G06F 3/061: {Improving I/O performance}
- G06F 3/064: {Management of blocks}
- G06F 3/065: {Replication mechanisms}
- G06F 3/068: {Hybrid storage device}
- G06F 12/0802: Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G05B 2219/25011: Domotique, I-O bus, home automation, building automation
- G05B 2219/2614: HVAC, heating, ventillation, climate control
- G05B 2219/2642: Domotique, domestic, home control, automation, smart house
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G05B: CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS (systems for controlling or regulating non-electric variables G05D; systems for regulating electric or magnetic variables G05F; control devices or systems insofar as characterised by mechanical features only G05G)

## Abstract

A multi-tiered data storage system for building management system (BMS) data includes a plurality of data stores including a first data store and a second data store. The system further includes a data access router configured to provide a consistent endpoint for the BMS data to an application that provides or consumes the BMS data regardless of whether the BMS data is stored in the second data store or the first data store, obtain a requested data object of the BMS data from the second data store in response to a determination that the requested data object is available in the second data store, and obtain the requested data object from the first data store in response to a determination that the requested data object is not available in the second data store.

## Claims

### Claim 1

A data storage system for building management system (BMS) data, the data storage system comprising:
a data access router configured to:
obtain the BMS data from a data source, the BMS data comprising (1) a value of a variable state or condition represented by the BMS data and (2) a timestamp indicating a time at which the variable state or condition represented by the BMS data occurs; and
determine whether to store the BMS data in a first data store or a second data store based on the timestamp of the BMS data indicating the time at which the variable state or condition represented by the BMS data occurs.

### Claim 2 (depends on 1)

The storage system of claim 1, wherein:
the first data store is configured to store the BMS data and the second data store configured to store a redundant copy of at least a portion of the BMS data stored in the first data store; and
the data access router is configured to:
provide a consistent endpoint for the BMS data to an application that provides or consumes the BMS data regardless of whether the BMS data is stored in the second data store or the first data store;
obtain a requested data object of the BMS data from the second data store in response to a determination that the requested data object is available in the second data store; and
obtain the requested data object from the first data store in response to a determination that the requested data object is not available in the second data store an operational data store;
the second data store is a cache data store;
wherein the storage system further comprises a reporting data store; and
the data access router is configured to provide the consistent endpoint to the application that provides or consumes the BMS data regardless of whether the BMS data is stored in the first data store, the second data store, or the reporting data store.

### Claim 3 (depends on 2)

The storage system of claim 2, wherein the requested data object comprises at least one of:
a point data object comprising metadata describing a point in a BMS; or
a sample data object comprising a value of the point in the BMS.

### Claim 4 (depends on 2)

The storage system of claim 2, wherein the data access router is configured to write the requested data object to the second data store after retrieving the requested data object from the first data store.

### Claim 5 (depends on 2)

The storage system of claim 2, wherein the data access router is configured to write the requested data object to the second data store in response to a determination that the requested data object is a most recent version of the requested data object.

### Claim 6 (depends on 2)

The storage system of claim 2, wherein the data access router is configured to:
receive a new data object of the BMS data from the application; and
write the new data object to both the second data store and the first data store.

### Claim 7 (depends on 1)

The storage system of claim 1, wherein:
the first data store is configured to store multiple values of a data object of the BMS data, the multiple values comprising a most recent value of the data object and one or more outdated values of the data object; and
the second data store is configured to store only the most recent value of the data object.

### Claim 8 (depends on 1)

The storage system of claim 1, wherein the data access router is configured to:
determine a data storage capability of each of a plurality of data stores, the data storage capability of a data store indicating one or more types of data objects that the data store is capable of storing;
in response to receiving a new data object of the BMS data, determine a type of the new data object; and
store the new data object in each data store of the plurality of data stores for which the data storage capability of the data store indicates that the data store is capable of storing the type of the new data object.

### Claim 9 (depends on 2)

The storage system of claim 2, wherein the data access router is configured to:
determine whether the requested data object is a most recent version of the requested data object in response to a determination that the requested data object is available in the second data store; and
remove the requested data object from the second data store in response to a determination that the requested data object is not the most recent version of the requested data object.

### Claim 10

A method for storing data for a building management system (BMS), the method comprising:
providing a consistent endpoint for BMS data to an application that provides or consumes the BMS data regardless of whether the BMS data is stored in an operational data store or a cache data store;
obtaining a requested data object of the BMS data from the cache data store in response to a determination that the requested data object is available in the cache data store;
obtaining the requested data object from the operational data store in response to a determination that the requested data object is not available in the cache data store; and
storing a redundant copy of at least a portion of the BMS data in the operational data store in the cache data store, the redundant copy of the at least a portion of the BMS data being associated with the requested data object.

### Claim 11 (depends on 10)

The method of claim 10, further comprising:
providing the consistent endpoint to the application that provides or consumes the BMS data regardless of whether the BMS data is stored in the cache data store, the operational data store, or a reporting data store.

### Claim 12 (depends on 10)

The method of claim 10, wherein the requested data object comprises at least one of:
a point data object comprising metadata describing a point in a BMS; or
a sample data object comprising a value of the point in the BMS.

### Claim 13 (depends on 10)

The method of claim 10, further comprising:
obtaining the requested data object from a reporting data store if the operational data store is not available in the operational data store after retrieving the requested data object from the operational data store.

### Claim 14 (depends on 10)

The method of claim 10, further comprising writing the requested data object to the cache data store in response to a determination that the requested data object is a most recent version of the requested data object.

### Claim 15 (depends on 10)

The method of claim 10, wherein the method further comprises
receiving a new data object of the BMS data from the application; and
writing the new data object to both the cache data store and the operational data store.

### Claim 16 (depends on 10)

The method of claim 10, wherein:
the operational data store is configured to store multiple values of a data object of the BMS data, the multiple values comprising a most recent value of the data object and one or more outdated values of the data object; and
the cache data store is configured to store only the most recent value of the data object.

### Claim 17 (depends on 10)

The method of claim 10, wherein the method further comprises:
determining a data storage capability of each of a plurality of data stores, the data storage capability of a data store indicating one or more types of data objects that the data store is capable of storing;
in response to receiving a new data object of the BMS data, determining a type of the new data object; and
storing the new data object in each data store of the plurality of data stores for which the data storage capability of the data store indicates that the data store is capable of storing the type of the new data object.

### Claim 18 (depends on 10)

The method of claim 10, wherein the method further comprises:
determining whether the requested data object is a most recent version of the requested data object in response to a determination that the requested data object is available in the cache data store; and
removing the requested data object from the cache data store in response to a determination that the requested data object is not the most recent version of the requested data object.

### Claim 19

A building management device for storing building management system (BMS) data, the building management device comprising one or more processors configured to:
provide a consistent endpoint for BMS data to an application that provides or consumes the BMS data regardless of whether the BMS data is stored in a first data store, a second data store or a third data store;
obtain a requested data object of the BMS data from the second data store in response to a determination that the requested data object is available in the second data store; and
obtain the requested data object from the first data store or the third data store in response to a determination that the requested data object is not available in the second data store,
wherein:
the first data store is configured to store the BMS data; and
the second data store is configured to store a redundant copy of at least a portion of the BMS data stored in the first data store or the third data store.

### Claim 20 (depends on 19)

The device of claim 19, wherein:
the first data store is an operational data store;
the second data store is a cache data store;
the third data store is a reporting data store; and
the one or more processors are further configured to provide the consistent endpoint to the application that provides or consumes the BMS data regardless of whether the BMS data is stored in the cache data store, the operational data store, or the reporting data store.
