# US 2007/0143353 A1 · Apparatus and Method for On-Demand In-Memory Database Management Platform

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

- Number: US 2007/0143353 A1
- Document ID: US20070143353A1
- Status: Published application
- Kind: A1
- Application number: 11/566,452
- Filed: 2006-12-04
- Published: 2007-06-21
- Earliest claimed: 2005-12-05
- Assignees: InteliTrac, Inc.
- Inventors: Tianlong Chen
- Web page: https://patentgrep.com/patent/US20070143353A1

## CPC

- G06F 12/0292: {using tables or multilevel address translation means (G06F12/023 takes precedence; address translation in virtual memory systems G06F12/10)}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method and apparatus for constructing a memory-based database service platform, in which database can be on-loaded and off-loaded or unloaded as needed, and can reserve schedule and size of memory and other resources, including CPUs, network, backup, mirroring and recovery recourses. With the service platform, multiple different types of databases can be chosen by specifying data storage type and data operation interfaces, such as Relational Database (RDB), Biometric Database (BDB), Time Series Database (TDB), Data Driven Database (DDDB) and File-based Database (FDB) etc. Database types can be chosen either by user directly or by platform automatically or semi-automatically based on data types and data operation characteristics.

## Claims

### Claim 1

A method for implementing a dynamic block relocation scheme in a memory or non-memory based block storage system, said block storage system having a plurality of blocks storing data, comprising the steps of:
providing a block ID lookup table, and each said block has a block entry in the said block ID lookup table containing a block ID, and said block entry contains direct or indirect information of the physical location of said block in said block storage system;
providing a block address to access to a said block includes said block ID;
wherein by dynamically changing the said direct or indirect information in said block entry, the said block address containing said block ID can be re-directed to access a different physical block in said block storage system.

### Claim 2 (depends on 1)

A method according to claim 1 wherein a said block can have multiple block entries in said block ID lookup table.

### Claim 3 (depends on 1)

A method according to claim 1 wherein said memory or non-memory block storage system includes a plurality of servers and a server lookup table, and each said server having an server entry in said server lookup table having a server ID, and said server entry at least contains connection information to said server, and said address to access to a said block includes said server ID.

### Claim 4 (depends on 3)

A method according to claim 3 wherein a said server may have multiple entries in the said server lookup table.

### Claim 5 (depends on 3)

A method according to claim 3 wherein by changing the information in the said server entry represented by a said server ID in said address to a said block, the said address of the said block is to be redirected to access a different physical block on a different server.

### Claim 6

A method for implementing a dynamic replication in a memory or non-memory based block storage system storing data, said block storage system may include one or multiple of storage servers, comprising steps of:
providing one or multiple replication blocks for a first block in said block storage system, and said replication blocks replicate partial of whole data of said first block;
wherein accessing to said first block may be directed to said replication blocks for data access.

### Claim 7 (depends on 6)

A method according claim 6 wherein a first criteria is defined in said block storage system, one or multiple said replication blocks will be created for said first block when said first criteria is meet, and said accessing to said first block is to be directed to said replication blocks and said first block for data access.

### Claim 8 (depends on 7)

A method according claim 7 wherein a second criteria is defined in said block storage system, the number of created said replication blocks can be decreased when said second criteria is meet, and said accessing to said first block is to be directed to left-over said replication blocks and said first block for data access.

### Claim 9 (depends on 7)

A method according to claim 7 wherein the said creation is automatically triggered by said block storage system when said first criteria is meet.

### Claim 10 (depends on 8)

A method according to claim 8 wherein said decreasing is automatically triggered by said block storage system when said second criteria is meet.

### Claim 11 (depends on 6)

A method according to claim 6 wherein said replication blocks of said first block can be on the servers that are different from the server where said first block is located.

### Claim 12

A method for implementing a block neighborhood scheme in a memory or non-memory based block storage system storing data, and said block storage system having a plurality of blocks, comprising steps of:
defining a neighborhood relationship criteria among blocks;
remembering neighbor blocks of a first block, and said neighbor blocks satisfying said neighborhood relationship criteria with said first block;
wherein blocks that are used for data access may be stored in a memory or non-memory based backup or secondary system in said block storage system.

### Claim 13 (depends on 12)

A method according to claim 12 wherein said neighborhood relationship criteria can be defined when a second block contains a reference to a location in a first block in said block storage system.

### Claim 14 (depends on 12)

A method according to claim 12 wherein said neighborhood relationship criteria can be a user-defined rule.

### Claim 15 (depends on 12)

A method according to claim 12 wherein said neighborhood relationship criteria can be a logic relationship between blocks.

### Claim 16 (depends on 12)

A method according to claim 12 wherein said block neighborhood scheme further comprises steps of pre-fetching a said neighbor block of a said first block when the said first block is or will be accessed to make said neighbor block ready for data access, if said neighbor block is not located to be ready for data access yet.

### Claim 17 (depends on 12)

A method according to claim 12 wherein said neighborhood relationship can be unidirectional from a first block to a second block.

### Claim 18 (depends on 12)

A method according to claim 12 wherein said neighborhood relationship can be bidirectional if two blocks are neighbors to each other.

### Claim 19 (depends on 12)

A method according to claim 12 wherein given a data access query, only relevant blocks, based on said neighborhood relationship information, are loaded into memory for data access.

### Claim 20

A memory-based on-demand database system having a plurality of blocks of memory for data operation and storage, comprising:
means for loading a database partially or in whole from a secondary system into said memory blocks for data operation;
means for unloading a said database from said memory blocks to said secondary system.

### Claim 21 (depends on 20)

A memory-based on-demand database system according to claim 20 further comprises an optional backup means to backup or replicate said database partially or in whole.

### Claim 22 (depends on 20)

A memory-based on-demand database system according to claim 20 further comprises a database administration management that includes at least database registration, database configuration and user account information.

### Claim 23 (depends on 22)

A memory-based on-demand database system according to claim 22 wherein said database configuration at least contains built-in or user-defined database types, built-in or user-defined database storage types, built-in or user-defined database query methods.

### Claim 24 (depends on 23)

A memory-based on-demand database system according to claim 23 wherein said database configuration further contains database operation toolsets.

### Claim 25 (depends on 22)

A memory-based on-demand database system according to claim 22 wherein user can choose a suitable said database type, a suitable database storage type and a suitable database query method when loading a said database into said memory for data operation.

### Claim 26 (depends on 20)

A memory-based on-demand database system according to claim 20 further comprises a recourse management which tracks at least memory usage and availability of said memory blocks in said on-demand database system.

### Claim 27 (depends on 23)

A memory-based on-demand database system according to claim 23 wherein said database type includes SQL-based relational database, and said query method includes SQL language.

### Claim 28 (depends on 24)

A memory-based on-demand database system according to claim 24 wherein user can choose a suitable said database operation toolset for his/her high-level data operation.
