# US 11,442,663 B2 · Managing configuration data

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

- Number: US 11,442,663 B2
- Document ID: US11442663B2
- Status: Granted
- Kind: B2
- Application number: 16/890,345
- Filed: 2020-06-02
- Published: 2021-05-06
- Granted: 2022-09-13
- Earliest claimed: 2019-10-31
- Assignees: EMC IP Holding Company LLC
- Applicants: EMC IP Holding Company LLC
- Inventors: Shaoqin Gong; Geng Han; Xinlei Xu; Jian Gao; Jianbin Kang
- Web page: https://patentgrep.com/patent/US11442663B2

## CPC

- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0604: {Improving or facilitating administration, e.g. storage management}
- G06F 3/0611: {in relation to response time}
- G06F 3/0617: {in relation to availability}
- G06F 3/0656: {Data buffering arrangements}
- G06F 3/0673: {Single storage device}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 16/2379: {Updates performed during online database operations; commit processing}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Techniques involve detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database and a buffered version being stored in memory independent of the database. The techniques further involve in accordance with detection that the transaction is initiated, building a data buffer to buffer a section to be modified, the data buffer being mapped to a storage sector of the memory in which the section is expected to be stored. The techniques further involve determining whether the transaction successfully completed and in accordance with a determination that the transaction fails to successfully complete, releasing the data buffer and aborting the transaction, without modifying the buffered version. Accordingly, the configuration data in the memory remains as the previous version and are not modified before the transaction is successfully completed, which makes it possible to abort the transaction.

## Claims

### Claim 1

A method for storage management, comprising:
detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database storage area and a buffered version of the configuration data being stored in a memory independent from the database storage area;
in accordance with a detection that the transaction is initiated, building a data buffer to buffer a target configuration data section to be modified, the data buffer being mapped to a storage sector of the memory in which the target configuration data section is expected to be stored;
determining whether the transaction is successfully completed; and
in accordance with a determination that the transaction fails to be successfully completed, releasing the data buffer and aborting the transaction, without modifying the buffered version of the configuration data;
wherein the storage system is controlled by a primary control node and a secondary control node, the method being performed by the primary control node and the buffered version of the configuration data being maintained by the primary control node, and wherein the method further comprises: after building the data buffer,
storing the target configuration data section in the data buffer; and
initiating a first write request to the database storage area to request to modify the configuration data stored in the database storage area, the first write request comprising an address of the data buffer.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
in accordance with a determination that the transaction is successfully completed,
transferring the target configuration data section stored in the data buffer to the storage sector to which the data buffer is mapped; and
releasing the data buffer.

### Claim 3 (depends on 1)

The method of claim 1, wherein the transaction is a transaction in a task to request to update a configuration of the storage system, the method further comprising:
in accordance with a determination that the transaction fails to be successfully completed, causing an execution status of the task to be marked as failed.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the first write request is failed, determining that the transaction fails to be successfully completed.

### Claim 5 (depends on 1)

The method of claim 1, wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the first write request is successfully completed, sending an update request to the secondary control node to request the secondary control node to read the target configuration data section from the database storage area to update a further buffered version of the configuration data maintained by the secondary control node; and
in accordance with a determination that the secondary control node fails to read the target configuration data section from the database storage area, determining that the transaction fails to be successfully completed.

### Claim 6 (depends on 5)

The method of claim 5, wherein the database storage area further stores address information of the configuration data, and wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the secondary control node successfully reads the target configuration data section from the database storage area, initiating a second write request to the database storage area to request to update the address information to address information of the modified configuration data; and
in accordance with a failure of the second write request, determining that the transaction fails to be successfully completed.

### Claim 7

A method for storage management, comprising:
detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database storage area and a buffered version of the configuration data being stored in a memory independent from the database storage area;
in accordance with a detection that the transaction is initiated, building a data buffer to buffer a target configuration data section to be modified, the data buffer being mapped to a storage sector of the memory in which the target configuration data section is expected to be stored;
determining whether the transaction is successfully completed; and
in accordance with a determination that the transaction fails to be successfully completed, releasing the data buffer and aborting the transaction, without modifying the buffered version of the configuration data;
wherein the storage system is controlled by a primary control node and a secondary control node, the method being performed by the secondary control node and the buffered version of the configuration data being maintained by the primary control node, and wherein detecting whether the transaction is initiated comprises:
receiving an update request from the primary control node to request the secondary control node to read the target configuration data section from the database storage area to update the buffered version of the configuration data; and
in accordance with a reception of the update request, determining that the transaction is initiated.

### Claim 8 (depends on 7)

The method of claim 7, further comprising:
after building the data buffer, initiating a read request to the database storage area to read the target configuration data section from the database storage area, and
wherein determining whether the transaction is successfully completed comprises:
in accordance with a failure of the read request, determining that the transaction fails to be successfully completed.

### Claim 9 (depends on 8)

The method of claim 8, further comprising:
in accordance with a success of the read request, obtaining the target configuration data section from the database storage area; and
storing the target configuration data section to the data buffer.

### Claim 10 (depends on 1)

The method of claim 1, wherein building the data buffer comprises:
building the data buffer in the memory.

### Claim 11

