# US 10,311,513 B2 · Method and system for facilitating access to recorded data

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

- Number: US 10,311,513 B2
- Document ID: US10311513B2
- Status: Granted
- Kind: B2
- Application number: 13/419,692
- Filed: 2012-03-14
- Published: 2013-09-19
- Granted: 2019-06-04
- Earliest claimed: 2012-03-14
- Assignees: Nasdaq Technology AB
- Applicants: Max Roy Prakoso; Andi R Hakim; Robert Lang
- Inventors: Max Roy Prakoso; Andi R Hakim; Robert Lang
- Web page: https://patentgrep.com/patent/US10311513B2

## CPC

- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 3/04842: Selection of displayed objects or displayed text elements (G06F3/0482 takes precedence)
- G06F 16/185: Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof (details of archiving G06F16/11)
- G06F 16/24539: {using cached or materialised query results}
- G06F 16/24552: {Database cache management}
- G06F 16/54: Browsing; Visualisation therefor
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- G06T 11/00: Two-dimensional [2D] image generation
- G06V 10/24: Aligning, centring, orientation detection or correction of the image
- G06V 20/176: {Urban or other man-made structures}
- G06V 20/38: {Outdoor scenes}
- G06V 20/39: {Urban scenes}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- G06Q: INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06T: IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06V: IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING

## Abstract

The present invention relates to a method and system for facilitating access to recorded data. The system comprises an interface and a processing device. The interface is arranged to receive data and the processing device is arranged to separate the received data in data subsets, compress each data subset and assign an identifier to each compressed data subset, thereby creating data units each comprising a compressed data subset and an associated identifier, the processing device further being arranged to establish an index on the basis of the assigned identifiers.

## Claims

### Claim 1

A system for facilitating access of recorded data in a market surveillance system, the system comprising:
a primary memory that includes at least a cache memory;
a secondary memory that includes at least persistent storage memory; and
a processing device having a processor and an interface configured to receive a volume of data, the processing device configured to:
separate the received volume of data into data subsets; compress each data subset by applying a compression technique to data within each respective data subset thereby generating compressed payload data;
assign identifiers to each compressed data subset thereby creating data units each comprising the generated compressed payload data and an associated identifier, each identifier configured to identify a market participant effecting one or more transactions;
establish an index on the basis of the identifiers assigned to each compressed data subset, the index having one or more index entries and each index entry comprising:
an identifier from the assigned identifiers:
timing parameters corresponding to at least a point in time when an order was placed at an exchange and a point in time when a deal associated with the order closed; and
memory address parameters of memory locations that contain transaction data associated with the order, the memory address parameters including, at least, a first start address, a first end address, a second start address, and a second end address;
present, using the timing parameters, a complete order book view by decompressing transactions within a window of time of interest associated with the timing parameters; and search in both the primary memory, by accessing the cache memory for real-time analysis, and the second memory, by accessing the persistent storage memory for historical analysis, using the established index, the established index configured to indicate a physical location of each data unit in the primary memory and the secondary memory.

### Claim 2 (depends on 1)

The system of claim 1, wherein the primary memory configured to store the data units created by the processing device, the stored data units being transferred from the primary memory when a primary memory utilization degree reaches a predetermined upper threshold value.

### Claim 3 (depends on 1)

The system of claim 1, wherein the primary memory configured to store the data units created by the processing device, the stored data units being transferred from the primary memory when the primary memory receives a memory flush instruction.

### Claim 4 (depends on 1)

The system of claim 1, wherein the secondary memory configured to store the data units, the established index facilitating subsequent access of data units recorded in the secondary memory.

### Claim 5 (depends on 4)

The system of claim 4, wherein the primary memory is configured to transfer data units stored therein to the secondary memory.

### Claim 6 (depends on 4)

The system of claim 4, wherein the processing device is configured to write data units directly to the secondary memory.

### Claim 7 (depends on 4)

The system of claim 4, wherein the processing device is configured to transfer the data units to the secondary memory until a primary memory utilization degree falls to a predetermined lower threshold value, wherein a next transfer of data units from the primary memory to the secondary memory is performed when the primary memory utilization degree reaches a predetermined upper threshold value.

### Claim 8 (depends on 1)

The system of claim 1, wherein
the processing device further is configured to establish a plurality of indices on the basis of the assigned identifiers.

### Claim 9 (depends on 8)

The system of claim 8, wherein
the processing device further is configured to establish the plurality of indices such that they can be combined to facilitate subsequent location and access of data units recorded in the secondary memory.

### Claim 10 (depends on 1)

The system of claim 1, wherein
the processing device is configured to establish the index such that it indicates one or more of parameters selected from a group comprising: type of security traded, market participants, order identifier, and final offer.

