# US 2018/0322127 A1 · Table-per-partition

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

- Number: US 2018/0322127 A1
- Document ID: US20180322127A1
- Status: Published application
- Kind: A1
- Application number: 15/586,119
- 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/US20180322127A1

## CPC

- G06F 16/252: {between a Database Management System and a front-end application}
- G06F 16/221: {Column-oriented storage; Management thereof}
- G06F 16/2272: {Management thereof}
- G06F 16/2282: {Tablespace storage structures; Management thereof}
- G06F 16/278: {Data partitioning, e.g. horizontal or vertical partitioning}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present approach improves the query performance of a database in a manner that is transparent to a user. In one aspect, this approach creates separate partition tables that are not directly accessible to a user of the database. A client-facing aspect of the database is a logical model which may correspond to a single, main table with which the user interacts. Thus, queries or operations may be generated on the client side in the context of the logical model. A database or query layer can then, transparent to the user, translate the user generated requests into query language that addresses the proper partitions to generate a result set or otherwise perform a database operation.

## Claims

### Claim 1

A system for generating and accessing database partitions, comprising:
one or more hardware processors configured to execute instructions from a non-transitory memory to cause the system to perform operations comprising:
providing an interface to a configuration management database (CMDB) that is partitioned into a plurality of partition tables;
receiving client code, wherein the client code refers to the CMDB and relates to an operation to be performed on the CMDB and wherein the partition tables are not referenced by the client code;
determining one or more partition tables associated with the operation; and
performing the operation using the one or more partition tables.

### Claim 2 (depends on 1)

The system of claim 1, wherein the partition tables are partitioned based on a fixed threshold of a maximum quantity of indexes that can be present in a table, such that each partition table contains a number of indexes less than or equal to the fixed threshold.

### Claim 3 (depends on 1)

The system of claim 1, wherein an operation that causes the fixed threshold to be exceeded in a respective partition table results in a new partition table being created.

### Claim 4 (depends on 1)

The system of claim 1, wherein the operation related by the client code is one or more of a create, read, update, and/or delete operation.

### Claim 5 (depends on 1)

The system of claim 1, wherein determining the one or more partition tables comprises one or both of selecting the one or more partition tables or creating a partition table to be used in performing the operation.

### Claim 6 (depends on 1)

The system of claim 1, wherein determining the one or more partition tables comprises selecting the one or more partition tables to perform a read operation.

### Claim 7 (depends on 1)

The system of claim 1, wherein determining the one or more partition tables comprises creating a new partition table as part of a create or update operation.

### Claim 8 (depends on 1)

The system of claim 1, wherein determining the one or more partition tables comprises resolving the client code referencing the CMDB to structured query language (SQL) script referencing the one or more partition tables.

### Claim 9 (depends on 1)

The system of claim 1, wherein the CMDB comprises a logical model accessible to clients and the one or more partition tables inaccessible to clients.

### Claim 10 (depends on 1)

The system of claim 1, wherein the one or more partition tables comprises at least two partition tables on which one or more fields are duplicated and synchronized.

### Claim 11 (depends on 10)

The system of claim 10. wherein the one or more fields that are duplicated and synchronized are selected to reduce the number of joins performed on the at least two partition tables to perform the operation or other operations.

### Claim 12 (depends on 1)

The system of claim 1, wherein the plurality of partition tables do not correspond to logical classes of assets stored in the CMDB.

### Claim 13

A method for managing a database, comprising:
receiving a query from a user as client code, wherein the client code references a logical model of a database presented as a single table to the user;
resolving the client code to a structure query language (SQL) script referencing one or more partition tables that are inaccessible to the user; wherein the resolution of the client code to the SQL script is transparent to the user;
in response to the SQL script, identifying one or more partition tables referenced by the SQL script from a plurality of partition tables;
performing one or more of a create, read, update, or delete operation on the one or more partition tables based on the SQL script;
providing a query confirmation or query result to a user upon completion of the operation.

### Claim 14 (depends on 13)

The method of claim 13, wherein the database is a configuration management database (CMDB).

### Claim 15 (depends on 14)

The method of claim 14, wherein the plurality of partition tables do not correspond to logical classes of assets stored in the CMDB.

### Claim 16 (depends on 13)

The method of claim 13, wherein each partition table has a number of indexes less than or equal to a maximum quantity of indexes that can be present in a table.

### Claim 17 (depends on 13)

The method of claim 13, wherein identifying the one or more partition tables referenced by the SQL script comprises:
identifying at least a first partition table having a duplicate field relative to a second partition table, wherein the duplicate field is referenced by the SQL script; and
performing the one or more of the create, read, update, or delete operation on the first table without joining the second table.

### Claim 18

Non-transitory, tangible, and computer-readable medium storing instructions thereon that, when executed, are configured to cause one or more processors to:
receive a query from a user as client code, wherein the client code references a logical model of a database presented as a single table to the user;
resolve the client code to a structure query language (SQL) script referencing one or more partition tables that are inaccessible to the user; wherein the resolution of the client code to the SQL script is transparent to the user;
in response to the SQL script, identify one or more partition tables referenced by the SQL script from a plurality of partition tables;
perform one or more of a create, read, update, or delete operation on the one or more partition tables based on the SQL script; and
provide a query confirmation or query result to a user upon completion of the operation.

### Claim 19 (depends on 18)

The non-transitory, tangible, and computer-readable medium of claim 18, wherein the database is a configuration management database (CMDB).

### Claim 20 (depends on 19)

The non-transitory, tangible, and computer-readable medium of claim 19, wherein the plurality of partition tables do not correspond to logical classes of assets stored in the CMDB.
