# US 11,907,176 B2 · Container-based virtualization for testing database system

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

- Number: US 11,907,176 B2
- Document ID: US11907176B2
- Status: Granted
- Kind: B2
- Application number: 16/409,284
- Filed: 2019-05-10
- Published: 2020-11-12
- Granted: 2024-02-20
- Earliest claimed: 2019-05-10
- Assignees: International Business Machines Corporation
- Applicants: International Business Machines Corporation
- Inventors: Xin Peng Liu; ShengYan Sun; Shuo Li; Xiaobo Wang
- Web page: https://patentgrep.com/patent/US11907176B2

## CPC

- G06F 16/196: {Specific adaptations of the file system to access devices and non-file objects via standard file system access operations, e.g. pseudo file systems (dedicated interfaces to storage systems G06F3/0601)}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 11/301: {where the computing system is a virtual computing platform, e.g. logically partitioned systems (virtual machines G06F9/45533; logical partitioning of resources G06F9/5077)}
- G06F 12/1072: Decentralised address translation, e.g. in distributed shared memory systems
- G06F 16/1774: {Locking methods, e.g. locking methods for file systems allowing shared and concurrent access to files}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Methods, computer program products, and systems are presented. The methods include, for instance: receiving a request for a lock on a page from a virtual database amongst two or more virtual databases, the virtual database including a number of containers respectively corresponding to the same number of database components of the virtual database. A copy of the page is refreshed with a latest copy of the page in an overall cache prior to granting the lock based on ascertaining that the page is not locked by any other virtual database. The virtual database is granted with the lock and have an exclusive access to the page.

## Claims

### Claim 1

A computer implemented method comprising: receiving, by one or more processor, a request for a lock on a page from a virtual database amongst two or more virtual databases, the virtual database comprising a number of containers respectively corresponding to the same number of database components of the virtual database;
refreshing, by the one or more processor, a copy of the page with a latest copy of the page in an overall cache that is commonly accessed by the two or more virtual databases, in order for the virtual database to fetch the latest copy of the page from the overall cache, based on ascertaining that the page is not locked by any other virtual database, and granting, by the one or more processor, the lock on the page to the virtual database for an exclusive access to the page.

### Claim 2 (depends on 1)

The computer implemented method of claim 1, further comprising: prior to the granting, updating a local cache of the virtual database with the latest copy of the page.

### Claim 3 (depends on 2)

The computer implemented method of claim 2, further comprising: prior to the granting, dequeuing the virtual database from the wait queue of the page based on that the virtual database is the first entry in the wait queue of the page.

### Claim 4 (depends on 1)

The computer implemented method of claim 1, wherein each container corresponding to one of the database components of the virtual database includes a set of configuration parameter values for testing the virtual database.

### Claim 5 (depends on 4)

The computer implemented method of claim 4, wherein each container corresponding to one of the database components of the virtual database includes a communication process comprising a serialization of data outgoing to other database components of the virtual database for outside of an address space of a sending container and a deserialization of data incoming from other database components of the virtual database to manipulate the incoming data in an address space of a receiving container.

### Claim 6 (depends on 5)

The computer implemented method of claim 5, wherein the communication process utilizes a communication protocol selected from Transmission Control Protocol/Internet Protocol (TCP/IP), Distributed Relational Database Architecture (DRDA), and Representational State Transfer (REST).

### Claim 7

A computer program product comprising: a computer readable storage medium readable by one or more processor and storing instructions for execution by the one or more processor for performing a method comprising:
receiving a request for a lock on a page from a virtual database amongst two or more virtual databases, the virtual database comprising a number of containers respectively corresponding to the same number of database components of the virtual database;
refreshing a copy of the page with a latest copy of the page in an overall cache that is commonly accessed by the two or more virtual databases, in order for the virtual database to fetch the latest copy of the page from the overall cache, based on ascertaining that the page is not locked by any other virtual database; and
granting the lock on the page to the virtual database for an exclusive access to the page.

### Claim 8 (depends on 7)

The computer program product of claim 7, further comprising:
prior to the granting, updating a local cache of the virtual database with the latest copy of the page.

### Claim 9 (depends on 7)

The computer program product of claim 7, further comprising:
prior to the refreshing, enqueuing the virtual database in a wait queue of the page based on ascertaining that the page is presently locked by other virtual database of the two or more virtual databases.

### Claim 10

A system comprising: a memory; one or more processor in communication with the memory; and program instructions executable by the one or more processor via the memory to perform a method comprising:
receiving a request for a lock on a page from a virtual database amongst two or more virtual databases;
refreshing a copy of the page with a latest copy of the page in an overall cache that is commonly accessed by the two or more virtual databases, in order for the virtual database to fetch the latest copy of the page from the overall cache, based on ascertaining that the page is not locked by any other virtual database;
updating a local cache of the virtual database with the latest copy of the page; and
granting the lock on the page to the virtual database for an exclusive access to the page, wherein the updating is performed prior to the granting.

### Claim 11 (depends on 10)

The system of claim 10, further comprising:
prior to the refreshing, enqueuing the virtual database in a wait queue of the page based on ascertaining that the page is presently locked.

### Claim 12 (depends on 11)

The system of claim 11, further comprising:
prior to the granting, dequeuing the virtual database from the wait queue of the page based on that the virtual database is the first entry in the wait queue of the page.

### Claim 13 (depends on 10)

The system of claim 10, wherein each container corresponding to one of the database components of the virtual database includes a set of configuration parameter values for testing the virtual database.

### Claim 14 (depends on 13)

The system of claim 13, wherein each container corresponding to one of the database components of the virtual database includes a communication process comprising a serialization of data outgoing to other database components of the virtual database for outside of an address space of a sending container and a deserialization of data incoming from other database components of the virtual database to manipulate the incoming data in an address space of a receiving container.

### Claim 15 (depends on 1)

The computer implemented method of claim 1, wherein the method includes concurrently with the receiving, obtaining multiple requests for different respective page locks from different respective virtual databases, and marking the multiple requests with an identifier for the requesting virtual database and the page number subject to the respective page lock requests.

### Claim 16 (depends on 1)

The computer implemented method of claim 1, wherein the method includes detecting the release of the lock on the page by the virtual database, and responsively to the detecting copying the updated page to the overall cache.

### Claim 17 (depends on 1)

The computer implemented method of claim 1, wherein the method includes detecting the release of the lock on the page by the virtual database, responsively to the detecting copying the updated page to the overall cache, subsequent to the copying granting a page lock on the page to a second virtual database, wherein the second virtual database is a first virtual database in a wait queue for the lock on the page.

### Claim 18 (depends on 1)

The computer implemented method of claim 1, further comprising: enqueuing the virtual database in a wait queue of the page based on ascertaining that the page is presently locked by other virtual database of the two or more virtual databases, wherein the enqueuing is performed prior to the refreshing.
