# US 2018/0322167 A1 · Class path based database operations

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

- Number: US 2018/0322167 A1
- Document ID: US20180322167A1
- Status: Published application
- Kind: A1
- Application number: 15/586,147
- Filed: 2017-05-03
- Published: 2018-11-08
- Earliest claimed: 2017-05-03
- Assignees: ServiceNow, Inc.
- Applicants: ServiceNow, Inc.
- Inventors: Joseph Michael Davis; Joey Mart
- Web page: https://patentgrep.com/patent/US20180322167A1

## CPC

- G06F 16/24537: {of operators}
- G06F 16/212: {with details for data modelling support}
- G06F 16/217: {Database tuning (G06F16/2282 takes precedence; database performance monitoring G06F11/3409)}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F 16/24553: {of query operations}
- G06F 16/24561: {Intermediate data storage techniques for performance improvement}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present approach assigns a code to each node class of a data tree modeling a database. The node class codes may be used to generate a node class path for each node class. This class path may be used as a discriminator to reference a given node class or portion of the tree including the class path and may be stored in a field of the database and/or cached. Use of the class path in query operations reduces the complexity of certain queries, thereby speeding up query performance.

## Claims

### Claim 1

A system, comprising:
a configuration management database (CMDB);
one or more hardware processors configured to execute instructions from a non-transitory memory to cause the system to perform operations comprising:
assigning a class path to each node class of the CMDB, wherein each class path of the CMDB is encoded as a code or string of codes, each code corresponding to a single respective node class such that each respective code or string of codes conveys a path; and
storing the class path of each node class of the CMDB in a class path field of the CMDB.

### Claim 2 (depends on 1)

The system of claim 1, wherein the instructions cause the system to perform further operations comprising:
upon receipt of an operation instruction, using one or more of the stored class paths referenced by the operation instruction to perform an operation on the CMDB.

### Claim 3 (depends on 2)

The system of claim 2, wherein the operation comprises one or more of a create, read, update or delete operation.

### Claim 4 (depends on 2)

The system of claim 2, wherein the operation instruction comprises LIKE syntax referencing the one or more of the stored class paths.

### Claim 5

A system, comprising:
a configuration management database (CMDB);
a non-transitory memory; and
one or more hardware processors that execute instructions from the non-transitory memory to cause the system to perform operations comprising:
receiving a request to perform one or more structured query language (SQL) operations;
identifying a class path based at least on the request, wherein the class path comprises a code or string of codes corresponding to a single node class;
identifying a configuration item from the CMDB that corresponds to the identified class path; and
performing the one or more SQL operations with the identified configuration item in accordance with the request.

### Claim 6 (depends on 5)

The system of claim 5, wherein identifying the class path based at least on the request comprises identifying the class path from a cached database.

### Claim 7 (depends on 5)

The system of claim 5, wherein the identified class path comprises one or more codes, each code corresponding uniquely to a respective node class.

### Claim 8 (depends on 5)

The system of claim 5, wherein the request comprises a SQL query corresponding to one or more of a create, read, update, or delete operation.

### Claim 9 (depends on 5)

The system of claim 5, wherein the SQL query comprises LIKE syntax referencing the class path.

### Claim 10 (depends on 5)

The system of claim 5, wherein the request does not evaluate to a plurality of OR operators.

### Claim 11

A method, comprising:
assigning a code to each node class of a data tree, wherein each node class of the data tree has a different code;
determining a class path for each node class using the codes, wherein each class path is encoded as a respective code or string of codes conveying a node path through the data tree; and
storing the class path for each node class in a class path field of a database.

### Claim 12 (depends on 11)

The method of claim 11, wherein the database is a configuration management database (CMDB) and each node class corresponds to a configuration item type stored in the CMDB.

### Claim 13 (depends on 12)

The method of claim 12, further comprising:
receiving a request to perform one or more structured query language (SQL) operations on the CMDB;
identifying a respective class path referenced by the request;
identifying a respective configuration item from the CMDB that corresponds to the respective class path; and
performing the one or more SQL operations with the identified configuration item in accordance with the request.

### Claim 14 (depends on 13)

The system of claim 13, wherein identifying the respective class path comprises identifying the class path from a cached database.

### Claim 15 (depends on 13)

The system of claim 13, wherein the request comprises a SQL query corresponding to one or more of a create, read, update, or delete operation.

### Claim 16 (depends on 15)

The system of claim 15, wherein the SQL query comprises LIKE syntax referencing the respective class path.

### Claim 17

Non-transitory, tangible, and computer-readable medium storing instructions thereon that, when executed, are configured to cause one or more processors to:
assign a code to each node class of a data tree, wherein each node class of the data tree has a different code, and wherein the data tree is associated with a configuration management database (CMDB);
determine a class path for each node class using the codes, wherein each class path is encoded as a respective code or string of codes conveying a node path through the data tree; and
store the class path for each node class in a class path field of the CMDB.

### Claim 18 (depends on 17)

The non-transitory, tangible, and computer-readable medium of claim 17, wherein the stored instructions, when executed, further cause the one or more processors to:
receive a request to perform one or more structured query language (SQL) operations on the CMDB;
identify a respective class path referenced by the request;
identify a respective configuration item from the CMDB that corresponds to the respective class path; and
perform the one or more SQL operations with the identified configuration item in accordance with the request.

### Claim 19 (depends on 18)

The non-transitory, tangible, and computer-readable medium of claim 18, wherein identifying the respective class path comprises identifying the class path from a cached database.

### Claim 20 (depends on 18)

The non-transitory, tangible, and computer-readable medium of claim 18, wherein the SQL query comprises LIKE syntax referencing the respective class path.
