# US 2019/0173979 A1 · Computer data system current row position query language construct and array processing query language constructs

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

- Number: US 2019/0173979 A1
- Document ID: US20190173979A1
- Status: Published application
- Kind: A1
- Application number: 16/252,944
- Filed: 2019-01-21
- Published: 2019-06-06
- Earliest claimed: 2015-05-14
- Assignees: Deephaven Data Labs LLC
- Applicants: Deephaven Data Labs LLC
- Inventors: David R. Kent, IV; Ryan Caudy; Charles Wright; Mark Zeldis; Radu Teodorescu
- Web page: https://patentgrep.com/patent/US20190173979A1

## CPC

- G06F 16/24561: {Intermediate data storage techniques for performance improvement}
- G06F 3/0481: based on specific properties of the displayed interaction object or a metaphor-based environment, e.g. interaction with desktop elements like windows or icons, or assisted by a cursor's changing behaviour or appearance
- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- G06F 3/0483: Interaction with page-structured environments, e.g. book metaphor
- G06F 3/04847: Interaction techniques to control parameter settings, e.g. interaction with sliders or dials
- G06F 3/0485: Scrolling or panning
- G06F 3/04895: Guidance during keyboard input operation, e.g. prompting
- G06F 3/0605: {by facilitating the interaction with a user or administrator}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 8/30: Creation or generation of source code
- G06F 8/41: Compilation
- G06F 8/427: {Parsing}
- G06F 8/60: Software deployment
- G06F 11/1451: {by selection of backup contents}
- G06F 11/1464: {for networked environments}
- G06F 11/1469: {Backup restoration techniques}
- G06F 12/0261: {using reference counting}
- G06F 12/084: with a shared cache
- G06F 12/1483: {using an access-table, e.g. matrix or list}
- G06F 15/17331: {Distributed shared memory [DSM], e.g. remote direct memory access [RDMA]}
- G06F 16/113: {Details of archiving (lifecycle management in storage systems G06F3/0649; point-in-time backing up or restoration of persistent data G06F11/1446)}
- G06F 16/144: {Query formulation}
- G06F 16/162: {Delete operations (erasing in storage systems G06F3/0652)}
- G06F 16/215: Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
- G06F 16/22: Indexing; Data structures therefor; Storage structures
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2228: {Indexing structures}
- G06F 16/2237: {Vectors, bitmaps or matrices}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/2255: {Hash tables}
- G06F 16/2264: {Multidimensional index structures}
- G06F 16/2272: {Management thereof}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/23: Updating
- G06F 16/2308: {Concurrency control (transaction processing G06F9/466)}
- G06F 16/2358: {Change logging, detection, and notification (replication G06F16/27)}
- G06F 16/2365: {Ensuring data consistency and integrity}
- G06F 16/2372: {Updates performed during offline database operations}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/242: Query formulation
- G06F 16/2428: {Query predicate definition using graphical user interfaces, including menus and forms (G06F16/2423 takes precedence)}
- G06F 16/245: Query processing
- G06F 16/2453: Query optimisation
- G06F 16/24534: {Query rewriting; Transformation}
- G06F 16/24535: {of sub-queries or views}
- G06F 16/24537: {of operators}
- G06F 16/24539: {using cached or materialised query results}
- G06F 16/2455: Query execution
- G06F 16/24553: {of query operations}
- G06F 16/2456: {Join operations}
- G06F 16/2457: with adaptation to user needs
- G06F 16/24575: {using context}
- G06F 16/248: Presentation of query results
- G06F 16/254: {Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F 16/285: {Clustering or classification}
- G06F 16/9024: {Graphs; Linked lists (G06F16/9027 takes precedence)}
- G06F 16/907: Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
- G06F 16/951: Indexing; Web crawling techniques
- G06F 16/9535: Search customisation based on user profiles and personalisation
- G06F 16/9538: Presentation of query results
- G06F 16/9566: {URL specific, e.g. using aliases, detecting broken or misspelled links}
- G06F 16/9574: {of access to content, e.g. by caching}
- G06F 21/00: Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F 21/6209: {to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself}
- G06F 40/117: Tagging; Marking up (details of markup languages G06F40/143); Designating a block; Setting of attributes (style sheets, e.g. eXtensible Stylesheet Language Transformation [XSLT], G06F40/154)
- G06F 40/134: Hyperlinking
- G06F 40/166: Editing, e.g. inserting or deleting
- G06F 40/174: Form filling; Merging
- G06F 40/177: of tables; using ruled lines
- G06F 40/18: of spreadsheets (form-filling G06F40/174)
- G06F 40/183: Tabulation, i.e. one-dimensional [1D] positioning
- G06F 40/216: using statistical methods
- G06F 40/274: Converting codes to words; Guess-ahead of partial word inputs
- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 51/046: Interoperability with other network applications or services
- H04L 51/212: using filtering or selective blocking
- H04L 61/5069: for group communication, multicast communication or broadcast communication
- H04L 63/101: {Access control lists [ACL]}
- H04L 63/102: {Entity profiles}
- H04L 67/01: Protocols
- H04L 67/1001: for accessing one among a plurality of replicated servers
- H04L 67/141: Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70)
- H04L 67/34: {involving the movement of software or configuration parameters (network booting or remote initial program loading [RIPL] G06F9/4416)}
- H04L 67/56: Provisioning of proxy services (store-and-forward switching systems in data switching networks H04L12/54)
- H04L 67/566: Grouping or aggregating service requests, e.g. for unified processing
- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- H04L 69/16: Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- G06F 16/2291: {User-Defined Types; Storage management thereof}
- G06F 17/40: Data acquisition and logging (for input to computer G06F3/00)
- G06F 2201/805: Real-time
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2212/1052: Security improvement
- G06F 2212/154: Networked environment
- G06F 2212/163: Server or database system
- G06F 2212/60: Details of cache memory
- G06Q 40/04: Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
- H04L 67/5681: Pre-fetching or pre-delivering data based on network characteristics
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- 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