### Claim 11

A method of facilitating access of recorded data implemented using an information processing system having at least a processor and a memory, the method comprising:
receiving a volume of data;
separating the received volume of data into data subsets;
compressing each data subset by applying a compression technique to data within each respective data subset thereby generating compressed payload data;
assigning an identifier identifiers to each compressed data subset thereby creating data units each comprising the generated compressed payload data and an associated identifier;
establishing an index on the basis of the identifiers assigned to each compressed data subset, the index having one or more index entries and each index entry comprising an identifier from the assigned identifiers and timing parameters corresponding to at least a point in time when an order was placed at an exchange and a point in time when a deal associated with the order closed;
using the established index to selectively process one or more of the created data units and search the memory of the information processing system;
presenting, using the timing parameters, a complete order book view by decompressing transactions within a window of time of interest associated with the timing parameters; and
searching in both a cache memory, by accessing the cache memory for real-time analysis, and a persistent storage memory, by accessing the persistent storage memory for historical analysis, using the established index, the established index configured to indicate a physical location of each data unit in the cache memory and the persistent storage memory.

### Claim 12 (depends on 11)

The method of claim 11, further comprising:
storing the data units in the cache memory; and
transferring the stored data units from the cache memory when a memory utilization degree reaches a predetermined upper threshold value.

### Claim 13 (depends on 11)

The method of claim 11, further comprising:
storing the data units in the cache memory; and
transferring the stored data units from the cache memory when the cache memory receives a memory flush instruction.

### Claim 14 (depends on 11)

The method of claim 11, further comprising:
storing the data units in the persistent storage memory, the established index facilitating subsequent access of data units recorded in the persistent storage memory.

### Claim 15 (depends on 14)

The method of claim 14, further comprising:
writing data units directly to the persistent storage memory with no intermediate storage in the cache memory.

### Claim 16 (depends on 14)

The method of claim 14, further comprising:
transferring the data units to the persistent storage memory until a memory utilization degree falls to a predetermined lower threshold value, wherein a next transfer of data units from the cache memory to the persistent storage memory is performed when the memory utilization degree reaches a predetermined upper threshold value.

### Claim 17 (depends on 11)

The method of claim 11, wherein the establishing of the index further comprises:
establishing a plurality of indices on the basis of the assigned identifiers.

### Claim 18 (depends on 11)

The method of claim 11, wherein the establishing of the index further comprises:
establishing the index such that it indicates one or more of parameters selected from a group comprising: type of security traded, market participants, order identifier, and final offer.

### Claim 19

A non-transitory computer-readable medium comprising computer-executable instructions which, when executed by at least one processor of an information processing system, cause the information processing system to:
receive a volume of data;
separate the received volume of data into data subsets;
compress each data subset by applying a compression technique to data within each respective data subset thereby generating compressed payload data;
assign identifiers to each compressed data subset thereby creating data units each comprising the generated compressed payload data and an associated identifier;
establish an index on the basis of the identifiers assigned to each compressed data subset, the index having one or more index entries and each index entry comprising an identifier from the assigned identifiers and timing parameters corresponding to at least a point in time when an order was placed at an exchange and a point in time when a deal associated with the order closed;
use the established index to selectively process one or more of the created data units and search a memory of the information processing system;
present, using the timing parameters, a complete order book view by decompressing transactions within a window of time of interest associated with the timing parameters; and
search in both a cache memory, by accessing the cache memory for real-time analysis, and a persistent storage memory, by accessing the persistent storage memory for historical analysis, using the established index, the established index configured to indicate a physical location of each data unit in the cache memory and the persistent storage memory.

### Claim 20 (depends on 1)

The system of claim 1, wherein the processing device is further configured to:
locate a group of compressed data subsets based on an interval of time associated with the timing window defined by the timing parameters associated with each index entry; and
decompress each data subset in the group of compressed data subsets thereby generating decompressed payload data.

### Claim 21 (depends on 11)

The method of claim 11, wherein each index entry further comprises memory address parameters corresponding to at least a start address and an end address of a memory location that contains transaction data associated with the order.

### Claim 22 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein each index entry further comprises memory address parameters corresponding to at least a start address and an end address of a memory location that contains transaction data associated with the order.

### Claim 23 (depends on 1)

The system of claim 1, wherein the size of each compressed data subset is configurable such that larger subsets translate to faster scan with smaller index and slower random lookup while smaller subsets translate to slower scan with larger index and faster random lookup.

### Claim 24 (depends on 1)

The system of claim 1, wherein the system is configured to move the data in the primary memory into the secondary memory after a specified period of time.