An electronic device, comprising:
at least one processor; and
at least one memory having computer program instructions stored therein, the at least one memory and the computer program instructions configured, with the at least one processor, to cause the electronic device to perform acts comprising:
detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database storage area and a buffered version of the configuration data being stored in a memory independent from the database storage area;
in accordance with a detection that the transaction is initiated, building a data buffer to buffer a target configuration data section to be modified, the data buffer being mapped to a storage sector of the memory in which the target configuration data section is expected to be stored;
determining whether the transaction is successfully completed; and
in accordance with a determination that the transaction fails to be successfully completed, releasing the data buffer and aborting the transaction, without modifying the buffered version of the configuration data;
wherein the storage system is controlled by a primary control node and a secondary control node, the electronic device is the primary control node and the buffered version of the configuration data being maintained by the electronic device, and wherein the acts further comprises: after building the data buffer,
storing the target configuration data section in the data buffer; and
initiating a first write request to the database storage area to request to modify the configuration data stored in the database storage area, the first write request comprising an address of the data buffer.

### Claim 12 (depends on 11)

The electronic device of claim 11, wherein the acts further comprise:
in accordance with a determination that the transaction is successfully completed,
transferring the target configuration data section stored in the data buffer to the storage sector to which the data buffer is mapped; and
releasing the data buffer.

### Claim 13 (depends on 11)

The electronic device of claim 11, wherein the transaction is a transaction in a task to request to update a configuration of the storage system, the method further comprising:
in accordance with a determination that the transaction fails to be successfully completed, causing an execution status of the task to be marked as failed.

### Claim 14 (depends on 11)

The electronic device of claim 11, wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the first write request is failed, determining that the transaction fails to be successfully completed.

### Claim 15 (depends on 11)

The electronic device of claim 11, wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the first write request is successfully completed, sending an update request to the secondary control node to request the secondary control node to read the target configuration data section from the database storage area to update a further buffered version of the configuration data maintained by the secondary control node; and
in accordance with a determination that the secondary control node fails to read the target configuration data section from the database storage area, determining that the transaction fails to be successfully completed.

### Claim 16 (depends on 15)

The electronic device of claim 15, wherein the database storage area further stores address information of the configuration data, and wherein determining whether the transaction is successfully completed comprises:
in accordance with a determination that the secondary control node successfully reads the target configuration data section from the database storage area, initiating a second write request to the database storage area to request to update the address information to address information of the modified configuration data; and
in accordance with a failure of the second write request, determining that the transaction fails to be successfully completed.

### Claim 17

An electronic device, comprising:
at least one processor; and
at least one memory having computer program instructions stored therein, the at least one memory and the computer program instructions configured, with the at least one processor, to cause the electronic device to perform acts comprising:
detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database storage area and a buffered version of the configuration data being stored in a memory independent from the database storage area;
in accordance with a detection that the transaction is initiated, building a data buffer to buffer a target configuration data section to be modified, the data buffer being mapped to a storage sector of the memory in which the target configuration data section is expected to be stored;
determining whether the transaction is successfully completed; and
in accordance with a determination that the transaction fails to be successfully completed, releasing the data buffer and aborting the transaction, without modifying the buffered version of the configuration data;
wherein the storage system is controlled by a primary control node and a secondary control node, the electronic device being the secondary control node and the buffered version of the configuration data being maintained by the primary control node, and wherein detecting whether the transaction is initiated comprises:
receiving an update request from the primary control node to request the secondary control node to read the target configuration data section from the database storage area to update the buffered version of the configuration data; and
in accordance with a reception of the update request, determining that the transaction is initiated.

### Claim 18 (depends on 17)

The electronic device of claim 17, wherein the acts further comprise:
after building the data buffer, initiating a read request to the database storage area to read the target configuration data section from the database storage area, and
wherein determining whether the transaction is successfully completed comprises:
in accordance with a failure of the read request, determining that the transaction fails to be successfully completed.

### Claim 19 (depends on 18)

The electronic device of claim 18, wherein the acts further comprise:
in accordance with a success of the read request, obtaining the target configuration data section from the database storage area; and
storing the target configuration data section to the data buffer.

### Claim 20 (depends on 11)

The electronic device of claim 11, wherein building the data buffer comprises:
building the data buffer in the memory.

### Claim 21

A computer program product having a non-transitory computer readable medium which stores a set of instructions to perform storage management; the set of instructions, when carried out by computerized circuitry, causing the computerized circuitry to perform a method of:
detecting whether a transaction of modifying configuration data of a storage system is initiated, the configuration data being stored in a database storage area and a buffered version of the configuration data being stored in a memory independent from the database storage area;
in accordance with a detection that the transaction is initiated, building a data buffer to buffer a target configuration data section to be modified, the data buffer being mapped to a storage sector of the memory in which the target configuration data section is expected to be stored;
determining whether the transaction is successfully completed; and
in accordance with a determination that the transaction fails to be successfully completed, releasing the data buffer and aborting the transaction, without modifying the buffered version of the configuration data;
wherein the storage system is controlled by a primary control node and a secondary control node, the method being performed by the primary control node and the buffered version of the configuration data being maintained by the primary control node, and wherein the method further comprises: after building the data buffer,
storing the target configuration data section in the data buffer; and
initiating a first write request to the database storage area to request to modify the configuration data stored in the database storage area, the first write request comprising an address of the data buffer.

### Claim 22 (depends on 1)

The method of claim 1, wherein the storage system includes first Random Access Memory (RAM) and second RAM which are separate from the database storage area;
wherein the first RAM is accessed by the primary control node;
wherein the second RAM is accessed by the secondary control node; and
wherein building the data buffer includes:
forming the data buffer within the first RAM while the buffered version of the configuration data remains intact within the memory independent from the database storage area.

### Claim 23 (depends on 22)

The method of claim 22, further comprising:
at startup of the storage system, loading first initial configuration data from the database storage area into the first RAM for access by the primary control node, and loading second initial configuration data from the database storage area into the second RAM for access by the secondary control node.