## Abstract

Described are methods, systems and computer readable media for providing a current row position query language construct and array processing query language constructs and associated processing.

## Claims

### Claim at position 1

1-20. (canceled)

### Claim 21

A system comprising:
one or more hardware processors;
an electronic computer readable data storage device coupled to the one or more hardware processors, the electronic computer readable data storage device having stored thereon software instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations including:
accessing, at the one or more hardware processors, computer data system query language code stored in the electronic computer readable data storage device, the computer data system query language code including a current index value and a current data storage location value associated with a data object, wherein the current index value and the current data storage location value are constructs of a computer data system query language;
parsing, at the one or more hardware processors, the computer data system query language code into a parsed query language structure;
generating, at the one or more hardware processors, computer programming language code based on the parsed query language structure, the computer programming language code including computer programming language functions that are mapped to usages of the current index value and the current data storage location value, wherein the generated computer programming language code and the computer programming language functions are compiled;
executing, at the one or more hardware processors, the compiled computer programming language code;
determining, at the one or more hardware processors, based on execution of the compiled computer programming language code, a return data storage location value from the computer programming language functions corresponding to the current data storage location value, the return data storage location value representing a current data storage location of the data object corresponding to a query language construct at a time of execution of the compiled computer programming language code;
when one or more data sources that the data object depends on are updated, subsequently executing, at the one or more hardware processors, the compiled computer programming language code, including a portion of computer programming language code corresponding to the current data storage location,—wherein the updating includes one or more of adding, modifying, deleting, or re-indexing the one or more data sources that the data object depends on; and
determining, at the one or more hardware processors, based on the subsequent execution of the compiled computer programming language code, a new return data storage location value from the computer programming language functions corresponding to the current data storage location value, the new return data storage location value representing an updated current data storage location of the data object corresponding to another query language construct at a subsequent time of execution of the compiled computer programming language code.

### Claim 22 (depends on 21)

The system of claim 21, wherein the computer data system query language code includes a vector access query language construct configured to permit access to a vector representing an entire column of data values.

### Claim 23 (depends on 22)

The system of claim 22, wherein the access includes one or more of absolute indexing and relative indexing.

### Claim 24 (depends on 22)

The system of claim 22, wherein the vector access query language construct includes one or more of passing by reference, passing by value, slicing, length retrieval or element retrieval.

### Claim 25 (depends on 21)

The system of claim 21, wherein the current index value of the data object is updated once the data sources providing data for the data object have been updated.

### Claim 26 (depends on 21)

The system of claim 21, wherein the executing and determining are performed as part of a real time data system query.

### Claim 27 (depends on 21)

The system of claim 21, wherein the operations further include mapping the current index value to the current data storage location value within a data source providing data for the data object.

### Claim 28 (depends on 21)

The system of claim 21, wherein the computer data system query language code includes code retrieving data from one or more data object positions other than the current index value in order to compute a time series operation.

### Claim 29

