# US 10,769,104 B2 · Block data storage system in an event historian

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

- Number: US 10,769,104 B2
- Document ID: US10769104B2
- Status: Granted
- Kind: B2
- Application number: 14/569,228
- Filed: 2014-12-12
- Published: 2016-06-16
- Granted: 2020-09-08
- Earliest claimed: 2014-12-12
- Assignees: Aveva Software, LLC
- Applicants: AVEVA Software, LLC
- Inventors: Brian Kenneth Erickson; Bala Kamesh Sista; Abhijit Manushree; Vinay T. Kamath
- Web page: https://patentgrep.com/patent/US10769104B2

## CPC

- G06F 16/13: File access structures, e.g. distributed indices (arrangements of input from, or output to, record carriers G06F3/06)
- G06F 11/3476: {Data logging (G06F11/14, G06F11/2205 take precedence)}
- G06F 16/2228: {Indexing structures}
- G06F 16/2477: {Temporal data queries}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/3058: {Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations (thermal management in cooling arrangements of a computing system G06F1/206)}
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2201/86: Event-based monitoring
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An event historian system receives event data from a client system via a network connection and stores the event data in a block data storage system. An event data block in which to store the received event data is selected based on the time range of the occurrence of the received event data. The received event data is stored in a snapshot within the event data block. Event property data is extracted from the received event data and used to build a plurality of event property index files.

## Claims

### Claim 1

An event historian system comprising:
a processor;
a network connection coupling a client system to the event historian system; and
a memory storage device coupled to the processor, said memory storage device storing event data blocks; and
processor-executable instructions for receiving and storing event data, said processor-executable instructions comprising instructions for:
receiving event data via the network from the client system in response to one or more events occurring within a process control system controlling and monitoring an industrial process, the event data representing the events occurring within the process control system;
storing, in the memory storage device, the received event data in a plurality of event data blocks, the event data blocks each comprising a storage block containing the event data corresponding to a first time range;
selecting an event data block of the plurality of event data blocks based on a time of occurrence of the events, said selected event data block comprising the received event data when the time of occurrence of the events occurs within the first time range, the selected event data block containing a plurality of snapshots, wherein each of the snapshots covers a part of the first time range, and wherein the snapshots are configurable to overlap with each other when the parts of the first time range covered thereby overlap;
selecting a snapshot from the plurality of snapshots within the selected event data block, said selected snapshot comprising the received event data corresponding to the events occurring within the process control system during a second time range,
wherein the second time range is within the first time range;
recording, in a random access memory (RAM), the received event data in the selected snapshot;
storing the snapshot from the RAM into the memory storage device according to a threshold;
iteratively merging the plurality of snapshots of the selected event data block into a merged snapshot, the merged snapshot comprising the received event data recorded in the plurality of snapshots;
extracting event property data from the received event data recorded in the merged snapshot; and
building a plurality of event property index files each containing a data section for each event property of the extracted event property data, wherein the event property index files are utilized by queries to the event historian system to efficiently look up the recorded event data.

### Claim 2 (depends on 1)

The system from claim 1, wherein recording the received event data comprises compressing the event data by determining shared patterns within the rows of the event data, removing the shared patterns from the event data rows, and storing the shared patterns in a separate file.

### Claim 3 (depends on 1)

The system of claim 1, wherein a time range of a first snapshot of the plurality of snapshots overlaps a time range of a second snapshot of the plurality of snapshots.

### Claim 4 (depends on 1)

The system of claim 1, wherein the received event data comprises duplicate data already present in the event data block and the received event data is recorded in the selected snapshot, and wherein the merged snapshot eliminates the duplicate data.

### Claim 5 (depends on 1)

The system of claim 1, wherein the event data comprises built-in event properties and extended event properties.

### Claim 6 (depends on 5)

The system of claim 5, wherein an extended event property is assigned a prefix indicating the data type of the extended event property when it is recorded.

### Claim 7 (depends on 1)

The system of claim 1, wherein the event historian system comprises a second network connection coupling a second client system to the event historian system and the event historian system receives event data via the first and second network connections from the first and second client systems.

### Claim 8 (depends on 1)

