Secure data replication in a distributed data storage environment
By using secure algorithms to encrypt data elements in a distributed database system and storing protected data in a secondary change table during data replication, the problem of data security during data replication is solved, enabling secure updates and replication of data in multiple locations.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-04-27
- Publication Date
- 2026-04-07
AI Technical Summary
In distributed database systems, existing technologies struggle to effectively protect data elements during data replication, especially when updating data, where data security is difficult to guarantee.
By encrypting data elements using security algorithms during data updates and storing protected data elements in a secondary modification table during data replication, the security of data in the target table is ensured.
It enables secure updates and replication of data in a distributed database system, ensuring the security and integrity of data across multiple locations and avoiding the risk of data leakage.
Smart Images

Figure CN115485677B_ABST
Abstract
Description
Background Technology
[0001] This invention generally relates to computing technology, and more particularly to a database management system for securely managing the storage of electronic data in a distributed database system.
[0002] Data replication is the frequent electronic copying of data records stored on a source data storage device to a replica data storage device for data recovery or to allow users on multiple computing devices to access data relevant to their tasks without interfering with the work of others. In data storage systems, it is generally desirable to replicate stored data in multiple locations so that the data is locally available at each location. Each location will have a local data storage device that can satisfy its own data read requests, i.e., without needing to query other data storage devices in the data storage system. Summary of the Invention
[0003] According to one or more embodiments of the present invention, a computer-implemented method for secure data replication in a data storage environment includes: receiving, by a database system, an instruction for modifying a first data element in a table in a database. The database includes a first copy of the table and a second copy of the table. The method further includes: in response to receiving the instruction, creating a first entry in the first modification table. The first entry includes a data element that includes an updated value of the first data element. The updated value is provided by the instruction. Further, the method includes creating a second entry in a second modification table. Creating the second entry includes: in response to determining that the first data element is a protected data element, changing the updated value to ciphertext using a security algorithm, and storing the ciphertext in the second entry as the content of the first data element in the second modification table. Further, in response to determining that the first data element is an unprotected data element, storing the updated value in the second entry as the content of the first data element in the second modification table. The method further includes: the database system using the second modification table to modify a second copy of the table according to the received instruction, wherein the second copy is used to respond to subsequent queries.
[0004] According to one or more embodiments of the present invention, a database system includes a memory device and one or more processors coupled to the memory device. The one or more processors perform a method for secure data replication in a database, wherein the database includes a first copy of a table and a second copy of the table. The method includes receiving an instruction for modifying a first data element in the table. The method further includes: in response to receiving the instruction, creating a first entry in the first modification table. The first entry includes a data element that includes an updated value of the first data element. The updated value is provided by the instruction. Further, the method includes creating a second entry in the second modification table. Creating the second entry includes: in response to determining that the first data element is a protected data element, changing the updated value to ciphertext using a security algorithm, and storing the ciphertext in the second entry as the content of the first data element in the second modification table. Further, in response to determining that the first data element is an unprotected data element, storing the updated value in the second entry as the content of the first data element in the second modification table. The method further includes: the database system using the second modification table to modify a second copy of the table according to the received instruction, wherein the second copy is used in response to subsequent queries.
[0005] According to one or more embodiments of the present invention, a computer program product includes a storage medium readable by one or more processing circuits. The storage medium includes instructions executable by one or more processing circuits to perform a method for secure data replication in a database, wherein the database includes a first copy of a table and a second copy of the table. The method includes receiving instructions for modifying a first data element in the table. The method further includes: in response to receiving the instructions, creating a first entry in the first modification table. The first entry includes a data element that includes an updated value of the first data element. The updated value is provided by the instructions. Further, the method includes creating a second entry in a second modification table. Creating the second entry includes: in response to determining that the first data element is a protected data element, changing the updated value to ciphertext using a security algorithm, and storing the ciphertext in the second entry as the content of the first data element in the second modification table. Further, in response to determining that the first data element is an unprotected data element, storing the updated value in the second entry as the content of the first data element in the second modification table. The method also includes the database system using the second modification table to modify a second copy of the table according to the received instructions, wherein the second copy is used in response to subsequent queries.
[0006] Additional technical features and benefits are achieved through the technology of this invention. Embodiments and aspects of the invention are described in detail herein and are considered part of the claimed subject matter. For a better understanding, reference is made to the specific embodiments and accompanying drawings. Attached Figure Description
[0007] Figure 1 This is a schematic diagram of a data storage system according to an illustrative embodiment of the present invention.
[0008] Figure 2 A block diagram and operational flow for changing data elements in a data storage device are described.
[0009] Figure 3 A block diagram depicts data elements in a data storage device system that securely replicates data changes according to one or more embodiments of the present invention.
[0010] Figure 4 A flowchart is depicted for a method for protecting data replication in a distributed data storage environment according to one or more embodiments of the present invention.
[0011] Figure 5 A flowchart is depicted for a method for protecting data elements when copied from a first entry to a second entry, according to one or more embodiments of the present invention.
[0012] Figure 6 This is a schematic diagram of an illustrative computing device configured to implement one or more exemplary embodiments of the present invention.
[0013] Figure 7 A cloud computing environment according to one or more embodiments of the present invention is described.
[0014] Figure 8 An abstract model layer is described according to one or more embodiments of the present invention.
[0015] The figures described herein are illustrative. Many variations may be made to the figures or operations described herein without departing from the invention. For example, actions may be performed in a different order, or actions may be added, deleted, or modified. Furthermore, the term "coupled" and its variations describe a communication path between two elements and do not imply a direct connection between the elements, where there are no intermediate elements / connections between them. All such variations are considered part of the specification. Detailed Implementation
[0016] Exemplary embodiments of the present invention particularly relate to apparatus, systems, methods, computer-readable media, techniques, and approaches for improving database systems. Change data capture techniques are used to keep the database system synchronized with low latency. For such change data capture, the database system replicates instructions for changing one or more data elements in the database. For example, such instructions for changing data elements may include instructions for inserting, updating, and deleting data elements. In a database system implementing change data capture, such instructions change one or more data elements between the target database and the replica database. Embodiments of the present invention further improve such distributed database systems with copies of stored data by facilitating secure updates to stored data when using change data capture. One or more embodiments of the present invention facilitate the transformation of fields to be updated into protected data, which can then be applied transparently through existing replication processes. During the application of the change, the source change table and the target change table are synchronized to ensure that the protected data is stored in the database.
[0017] Change data capture involves capturing data from the database update log and capturing the updated records into a change table containing the updated records and their metadata. The change table is then used to apply the updated records only to a copy of the original database.
[0018] Figure 1 A database system implementing altered data capture according to one or more embodiments of the present invention is described. Database system 100 includes a first data storage device 102 at site A and host devices 130A and 130B, etc., communicating with the first data storage device 102. Host devices 130A and 130B request to read data from and write data to the first data storage device 102. Database system 100 also includes a second data storage device 104 at site B and host devices 150A and 150B, etc., communicating with the second data storage device 104. Similarly, host devices 150A and 150B request to read data from and write data to the second data storage device 104.
[0019] The first data storage device 102 and the second data storage device 104 communicate with each other to replicate the data they store at each site A and B, including any updates to the data made by requests to write data.
[0020] Database system 100 also includes a third data storage device 106 at site C and a fourth data storage device 107 at site D. Unlike the first data storage device 102 at site A and the second data storage device 104 at site B, the third data storage device 106 and the fourth data storage device 107 do not communicate with any host device. As a result, the third data storage device 106 and the fourth data storage device 107 will not receive any requests to read or write data. Such a site, which has data storage devices that do not themselves receive write requests from host devices and are therefore only used as copies of data stored elsewhere, is described herein as an inactive site.
[0021] However, both the third data storage device 106 and the fourth data storage device 107 communicate with the first data storage device 102 and the second data storage device 104, and each replicates the data stored at each site A and B. In use, the third data storage device 106 and the fourth data storage device 107 can be maintained, for example, during a migration from one site to another (e.g., from site A to site C), while site A remains in active use; or backups can be provided for use in the event of a failure of either the first data storage device 102 or the second data storage device 104.
[0022] Although Figure 1 In the illustrated embodiment, the third data storage device 106 and the fourth data storage device 107 are located at different sites than the first data storage device 102 and the second data storage device 104. However, in alternative embodiments, one or both may be located at the same site as either the first data storage device 102 or the second data storage device 104. Furthermore, although in Figure 1 In the illustrated embodiment, each of site A and site B includes only a single data storage device that communicates with a host device. However, in other alternative embodiments, a site may include multiple data storage devices that communicate with one or more host devices.
[0023] The first data storage device 102 and the second data storage device 104 can copy data between them.
[0024] It should be understood that the data storage devices and sites shown are merely an exemplary embodiment of the present invention, and in other embodiments of the present invention, the number and organization of sites and storage devices may differ from the depicted example.
[0025] Figure 2A block diagram and operational flow for modifying data elements in a data storage device are depicted. In the depicted example, a first data storage device 102 is shown; however, it should be understood that any other storage device can be operated in the same manner. Furthermore, it should be understood that although the data storage device uses a table data structure to store data in the example described herein, the data storage device can use other types of data structures to store data, which can also be updated in substantially the same way as a table. A data element can be a specific data field, i.e., a cell represented by a specific row-column combination. Alternatively or additionally, a data element can be an entire row or column in a table.
[0026] It should be noted that the diagrams here depict the target table being modified according to the example request. It should be understood that modifications are also made to the source table. Although changes are shown to the target table, these changes are not shown in the source table, in order to depict to the reader two states of the data—before the request (in the source table) and after the request is completed (in the target table). If the request is first hardened in the source table, the database system 100 implements the changes in the target table. Therefore, the accompanying figures depict the mechanism of updating the source table, which triggers replication in the target table; however, no changes to the source table itself are described herein, and it should be understood that such changes are made by the database system without affecting the technical solutions provided by one or more embodiments of the present invention.
[0027] exist Figure 2 In the example scenario, consider source table 202 comprising data elements, and one or more data elements to be updated by instruction 210. In this example scenario, the data element 201 being modified is a field represented by row 1 and column 2, such that the existing value "yyy" is changed to "ppp". It should also be noted that in other embodiments of the invention, the data values may be different. Moreover, the number of rows and columns in table 202 is exemplary, and in one or more embodiments of the invention, table 202 may include different numbers of rows and columns. Further, while the example scenario depicts an "update" operation that changes an existing value, in one or more embodiments of the invention, the change may include inserting a new value.
[0028] Referring to the example scenario, instruction 210 changes source table 202 to target table 204. For each instruction 210 that changes data, database system 100 creates change table 220 in response to instruction 210 using data change capture technology. Change table 220 is an intermediate data structure that stores update records. The update records stored in change table 220 contain values to be applied to target table 204. Database system 100 then uses an application procedure to transform the data element to be updated (in this case, data element 201). In one or more embodiments of the invention, the data element to be updated is recorded in metadata portion 222 of change table 220. In one or more embodiments of the invention, metadata portion 222 may further indicate the operations to be performed for the changes to be applied. Change table 220 may store several such changes to be applied to target table 204. Database system 100 executes one or more computer-executable instructions to apply these changes at a later time. In one or more embodiments of the invention, these changes may be applied sequentially. Alternatively, in one or more embodiments of the invention, the database system 100 applies changes in a more efficient, unordered manner by analyzing ongoing changes and skipping any redundant changes.
[0029] However, when data elements need to be protected, such as through encryption, masking, or any other techniques, to safeguard the values stored in database system 100, this change-capturing technique presents technical challenges when applied to distributed database system 100. For example, when data elements are about to be updated, changes to table 220 may include values of data elements to be applied to target table 204. These values are unprotected in the existing system and are therefore vulnerable. In this document, the “value” of a data element may also be referred to as the “content” of the data element.
[0030] One or more embodiments of the present invention address these technical challenges. Embodiments of the present invention facilitate protection for each data element in a change table to be applied to a target table 204. In one or more embodiments of the present invention, the data elements are converted into protected data, and then this protected data is applied to the target table 204 using existing replication techniques. Replication can apply the changes to multiple sites within the database system 100.
[0031] Figure 3 A block diagram and operational flow diagram for securely altering data elements in a data storage device according to one or more embodiments of the present invention are described. Implementation Figure 3 The techniques described herein improve the security of data stored in database system 100. Consider again the same example scenario, where data element 201 is a field updated from “yyy” to “ppp” by change instruction 210.
[0032] Embodiments of the present invention create a copy of change table 220; this copy is referred to herein as a “secondary change table” 320; however, in other embodiments of the present invention, the copy may be referred to by any other term. Secondary change table 320 includes only those update records from the first change table 220 that have not yet been applied. In one or more embodiments of the present invention, secondary change table 320 is created periodically at a predetermined frequency (such as every 10 seconds, every 2 minutes, or any other frequency).
[0033] Creating a secondary change table 320 may include deleting an existing instance of the secondary change table 320 and creating a new instance of the secondary change table 320. In one or more embodiments of the invention, when creating an instance of the secondary change table 320, the database system 100 checks the timestamps of update records in the first change table 220. The timestamps in the update records indicate when the update record was created. Using the timestamps, only those update records that have been created within a predetermined duration from the current time are copied to the instance of the secondary change table 320 when that instance is created.
[0034] When an instance of the secondary change table 320 is being created, data element identifiers (such as column names) are examined to determine whether data in the first change table 220 needs to be protected. Users / administrators can specify which data elements should be protected. For example, this specification can be stored in the user settings of the database system 100. Therefore, the database system 100 checks this setting to determine whether any data elements in the first change table 220 need to be protected. If any data elements need to be protected, such as data element 201, then when the data elements are copied to the secondary change table 320, the identified data elements are protected, and the protected data is stored in data element 301 in the secondary change table 320. The secondary change table 320 is then used to apply the changes to the data elements in the target table 204.
[0035] When copying the value of a data element from the update record in the first change table 220 to the update record in the secondary change table 320, several methods can be used to generate secure data. For example, secure data can be created using reversible secure operations. In this case, the data value can be encrypted, and the resulting ciphertext can include secure metadata that facilitates the restoration of the ciphertext to the original data value. The secure metadata is stored in metadata 322 of the secondary change table 320. Alternatively or additionally, the database system 100 stores the secure metadata in other locations on the server. The database system 100 uses the secondary change table 320 to track this relevant information so that the data value can be interpreted at a later point in time to restore it from the ciphertext generated by the secure function. To facilitate the storage of the ciphertext, in one or more embodiments of the invention, the database system 100 changes the schema of the data element between the first change table 220 and the secondary change table 320. Schema change is necessary because the protection operation changes the format of the data value stored in the original field to the type of the ciphertext data value. The "format" of the data can be the field type associated with the data element, such as text, number, date, etc. The format is selected from the list of data types provided by the database system 100.
[0036] Other examples of protecting data values may include format preservation methods such as masking, redaction, and randomization. In these cases, the pattern of the protected data element remains unchanged between the first change table 220 and the secondary change table 320. These protection techniques do not change the format of the data value, but rather alter the value of the data stored using a specific encryption formula. Decrypting the original data from the protected data may involve applying the inverse of the encryption formula.
[0037] Following this protection, the secondary change table 320 has a modifiable schema and protected data, instead of the original plaintext, i.e., unprotected data. Updating the data in the database involves performing an "application process" that extracts changes from the secondary change table 320 (not the first change table 220) and applies those changes to the target table 204. The target table 204 now contains secure data from the secondary change table 320. When a user requests to read from the target table 204, the protected data is retrieved, and then processed by decrypting the retrieved data. Decryption can be performed by a central system (such as database system 100) or another secure server (not shown). Alternatively, decryption can be performed locally at the user's end by a client device (not shown).
[0038] Figure 4A flowchart illustrating a method 400 for protecting data replication in a distributed data storage environment according to one or more embodiments of the present invention is shown. Method 400 may be performed by one or more processing units as part of a database system 100. Method 400 includes, at block 402, receiving an instruction 210 for modifying data elements in a first data storage device 102. Instruction 210 may be in the form of computer-executable instructions, such as using Structured Query Language (SQL) or other such programming languages. (The use of this information is not explicitly stated in the original text.) Figure 2 and Figure 3 The example scenario described in Modify Instruction 210 is used to provide further description of the flowchart.
[0039] In box 404, in response to the received instruction 210, entries are created in the first change table 220. The entries in the first change table 220 include update records to be applied to the source table 202. Each entry includes data elements from the source table 202 that will be updated. The database also includes a target table 204 in which the changes from the first change table 220 are applied. The target table 204 is then used to respond to subsequent queries.
[0040] Method 400 further includes, at block 406, creating a copy of the entry from the first change table 220 in the secondary change table 320. The copy is created only for new entries (i.e., those with a timestamp indicating that the entry was created after the last iteration from which the entry was copied from the first change table 220). As previously described, entries from the first change table 220 are copied to the secondary change table 320 at a predetermined frequency. In one or more embodiments of the invention, the creation of such copies can be manually initiated by an administrator / user.
[0041] Creating a copy includes, at box 414, determining whether the data element 201 being modified is a protected data element. For example, data element 201 (such as a row, field, or column) can be protected using an encryption key, revision (e.g., masking), randomization algorithm, or any other protection algorithm. Alternatively, data element 201 may not be protected. User settings associated with the first data storage device 102 may include information about whether data element 201 is protected. Alternatively or additionally, user settings may be associated with a database stored in the first data storage device 102, which includes a source table 202 to which data element 201 is a part. Database system 100 may check whether data element 201 is protected based on user settings. Alternatively or additionally, database system 100 may determine the security of data element 201 based on its metadata.
[0042] If data element 201 is not protected, then in box 416, a copy 301 of the data element is made as is in the entry of the secondary change table 320; that is, the content of the data element is not protected. Alternatively, if data element 201 is protected, then in box 418, a protection algorithm is used to protect the content 301 of the data element, which produces ciphertext. Then, in box 420, the ciphertext is stored in the entry of the secondary change table 320. In box 412, a copy 301 of the data element is created in the secondary change table 320 in this manner by examining and copying the content of each data element from the first entry of the first change table 220.
[0043] Figure 5 A flowchart of a method for protecting a data element during copying from a first entry to a second entry, according to one or more embodiments of the present invention, is shown. Method 500 includes: at block 502, reading the content of a data element from a first entry of a first change table 220. Once it has been determined that the content is to be protected, method 500 further includes: at block 504, determining whether the protection includes a mode / format change of the content.
[0044] If format preservation security is to be applied, then in box 506, a pattern preservation protection algorithm is used to transform the content of the data element from the first entry into ciphertext. Examples of format preservation protection algorithms may include masking, revising, randomizing characters / elements of the content, or any other such algorithm. In this case, the pattern remains unchanged between the content of the data element from the first entry and the ciphertext stored in the secondary change table 320. Furthermore, the pattern of the first change table 220 and the pattern of the secondary change table 320 remain unchanged.
[0045] Without applying format-preserving security, in box 508, a security algorithm that may not preserve format is used to transform the content of the data element from the first entry into ciphertext. Therefore, the ciphertext created in this case has a different pattern than the pattern of the content in the data element from the first entry; that is, a distinct pattern. For example, in this case, the protection algorithm could be an encryption algorithm that generates the ciphertext, which may include character types that might not have been included in the original content of the first entry.
[0046] In one or more embodiments of the invention, ciphertext can be created where the operation is reversible. In this case, the original content is encrypted, and the resulting ciphertext may include security metadata. Alternatively, database system 100 tracks security metadata so that the ciphertext can be interpreted at a later point in time to recover the original content. Furthermore, database system 100 alters the schema between the first change table 220 and the secondary change table 320 because the protection operation changes the type of the data element fields.
[0047] Embodiments of the present invention facilitate the creation of secure data in a replicated table based on policies and database schemas by having a secondary change capture table containing protected data. Further, embodiments of the present invention facilitate the creation of a secondary change capture table based on an original change capture table. A replication method is performed that includes examining data elements (such as column names) to identify fields for which secure elements will be created in the secondary change table. Further, embodiments of the present invention facilitate the application of changes from a secondary change capture table containing protected data to a new table, wherein queries to the database system are run against the new table and thus against the secure data.
[0048] Turn now Figure 6 This document generally illustrates a computer system 600 according to an embodiment. The computer system 600 is part of and facilitates the execution of the methods described herein. The computer system 600 is responsible for processing / providing the various functions of the database system 100. The computer system 600 may be an electronic computer architecture that includes and / or employs any number and combination of computing devices and networks utilizing various communication technologies, as described herein. The computer system 600 may be easily scalable, extensible, and modular, capable of being changed to different services or reconfigured independently of other features. The computer system 600 may be, for example, a server, desktop computer, laptop computer, tablet computer, or smartphone. In some examples, the computer system 600 may be a cloud computing node. The computer system 600 can be described in the general context of computer system executable instructions (such as program modules) executed by the computer system. Typically, program modules may include routines, programs, objects, components, logic, data structures, etc., that perform specific tasks or implement specific abstract data types. Computer system 600 can be implemented in a distributed cloud computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed cloud computing environment, program modules can reside on local and remote computer system storage media (including memory storage devices).
[0049] like Figure 6As shown, the computer system 600 has one or more central processing units (CPUs) 601a, 601b, 601c, etc. (collectively or collectively referred to as processor 601). Processor 601 can be a single-core processor, a multi-core processor, a computing cluster, or any number of other configurations. Processor 601 (also referred to as processing circuitry) is coupled to system memory 603 and various other components via system bus 602. System memory 603 may include read-only memory (ROM) 604 and random access memory (RAM) 605. ROM 604 is coupled to system bus 602 and may include a basic input / output system (BIOS) that controls certain basic functions of computer system 600. RAM is a read-write memory coupled to system bus 602 for use by processor 601. System memory 603 provides temporary memory space for operations on the instructions during operation. System memory 603 may include random access memory (RAM), read-only memory, flash memory, or any other suitable memory system.
[0050] Computer system 600 includes an input / output (I / O) adapter 606 and a communication adapter 607 coupled to a system bus 602. I / O adapter 606 may be a Small Computer System Interface (SCSI) adapter that communicates with a hard disk 608 and / or any other similar component. I / O adapter 606 and hard disk 608 are collectively referred to herein as mass storage 610.
[0051] Software 611 for execution on computer system 600 may be stored in mass storage 610. Mass storage 610 is an example of a tangible storage medium readable by processor 601, wherein software 611 is stored as instructions executed by processor 601 to operate computer system 600, such as those described below with reference to the various figures. Examples of computer program products and the execution of such instructions are discussed herein in more detail. Communication adapter 607 interconnects system bus 602 with network 612 (which may be an external network) that enables computer system 600 to communicate with other such systems. In one embodiment, a portion of system memory 603 and mass storage 610 jointly store an operating system, which may be any suitable operating system, such as z / OS or AIX from IBM, to coordinate... Figure 6 The functions of the various components shown are illustrated.
[0052] Additional input / output devices are shown connected to the system bus 602 via display adapter 615 and interface adapter 616. In one embodiment, adapters 606, 607, 615, and 616 may be connected to one or more I / O buses that are connected to the system bus 602 via an intermediate bus bridge (not shown). A display 619 (e.g., a screen or display monitor) is connected to the system bus 602 via display adapter 615, which may include a graphics controller to improve the performance of graphics-intensive applications and video controllers. Keyboard 621, mouse 622, speakers 623, etc., may be interconnected to the system bus 602 via interface adapter 616, which may include, for example, a super I / O chip integrating multiple device adapters into a single integrated circuit. Suitable I / O buses for connecting peripheral devices such as hard disk controllers, network adapters, and graphics adapters typically include common protocols such as Peripheral Component Interconnect (PCI). Therefore, as Figure 6 The computer system 600 configured therein includes processing power in the form of a processor 601, storage capacity including system memory 603 and mass storage 610, input devices such as a keyboard 621 and a mouse 622, and output capacity including a speaker 623 and a display 619.
[0053] In some embodiments, the communication adapter 607 may use any suitable interface or protocol (such as an Internet Minicomputer System Interface) to transmit data. The network 612 may be a cellular network, radio network, wide area network (WAN), local area network (LAN), or the Internet. External computing devices may connect to the computer system 600 via the network 612. In some examples, the external computing device may be an external network server or a cloud computing node.
[0054] It should be understood that Figure 6 The block diagram is not intended to indicate what computer system 600 should include. Figure 6 All components shown. Conversely, computer system 600 may include any suitable fewer or... Figure 6 Additional components not shown herein (e.g., additional memory components, embedded controllers, modules, additional network interfaces, etc.). Furthermore, the embodiments described herein with respect to computer system 600 can be implemented with any suitable logic, wherein the logic mentioned herein can include any suitable hardware (e.g., processor, embedded controller, or application-specific integrated circuit, etc.), software (e.g., applications, etc.), firmware, or any suitable combination of hardware, software, and firmware in various embodiments.
[0055] It should be understood that although this disclosure includes a detailed description of cloud computing, the implementation of the teachings set forth herein is not limited to a cloud computing environment. Rather, embodiments of the invention can be implemented in conjunction with any other type of computing environment now known or developed hereafter.
[0056] Cloud computing is a service delivery model that enables convenient, on-demand network access to a shared pool of configurable computing resources (e.g., networks, network bandwidth, servers, processing, storage, applications, VMs, and services) that can be rapidly provisioned and released with minimal management costs or interaction with service providers. This cloud model may include at least five features, at least three service models, and at least four deployment models.
[0057] The features are as follows:
[0058] On-demand self-service: Cloud consumers can unilaterally and automatically provide computing power (such as server time and network storage) on demand without human interaction with the service provider.
[0059] Wide network access: Capabilities are available on the network and accessed through standard mechanisms that facilitate the use of heterogeneous thin or thick client platforms (e.g., mobile phones, laptops, and PDAs).
[0060] Resource pooling: A provider's computing resources are grouped into resource pools to serve multiple consumers using a multi-tenant model, where different physical and virtual resources are dynamically allocated and reallocated based on demand. Typically, consumers cannot control or know the exact location of the resources provided, but can specify the location at a higher level of abstraction (e.g., country, state, or data center), thus exhibiting location independence.
[0061] Rapid flexibility: Capabilities can be rapidly and flexibly (in some cases automatically) provided to expand outward quickly and be rapidly released to shrink back down. For consumers, the available capacity often appears unlimited and can be purchased at any time and in any quantity.
[0062] Measurable services: Cloud systems automatically control and optimize resource usage by leveraging metering capabilities at a level of abstraction appropriate to the service type (e.g., storage, processing, bandwidth, and active user accounts). Resource usage can be monitored, controlled, and reported, providing transparency to both service providers and consumers.
[0063] The service model is as follows:
[0064] Software as a Service (SaaS): The capability offered to consumers is the ability to use applications running on a provider's cloud infrastructure. These applications can be accessed from various client devices via thin client interfaces such as web browsers (e.g., web-based email). Aside from limited user-specific application configuration settings, consumers neither manage nor control the underlying cloud infrastructure, including the network, servers, operating system, storage, or even individual application capabilities.
[0065] Platform as a Service (PaaS): This provides consumers with the ability to deploy consumer-created or acquired applications on cloud infrastructure using programming languages and tools supported by the provider. Consumers neither manage nor control the underlying cloud infrastructure, including networks, servers, operating systems, or storage, but they have control over the applications they deploy and may also have control over the configuration of the application hosting environment.
[0066] Infrastructure as a Service (IaaS): This provides consumers with the capability to deploy and run any software, including operating systems and applications, on the cloud, providing them with processing, storage, networking, and other basic computing resources. Consumers neither manage nor control the underlying cloud infrastructure, but they have control over the operating system, storage, and deployed applications, and may have limited control over chosen network components (e.g., host firewalls).
[0067] The deployment model is as follows:
[0068] Private cloud: A cloud infrastructure that runs exclusively for a single organization. It can be managed by that organization or a third party, and can exist inside or outside the organization.
[0069] Community cloud: A cloud infrastructure shared by several organizations and supporting a specific community with common interests (e.g., mission, security requirements, policies, and compliance considerations). It can be managed by the organization or a third party and can exist inside or outside the organization.
[0070] Public cloud: Cloud infrastructure available to the general public or large industrial groups and owned by organizations that sell cloud services.
[0071] Hybrid cloud: A cloud infrastructure consisting of two or more clouds (private, community, or public) that remain distinct entities but are bound together by standardized or proprietary technologies that enable data and applications to be ported together (e.g., cloud bursts for load balancing between clouds).
[0072] Cloud computing environments are service-oriented, characterized by statelessness, loose coupling, modularity, and semantic interoperability. The core of computing is the infrastructure comprising a network of interconnected nodes.
[0073] Now for reference Figure 7 The diagram illustrates an illustrative cloud computing environment 50. As shown, the cloud computing environment 50 includes one or more cloud computing nodes 10 with which local computing devices used by cloud consumers can communicate. Examples of these local computing devices include, but are not limited to, personal digital assistants (PDAs) or cellular phones 54A, desktop computers 54B, laptop computers 54C, and / or automotive computer systems 54N. Nodes 10 can communicate with each other. They can be physically or virtually grouped (not shown) in one or more networks, such as private clouds, community clouds, public clouds, or hybrid clouds, or combinations thereof, as described above. This allows the cloud computing environment 50 to provide Infrastructure as a Service, Platform as a Service, and / or Software as a Service without requiring cloud consumers to maintain resources for them on their local computing devices. It should be understood that... Figure 7 The types of computing devices 54A-N shown are merely illustrative, and computing node 10 and cloud computing environment 50 can communicate with any type of computerized device via any type of network and / or network-addressable connectivity (e.g., using a web browser).
[0074] Now for reference Figure 8 This demonstrates a cloud computing environment of 50 ( Figure 7 This provides a set of functional abstractions. It should be understood beforehand that... Figure 8 The components, layers, and functions shown are merely illustrative, and embodiments of the invention are not limited thereto. As described, the following layers and corresponding functions are provided:
[0075] The hardware and software layer 60 includes hardware and software components. Examples of hardware components include: a mainframe 61; a RISC (Reduced Instruction Set Computer) based server 62; a server 63; a blade server 64; a storage device 65; and network and networking components 66. In some embodiments, software components include network application server software 67 and database software 68.
[0076] The virtualization layer 70 provides an abstraction layer from which the following examples of virtual entities can be provided: virtual server 71; virtual storage 72; virtual network 73, including virtual private network; virtual application and operating system 74; and virtual client 75.
[0077] In one example, management layer 80 can provide the following functionalities: Resource Provisioning 81: Provides dynamic acquisition of computing resources and other resources used to perform tasks within the cloud computing environment. Metering and Pricing 82: Provides cost tracking for the use of resources in the cloud computing environment and provides bills or invoices for the consumption of these resources. In one example, these resources may include application software licenses. Security Functions: Provides authentication for cloud consumers and tasks and protection for data and other resources. User Portal 83: Provides access to the cloud computing environment for consumers and system administrators. Service Level Management 84: Provides cloud resource allocation and management to meet required service levels. Service Level Agreement (SLA) Planning and Fulfillment 85: Provides pre-scheduling and procurement of cloud resources according to the SLA for its projected future needs.
[0078] Workload tier 90 provides examples of functionalities that can be leveraged in a cloud computing environment. Examples of workloads and functionalities available in this tier include, but are not limited to: mapping and navigation 91; software development and lifecycle management 92; virtual classroom instruction delivery 93; data analysis and processing 94; transaction processing 95; and data replication 96.
[0079] This invention can be a system, method, and / or computer program product. A computer program product may include a computer-readable storage medium (or media) having computer-readable program instructions thereon for causing a processor to perform aspects of the invention.
[0080] Computer-readable storage media can be tangible devices capable of holding and storing instructions for use by an instruction execution device. Computer-readable storage media can be, for example, but not limited to, electronic storage devices, magnetic storage devices, optical storage devices, electromagnetic storage devices, semiconductor storage devices, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable optical disc read-only memory (CD-ROM), digital multifunction disc (DVD), memory sticks, floppy disks, mechanical encoding devices such as punch cards or recessed structures with instructions recorded thereon, and any suitable combination of the foregoing. As used herein, computer-readable storage media should not be construed as transient signals themselves, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or electrical signals transmitted through wires.
[0081] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a suitable computing / processing device, or downloaded via a network (e.g., the Internet, a local area network, a wide area network, and / or a wireless network) to an external computer or external storage device. The network may include copper cables, optical fibers, wireless transmission, routers, firewalls, switches, gateway computers, and / or edge servers. A network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards them to a computer-readable storage medium within the suitable computing / processing device.
[0082] Computer-readable program instructions used to perform the operations of this invention may be assembly instructions, instruction set architecture (ISA) instructions, machine-dependent instructions, microcode, firmware instructions, status setting data, integrated circuit configuration data, or source code or object code written in any combination of one or more programming languages (including object-oriented programming languages such as Smalltalk, C++, etc.) and procedural programming languages (such as the "C" programming language or similar programming languages). The computer-readable program instructions may be executed entirely on the user's computer, partially on the user's computer, as a standalone software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer may be connected to the user's computer via any type of network (including local area network (LAN) or wide area network (WAN)) or may be connected to an external computer (e.g., via the Internet using an Internet service provider). In some embodiments, to perform aspects of this invention, electronic circuits, including, for example, programmable logic circuits, field-programmable gate arrays (FPGAs), or programmable logic arrays (PLAs), may execute computer-readable program instructions to personalize the electronic circuits by utilizing the status information of the computer-readable program instructions.
[0083] Various aspects of the present invention will be described herein with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer-readable program instructions.
[0084] These computer-readable program instructions may be provided to a processor of a computer or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions / actions specified in one or more blocks of a flowchart and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium that can direct a computer, programmable data processing apparatus, and / or other device to operate in a particular manner, such that the computer-readable storage medium in which the instructions are stored includes an article of writing comprising instructions for implementing aspects of the functions / actions specified in one or more blocks of a flowchart and / or block diagram.
[0085] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer, other programmable apparatus or other device, perform the functions / actions specified in one or more boxes of a flowchart and / or block diagram.
[0086] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of instructions comprising one or more executable instructions for implementing a specified logical function. In some alternative embodiments, the functions indicated in the blocks may occur in a different order than indicated in the figures. For example, two blocks shown consecutively may actually be implemented as a single step, executed simultaneously, substantially simultaneously, with partial or complete time overlap, or these blocks may sometimes be executed in reverse order, depending on the functions involved. It will also be noted that each block in the block diagrams and / or flowcharts, and combinations of blocks in the block diagrams and / or flowcharts, may be implemented by a dedicated hardware-based system that performs the specified function or action or executes a combination of dedicated hardware and computer instructions.
Claims
1. A computer-implemented method for secure data replication in a data storage environment, the method comprising: The database system receives an instruction to modify a first data element in a table in the database, the database including a first copy of the table and a second copy of the table; as well as The database system executes the following in response to the receipt: A first entry is created in a first change table, the first change table including update records to be applied to a first copy of the table, the first entry including an update value of the first data element to be applied to the first copy of the table, the update value being provided by the instruction; A second entry is created in a second change table, the second change table including update records to be applied to a second copy of the table, the second entry corresponding to the first entry, and wherein creating the second entry includes: In response to determining that the first data element is a protected data element, a secure algorithm is used to change the updated value from the first entry into ciphertext, and the ciphertext is stored in the second entry as the content of the first data element in the second change table, instead of storing the updated value; and In response to determining that the first data element is an unprotected data element, the updated value is stored in the second entry as the content of the first data element in the second change table without protecting the updated value; and The database system uses the second change table to modify the second copy of the table based on whether the first data element is protected, according to the received instruction, wherein the second copy of the table is used to respond to subsequent queries.
2. The method according to claim 1, wherein, Based on the database settings, it is determined that the first data element is protected.
3. The method according to claim 1, wherein, The first entry also includes a timestamp indicating when the first entry was created.
4. The method according to claim 3, wherein, As part of a periodic update to the table, the second entry is created, wherein the second entry is created in response to the timestamp indicating that the first entry was created after the most recent periodic update.
5. The method according to claim 1, wherein, Converting the updated value into the ciphertext includes: using a format-preserving security algorithm to modify the updated value.
6. The method according to claim 1, wherein, Converting the updated value into the ciphertext includes: changing the format of the updated value, wherein the pattern of the first change table is different from the pattern of the second change table.
7. The method according to claim 1, wherein, Converting the updated value into the ciphertext includes storing secure metadata that can restore the ciphertext back to the updated value.
8. The method according to claim 7, wherein, The security metadata is stored in the second change table.
9. A database system, comprising: Memory devices; as well as One or more processors coupled to the memory device, the one or more processors being configured to perform a method for secure data replication in a database, the database including a first copy of a table and a second copy of the table, and the method comprising: Receive an instruction for modifying a first data element in a row of the table; and In response to the received statement, execute: A first entry is created in a first change table, the first change table including update records to be applied to a first copy of the table, the first entry including an update value of the first data element to be applied to the first copy of the table, the update value being provided by the instruction; A second entry is created in a second change table, the second change table including update records to be applied to a second copy of the table, the second entry corresponding to the first entry, and wherein creating the second entry includes: In response to determining that the first data element is a protected data element, a secure algorithm is used to change the updated value from the first entry into ciphertext, and the ciphertext is stored in the second entry as the content of the first data element in the second change table, instead of storing the updated value; and In response to determining that the first data element is an unprotected data element, the updated value is stored in the second entry as the content of the first data element in the second change table without protecting the updated value; and The second copy of the table is modified using the second change table according to the received instruction based on whether the first data element is protected, wherein the second copy of the table is used to respond to subsequent queries.
10. The system according to claim 9, wherein, Based on the database settings, it is determined that the first data element is protected.
11. The system according to claim 9, wherein, The first entry also includes a timestamp indicating when the first entry was created.
12. The system according to claim 11, wherein, As part of a periodic update to the table, the second entry is created, wherein the second entry is created in response to the timestamp indicating that the first entry was created after the most recent periodic update.
13. The system according to claim 9, wherein, Converting the updated value into the ciphertext includes: using a format-preserving security algorithm to modify the updated value.
14. The system according to claim 9, wherein, Converting the updated value into the ciphertext includes: changing the format of the updated value, wherein the pattern of the first change table is different from the pattern of the second change table.
15. The system according to claim 9, wherein, Converting the updated value into the ciphertext includes storing secure metadata that can restore the ciphertext back to the updated value.
16. The system according to claim 15, wherein, The security metadata is stored in the second change table.
17. A computer program product comprising a storage medium readable by one or more processing circuits, the storage medium storing instructions executable by the one or more processing circuits to perform a method for secure data replication in a database, the database including a first copy of a table and a second copy of the table, the method comprising: Receive an instruction to change a first data element in a row of the table, and respond accordingly: A first entry is created in a first change table, the first change table including update records to be applied to a first copy of the table, the first entry including an update value of the first data element to be applied to the first copy of the table, the update value being provided by the instruction; A second entry is created in a second change table, the second change table including update records to be applied to a second copy of the table, the second entry corresponding to the first entry, and wherein creating the second entry includes: In response to determining that the first data element is a protected data element, a secure algorithm is used to change the update value from the first entry into ciphertext, and the ciphertext is stored in the second entry as the content of the first data element in the second change table, instead of storing the update value; and In response to determining that the first data element is an unprotected data element, the updated value is stored in the second entry as the content of the first data element in the second change table without protecting the updated value; and The second copy of the table is modified using the second change table according to the received instruction based on whether the first data element is protected, wherein the second copy of the table is used to respond to subsequent queries.
18. The computer program product according to claim 17, wherein, Based on the database settings, it is determined that the first data element is protected.
19. The computer program product according to claim 17, wherein, The first entry also includes a timestamp indicating when the first entry was created, and wherein the second entry is created as part of a periodic update to the table, and wherein the second entry is created in response to the timestamp indicating that the first entry was created after the most recent periodic update.
20. The computer program product according to claim 17, wherein, Converting the updated value into the ciphertext includes: changing the format of the updated value, wherein the pattern of the first change table is different from the pattern of the second change table.
Citation Information
Patent Citations
Database apparatus, method, and program
US20140325217A1
Replicated encrypted data management
US20180241561A1