A system comprising:
one or more hardware processors;
an electronic computer readable data storage device coupled to the one or more hardware processors, the electronic computer readable data storage device having stored thereon software instructions that, when executed by the one or more hardware processors, cause the one or more hardware processors to perform operations including:
accessing, at the one or more hardware processors, computer data system query language code stored in the electronic computer readable data storage device, the computer data system query language code including an array processing query language construct including at least a portion of data within a data object as a parameter;
parsing, at the one or more hardware processors, the computer data system query language code into a parsed query language structure;
generating, at the one or more hardware processors, computer programming language code based on the parsed query language structure, the computer programming language code including a portion of computer programming language code corresponding to the array processing query language construct associated with the data object;
executing, at the one or more hardware processors, the computer programming language code, including the portion of computer programming language code corresponding to the array processing query language construct associated with the data object;
determining, at the one or more hardware processors, based on execution of the computer programming language code, a return value from the portion of computer programming language code corresponding to the array processing query language construct associated with the data object, the return value including transformed data from the data object;
when one or more data sources that the data object depends on are updated, subsequently executing, at the one or more hardware processors, the computer programming language code, including the portion of computer programming language code corresponding to the array processing query language construct associated with the data object; and
determining, at the one or more hardware processors, based on the subsequent execution of the computer programming language code, a new return value from the portion of computer programming language code corresponding to the array processing query construct associated with the data object, the return value including updated transformed data from the data object at a subsequent time of execution of the computer programming language code.

### Claim 30 (depends on 29)

The system of claim 29, wherein the array processing query language construct includes a column-to-array query language construct and the transformed data includes array data transformed from column data.

### Claim 31 (depends on 29)

The system of claim 29, wherein the array processing query language construct includes an array-to-column query language construct and the transformed data includes column data transformed from array data.

### Claim 32 (depends on 30)

The system of claim 30, wherein the operations further include performing a vector operation on the array data.

### Claim 33 (depends on 30)

The system of claim 30, wherein the computer data system query language code includes a vector access query language construct configured to permit access to a vector formed by a column-to-array operation based on the column-to-array query language construct.

### Claim 34 (depends on 33)

The system of claim 33, wherein the access includes one or more of absolute indexing and relative indexing.

### Claim 35 (depends on 29)

The system of claim 29, wherein the executing and determining are performed as part of a real time data system query.

### Claim 36 (depends on 33)

The system of claim 33, wherein the vector access query language construct includes one or more of passing by reference, passing by value, slicing, length retrieval or element retrieval.

### Claim 37

A method for mapping index values corresponding to a data structure to data storage location values, the method comprising:
receiving a notification containing one or more changes to a parent data structure, wherein the data structure depends on the parent data structure for updates, and wherein the one or more changes include one or more of additions, modifications, deletions, or re-indexing, and wherein the notification includes one or more of new index values or new data storage location values;
updating the data structure based on one or more of the one or more changes to the parent data structure, wherein the updating includes modifying one or more of the index values or the data storage location values based on the new index values and the new data storage location values; and
notifying one or more child data structures of the updating of the data structure, wherein the one or more child data structures depend on the data structure, and wherein the notifying includes sending the one or more of the modified index values or the modified data storage location values to the one or more child data structures, and wherein the notifying is implemented using one or more listeners associated with the one or more child data structures and the data structure.

### Claim 38 (depends on 37)

The method of claim 37, wherein an order of the index values defines an order of iteration of the data structure.

### Claim 39 (depends on 37)

The method of claim 37, wherein the index values are stored as a tree data structure.

### Claim 40 (depends on 37)

The method of claim 37, wherein the index values are serialized by storing each of the index values as an offset from a preceding index value.

### Claim 41

A nontransitory computer readable medium having stored thereon software instructions that, when executed by one or more hardware processors, cause the one or more hardware processors to perform operations including:
accessing, at the one or more hardware processors, computer data system query language code stored in the electronic computer readable data storage device, the computer data system query language code including a current index value and a current data storage location value associated with a data object, wherein the current index value and the current data storage location value are constructs of a computer data system query language;
parsing, at the one or more hardware processors, the computer data system query language code into a parsed query language structure;
generating, at the one or more hardware processors, computer programming language code based on the parsed query language structure, the computer programming language code including computer programming language functions that are mapped to usages of the current index value and the current data storage location value, wherein the generated computer programming language code and the computer programming language functions are processed;
executing, at the one or more hardware processors, the processed computer programming language code;
determining, at the one or more hardware processors, based on execution of the processed computer programming language code, a return index value from the computer programming language functions corresponding to the current index value, the return index value representing a current data storage location of the data object corresponding to a query language construct at a time of execution of the processed computer programming language code;
when one or more data sources that the data object depends on are updated, subsequently executing, at the one or more hardware processors, the processed computer programming language code, including a portion of computer programming language code corresponding to the current index value, wherein the updating includes one or more of adding, modifying, deleting, or re-indexing the one or more data sources that the data object depends on; and
determining, at the one or more hardware processors, based on the subsequent execution of the processed computer programming language code, a new return index value from the computer programming language functions corresponding to the current index value, the new return index value representing an updated current data storage location of the data object corresponding to another query language construct at a subsequent time of execution of the processed computer programming language code.