The system of claim 1, further comprising freezing the snapshot after the event data has been recorded, wherein the system does not record received event data in a snapshot after freezing, and wherein the merging comprises merging two or more frozen snapshots.

### Claim 9 (depends on 1)

The system of claim 1, wherein the snapshot is flushed from the RAM after storing the snapshot in the memory storage device.

### Claim 10 (depends on 1)

The system of claim 1, further comprising instructions for:
extracting event property data from the received event data;
building a plurality of event property index files using the extracted event property data;
storing event data of a first event in a first index file comprising event data from a plurality of events ordered by the time at which the events occurred;
extracting property data of a first property from the event data of the first event;
storing a value from the property data of the first property in a lookup file;
storing statistic property value data of the first property in a statistic file; and
storing property index data of the first property in a second index file.

### Claim 11 (depends on 10)

The system of claim 10, wherein the lookup file comprises a plurality of values of the first property and offset locations of the values of the first property in the lookup file.

### Claim 12 (depends on 11)

The system of claim 11, wherein the statistic file comprises the offset location of the value of the first property in the lookup file, an index value indicating a first appearance of the value of the first property in a sorted list, and a count value indicating the number of times the value of the first property is present in the stored event data, said statistic file being ordered by offset location.

### Claim 13 (depends on 10)

The system of claim 10, wherein the second index file comprises an index of the event data of the first event in the first index file, said second index file being ordered by a composite key comprising a property value, a property timestamp, and an event identification value.

### Claim 14

A method of receiving and storing event data in an event historian system comprising:
receiving, by the event historian system, event data via a network connection from a client system in response to one or more events occurring within a process control system controlling and monitoring an industrial process, the event data representing the events occurring within the process control system;
storing the received event data in a plurality of event data blocks, the event data blocks each comprising a storage block of a memory storage device containing the event data corresponding to a first time range;
selecting, by the event historian system, an event data block of the plurality of event data blocks based on a time of occurrence of the events, said selected event data block storing the received event data when the time of occurrence of the events is within the first time range, the selected event data block containing a plurality of snapshots each covering a part of the first time range, the snapshots configurable to overlap with each other when the parts of the first time range covered thereby overlap;
selecting, by the event historian system, a snapshot from the plurality of snapshots within the selected event data block, said selected snapshot storing the received event data corresponding to the events occurring within the process control system during a second time range, wherein the second time range is within the first time range;
recording, by the event historian system, the received event data in the selected snapshot in a random access memory (RAM);
storing the snapshot from the RAM into the memory storage device according to a threshold;
iteratively merging the plurality of snapshots of the selected event data block into a merged snapshot, the merged snapshot comprising the received event data recorded in the plurality of snapshots;
extracting, by the event historian system, event property data from the received event data recorded in the merged snapshot; and
building, by the event historian system, a plurality of event property index files each containing a data section for each event property of the extracted event property data, the event property index files utilized by queries to the event historian system to efficiently look up the recorded event data.

### Claim 15 (depends on 14)

The method from claim 14, wherein recording the received event data comprises compressing the event data by determining shared patterns within the rows of the event data, removing the shared patterns from the event data rows, and storing the shared patterns in a separate file.

### Claim 16 (depends on 14)

The method of claim 14, wherein a time range of a first snapshot of the plurality of snapshots overlaps a time range of a second snapshot of the plurality of snapshots.

### Claim 17 (depends on 14)

The method of claim 14, wherein the received event data comprises duplicate data already present in the event data block and the received event data is recorded in the selected snapshot, and wherein the merging eliminates the duplicate data.

### Claim 18 (depends on 14)

The method of claim 14, wherein the event data comprises built-in event properties and extended event properties and the extended event properties are assigned prefixes indicating the data types of the extended event properties.

### Claim 19 (depends on 14)

The method of claim 14, further comprising freezing the snapshot after the event data has been recorded, wherein the system does not record received event data in a snapshot after freezing, and wherein the merging comprises merging two or more frozen snapshots.

### Claim 20 (depends on 14)

The method of claim 14, wherein the snapshot is flushed from RAM after storing the snapshot in the memory storage device.
