# US 2017/0286483 A1 · Standing queries in memory

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

- Number: US 2017/0286483 A1
- Document ID: US20170286483A1
- Status: Published application
- Kind: A1
- Application number: 15/274,228
- Filed: 2016-09-23
- Published: 2017-10-05
- Earliest claimed: 2016-04-01
- Assignees: Arista Networks, Inc.
- Applicants: Arista Networks, Inc.
- Inventors: Michael Greenwald; Stephen Schleimer
- Web page: https://patentgrep.com/patent/US20170286483A1

## CPC

- G06F 16/24534: {Query rewriting; Transformation}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0638: {Organizing or formatting or addressing of data}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 16/1734: {Details of monitoring file system events, e.g. by the use of hooks, filter drivers, logs}
- G06F 16/245: Query processing
- G06F 16/24568: {Data stream processing; Continuous queries}
- H04L 49/25: Routing or path finding in a switch fabric
- H04L 49/901: using storage descriptor, e.g. read or write pointers
- 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)

## Abstract

A network device includes a database that includes a number of tables, an observer, and a query service (QS) manager. The observer monitors an element of a first table of the number of tables and provide a value of the element to a query instance of a number of query instances. The QS manager generate the number of query instances. The query instance of the number of query instances executes a compiled query in response to receiving the value.

## Claims

### Claim 1

A network device, comprising:
a database comprising a plurality of tables;
an observer configured to monitor an element of a first table of the plurality of tables and provide a value of the element to a query instance of a plurality of query instances; and
a query service (QS) manager configured to generate the plurality of query instances,
wherein the query instance of the plurality of query instances executes a compiled query in response to receiving the value.

### Claim 2 (depends on 1)

The network device of claim 1, wherein the first table of the plurality of tables is stored in a first address space of the network device.

### Claim 3 (depends on 2)

The network device of claim 2, wherein a second table of the plurality of tables is stored in a second address space.

### Claim 4 (depends on 2)

The network device of claim 2, wherein the QS manager is stored in the first address space of the network device.

### Claim 5 (depends on 2)

The network device of claim 2, wherein the plurality of query instances is stored in the first address space of the network device.

### Claim 6 (depends on 1)

The network device of claim 1, further comprising:
a modifier configured to write an output, generated by the execution of the compiled query of the plurality of query instances, to a second element of a second table of the plurality of tables.

### Claim 7 (depends on 6)

The network device of claim 6, further comprising:
a second observer configured to monitor the second element;
a second SQ instance of the plurality of query instances configured to generate a second output based on, at least in part, a second value associated with the second element; and
a second modifier configured to write the second output generated by the second query instance to the database.

### Claim 8 (depends on 1)

The network device of claim 1, further comprising:
a write history list, associated with the element of the first table, comprising:
a first information that was stored to the element of the first table; and
a second information that was stored to the element of the first table after the first information.

### Claim 9 (depends on 8)

The network device of claim 8, further comprising:
a subscription list, associated with the element of the first table, comprising:
a first subscribing entity identifier;
a first write history list position identifier associated with the first subscribing entity identifier;
a second subscribing entity identifier; and
a second write history list position identifier associated with the second subscribing entity identifier.

### Claim 10 (depends on 9)

The network device of claim 9, wherein the first write history list position identifier identifies the first information, and wherein the second write history list position identifier identifies the second information.

### Claim 11 (depends on 9)

The network device of claim 9, wherein the first write history list position identifier identifies the second information, and wherein the second write history list position identifier identifies the first information.

### Claim 12 (depends on 9)

The network device of claim 9, wherein the first write history list position identifier identifies the first information, and wherein the second write history list position identifier identifies the first information.

### Claim 13 (depends on 9)

The network device of claim 9, wherein the first subscribing entity is the observer.

### Claim 14 (depends on 1)

The network device of claim 1, wherein a query instance of the plurality of query instances comprises an input table, and wherein the observer is further configured to propagate changes to the element of the first table to the input table.

### Claim 15 (depends on 1)

The network device of claim 1, wherein the network device is one selected from a group consisting of a switch, a router, and a multi-level switch.

### Claim 16

A method of operating a network device, comprising:
obtaining, by a query service (QS) manager of the network device, a first query request comprising a query type, a constraint parameter, and an input;
making a first determination, by the QS manager, that a first query service QS matches the query request based on, at least in part, the query type;
making a second determination, by the QS manager, that a first query instance of the QS matches the first query request based on, at least in part, the constraint parameter; and
generating, by the QS manager, a first observer configured to monitor an output of the first query instance based on the first determination and the second determination.

### Claim 17 (depends on 16)

The method of claim 16, further comprising:
obtaining, by the QS manager, a second query request comprising the query type, a second constraint parameter, and the input;
making a third determination, by the QS manager, that the first QS matches the second query request based on, at least in part, the query type;
making a fourth determination, by the QS manager, that the constraint parameter of the second query request does not match a constraint parameter of the first query instance of the QS; and
generating, by the QS manager, a second query instance based on, at least in part, the first QS and the constraint parameter of the second query request based on the third determination and the fourth determination.

### Claim 18 (depends on 17)

The method of claim 17, further comprising:
generating, by the QS manager, a first modifier configured to store an output of the second query instance in a first element of a table of a database in response to the generation of the second query instance.
generating, by the QS manager, a second observer configured to monitor the first element of the table of the database in response to the generation of the second query instance.

### Claim 19 (depends on 18)

The method of claim 18, wherein the first query type is different than the second query type, wherein the first constraint parameter is different than the second constraint parameter.

### Claim 20 (depends on 16)

The method of claim 16, further comprising:
obtaining, by the QS manager, a second query request comprising a second query type, a second constraint parameter, and the input;
making a third determination, by the QS manager, that the query type of the second query request does not match a query type of the first QS based on, at least in part, the query type;
generating, by the QS manager, a second QS in response to the third determination;
generating, by the QS manager, a second query instance based on, at least in part, the second QS and the constraint parameter of the second query request.

### Claim 21 (depends on 20)

The method of claim 20, further comprising:
generating, by the QS manager, a first modifier configured to store an output of the second query instance in a first element of a table of a database.
generating, by the QS manager, a second observer configured to monitor the first element of the table of the database.

### Claim 22 (depends on 16)

The method of claim 16, wherein the first query instance is a standing query.

### Claim 23 (depends on 22)

The method of claim 22, wherein the standing query executes until terminated by an entity.
