CN115080659A - Database consistency method for multi-data access system - Google Patents

Database consistency method for multi-data access system Download PDF

Info

Publication number
CN115080659A
CN115080659A CN202210228377.7A CN202210228377A CN115080659A CN 115080659 A CN115080659 A CN 115080659A CN 202210228377 A CN202210228377 A CN 202210228377A CN 115080659 A CN115080659 A CN 115080659A
Authority
CN
China
Prior art keywords
data
access
time
database
exclusive
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210228377.7A
Other languages
Chinese (zh)
Inventor
M·A·马拉福
J·艾尔哈耶克
F·X·摩尔格斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Amadeus SAS
Original Assignee
Amadeus SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from EP21305288.9A external-priority patent/EP4057157B1/en
Priority claimed from US17/197,388 external-priority patent/US11893006B2/en
Application filed by Amadeus SAS filed Critical Amadeus SAS
Publication of CN115080659A publication Critical patent/CN115080659A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The present disclosure relates to a database consistency approach for a multiple data access system. The database server is communicatively coupled to a database storing a plurality of data records that are accessible by a plurality of data access systems communicatively coupled to the database server such that exclusive access to the data records for a specifiable time period is required by one of the data access systems. The database server stores an association of data records with data access systems (defining which data access systems are typically allowed to access which data records), and an exclusive access time list defining which data access systems having allowed access have been granted exclusive access to which data records for which time periods.

Description

Database consistency method for multi-data access system
Technical Field
The method relates to database technology. More particularly, they relate to database consistency of a plurality of stored data records.
Background
Database systems typically allow multiple clients to read the same data simultaneously, but provide write access to only one client at a time (e.g., by way of a write lock) to ensure consistency of the stored data records. Exclusive write access traditionally represents a performance bottleneck, as other clients with pending write accesses are queued or restricted from these write accesses as long as the client that is currently writing has been granted exclusive access to the data record.
Therefore, it is generally desirable to improve database record consistency mechanisms.
Disclosure of Invention
The present approach is generally directed to improving known database record consistency mechanisms. The main aspects are set out by the independent claims.
In this regard, according to a first aspect, a database consistency method is implemented by a database server communicatively coupled to a database storing a plurality of data records. The plurality of data records are accessible by a plurality of data access systems communicatively coupled to the database server such that one of the data access systems requires (close) exclusive access to the data records for a specifiable period of time. The database server stores an association of data records with data access systems that defines which data access systems are typically allowed to access which data records, and an exclusive access time list that defines which data access systems with allowed access have been granted exclusive access to which data records during which time periods. In response to receiving a first request from a first data access system of the data access systems requesting exclusive access to a particular data record for a first period of time, the database server checks the stored association to determine whether to allow the first data access system to access the particular data record. If so, the database server checks if exclusive access to the particular data record is still available within the first time period. If so, the database server updates the exclusive access time list to grant the first data access system exclusive access to the particular data record for the time period and to exclude all other data access systems from accessing the particular data record for the first time period.
According to a second aspect, there is provided a database server arranged to implement the database consistency method described above.
According to a third aspect, a computer program is provided having instructions storable on a computer readable medium. The instructions, when executed, cause the database server to perform the database consistency method described above.
Further refined aspects are set out by the dependent claims and the detailed description of exemplary embodiments given below.
Drawings
Aspects and examples of the present disclosure are described with reference to the following drawings, in which:
FIG. 1 illustrates a high-level architecture of a database system as employed herein.
FIG. 2 is a message diagram visualizing the activities of a data consistency process.
FIG. 3 is a flow diagram of further activities of the visual data consistency process.
FIG. 4 is a message diagram illustrating yet further activities of the data consistency process.
FIG. 5 illustrates various time periods during which exclusive access to a data record may be requested.
FIG. 6 is a message diagram illustrating yet further activities of the data consistency process.
FIG. 7 depicts an implementation example of an association that defines a data access system that is generally allowed to access data records.
FIG. 8 illustrates the internal structure of components of a database server arranged to perform the mechanisms taught herein.
Detailed Description
Fig. 1 shows a schematic diagram of a database system 1 implementing the method. The database server 2 is communicatively coupled to the database 5 via a communication interface 7. The database 3 may be of any given type (e.g., a relational database, NoSQL database, key-value database, document or XML-based database, object or object-oriented database, and/or other database). The database 5 may actually comprise a plurality of databases or database instances. The database 5 may be co-located (e.g., in the same machine, the same room, or the same data center) and/or remotely located with the database server 2. Thus, the communication interface 7 may include one or more of a bus, a local area network connection, a wide area network connection, a wireless network (such as a 3G/4G/5G network according to ETSI/3GPP specifications and/or a WiFi/WLAN network according to IEEE specifications), the Internet.
The database 5 stores a plurality of data records 6, the data records 6 being accessible (such as retrievable and alterable) via the database server 2 by a plurality of data access systems 8 communicatively coupled to the database server 2. The data access system 8 may be a client system (such as workstations, mobile terminals, and applications), and/or a server system (such as other database systems or web servers).
The database server 2 is arranged to receive and process database requests from the data access system 8. More specifically, the database server 2 processes a database response that includes at least one request parameter (typically a plurality of request parameters indicated in the database request). The database request may be a read request and/or a write request. The database server 2 is communicatively coupled to a data access system 8 through a communication interface 9. The communication interface 9 may utilize one or more local and/or wide area networks (such as the internet), personal access networks (such as bluetooth-based connections), and the above-described communication technologies (such as 3G/4G/5G networks and/or WiFi/WLAN networks).
In general, the database requests and data records stored by the database 3 of the database system 1 may relate to any type of content. The method described herein is generally applicable to any content stored by the database system 1 and sought or addressed by a database request. To explain the methods of the present disclosure, some exemplary use cases are set forth further below. These methods may also be related to other examples in a similar manner.
Typically, database systems employ techniques to ensure ACID properties (atomicity, consistency, isolation, durability). In particular, consistency in a database system refers to the requirement that any given database transaction only alter the relevant data records in an allowed manner. Any data written to the database should be valid according to all defined rules, including constraints, cascades, triggers, and any combination thereof. A potential conflict may arise when multiple data access systems 8 simultaneously request write access to the same (or overlapping) data records.
In this regard, to facilitate data consistency, the present method provides a mechanism to grant exclusive access to the data records 6 to the respective data access systems 8 for a particular period of time. The plurality of data records 6 stored by the database 5 are typically accessible by the data access systems 8 such that exclusive access to one or more data records 6 for a specifiable period of time is required by one of the data access systems 8. The database server 2 manages access to the data access system 8 by at least two types of access control information. On the one hand, the database server 2 stores an association 3 of data records 6 with data access systems 6, which defines which data access systems 6 are generally allowed to access which data records 6. Database server 2, on the other hand, stores a list of exclusive access times 4 that define which data access systems 8 having allowed access, as specified by association 3, have been granted exclusive access to which data records 6 during which time periods.
Associations 3 and/or exclusive access time lists 4 may be stored by database server 2 itself, or remotely (e.g., at one or more different servers) accessible by database server 2.
Both association 3 and exclusive access time list 4 are utilized by database server 2 to grant or deny access to data records 6 in response to a database request. This is visualized by fig. 2 at a more general level of abstraction. In response to receiving a first request 10A from a first data access system 8A of the data access systems 8, the first request 10A requesting exclusive access to a particular data record 6A (meaning one or more requested data records 6A stored in the database 5) for a first specified time period T1, the database server 2 checks the stored association 3 to determine 11 whether the first data access system 8A is generally allowed to access the particular data record 6A. To this end, the first request 10A (also referred to as an access request) indicates at least the identity of the requesting data access system 8A, the particular data record 6A, and a first time period T1. If it is positive, i.e. the database server 2 determines that the first data access system 8A is normally allowed to access the particular data record 6A, the database server 2 checks 12, based on the exclusive access time list 4, whether exclusive access to the particular data record is still available within a specified first time period T1. If so, the database server 2 updates 13 the exclusive access time list 4 to grant the first data access system 6A exclusive access to the particular data record 8A for a specified period of time and to exclude all other data access systems 8B access to the particular data record 6A for a specified first period of time T1.
In some embodiments, the database server 2 returns an access grant notification 14 to the first data access system 8A, notifying the first data access system 8A that exclusive access to the particular data record 6A has been granted for the first time period T1. The first data access system 8A is then enabled to modify or update the particular data record 6A during time interval T1 with one or more corresponding write requests, while excluding any write access to the particular data record 6A by the other data access systems 8B during the first time period T1.
In some embodiments, the write request of the first data access system 8A may be routed via the database server 2 to ensure that the write request has been previously granted by the process according to fig. 2. To this end, in response to receiving a write request from the first data access system 8A, the database server 2 queries the exclusive access time list 4 and verifies that the first data access system 8A was previously granted exclusive access to the particular data record 6A during the first time interval T1. If so, the write request from the first data access system 8A is allowed by the database server 2.
Fig. 3 presents a flow chart of a further optional branch of the visualization process. After receiving the access request 10A from the data access system 8, the database server 2 determines 11, using the association 3, whether the data access system 8 is generally allowed to access the data record 6. In response to determining that the data access system 8 is not allowed to access the data records 6 ("NO"), the database server 2 denies 15 access to the requested data records 6. Access denial 15 may be accomplished by returning a denial message to the requesting data access system 8.
In response to determining that the data access system 8 is generally permitted to access the data records ("yes"), the database server queries the exclusive access time list 4 to determine 12 whether exclusive access to the data records is still available during the first time period. In response to determining that exclusive access to the data record is no longer available during the first time interval ("no"), particularly because exclusive access to the data record has been granted to another data access system 8, the database server 2 denies access to the data record 15. Likewise, the denial 15 may be implemented by returning a denial message to the requesting data access system 8.
In response to determining that exclusive access to the data records is still available during the first time interval ("yes"), the database server grants access 13, 14 to the data access system to modify the data records during the first time interval. As described above, the access grant includes updating 13 the exclusive access time list 4 to mark that exclusive access to the data record for the duration of the first time has been granted to the requesting data access system 8A, thereby precluding any write access to the data record by the other data access system 8B during the first time interval. The access grant may also include returning an access grant notification 14 to the requesting data access system 8.
During the first time period, the database server 2 may receive a plurality of write requests 16 from the data access system 8 to modify the data records. Database server 2 checks and confirms with exclusive access time manifest 4 that data access system 8 has previously been granted exclusive access to data records during the first time period. Thus, write requests 16 from the data access system 8 are allowed by the database server 2 (e.g., by routing the requests to the database 5).
The present mechanism provides data consistency by ensuring exclusive access (e.g., write access) to one or more data records 6 by one data access system 8A during a given time period, particularly for events in which a second data access 8B requests exclusive access to at least one of the one or more data records 6 for at least a sub-period of the given time period. In response to receiving a second request from a second data access system 8B of the data access systems 8 requesting exclusive access to a particular data record 6A for at least a first sub-period of the first specified time period, the database server 2 determines, based on the updated list of exclusive access times 4, that exclusive access is not available for the first sub-period of the specified first time period, and returns a deny response to the second data access system 8.
This situation is visualized by fig. 4, whose message exchange takes place after the message sequence of fig. 2. The database server 2 receives a second request 10B from a second data access system 8B. Similar to the first request 10A, the second request 10B indicates at least the identity of the second data access system 8B, the particular data record 6A for which access is requested, and the requested (second) time period T2. As described above, according to the present exemplary case, the second period T2 includes at least a sub-period of the first period T1. Thus, both the time periods T1 and T2 may overlap such that the second time period T2 covers a portion of the first time period T1. The second time period T2 may also be a true sub-portion of the first time period T1, or may coincidentally be equal to the first time period T1.
In response to receiving the second request 10B, the database server 2 first checks based on the association 3 whether the second data access system 8B is generally allowed to access the particular data record 6A. If so, the database server 2 checks whether exclusive access to the particular data record 6A is still available for a specified second time period T2 based on the previously updated list of exclusive access times 4. Under the above assumption (under which the assumption that the second time period T2 includes at least a sub-period of the first time period T1), the database server 2 determines that exclusive access to a particular data record 6A has been granted to another data access system (i.e., the first data access system 8A) for at least a portion of the second time period T2. Thus, the database server 2 cannot grant the second data access system 8B exclusive access to a particular data record 6A for the requested period of time. As a result, in some embodiments, the database server 2 returns a denial notification 17 to the second data access system 8B to indicate that the second request 10B was denied.
In general, in this manner, database server 2 is able to prevent any conflicting access (such as write request 16) to data records by data access system 8 during a time period in which exclusive access has been granted to the data access system. Access requests with indicated time periods and data records provide time period based access management that has resolved conflicting write requests at a logically higher or earlier layer (the access layer), from the outset having avoided issuing write requests that are to be denied due to locks that have currently been activated. In this way, the present mechanism may help reduce data record access traffic. Checking for general permissions facilitates efficient access management because potentially costly (in terms of computing resources and response time) queries to exclusively access the time list 4 can be avoided for data access systems 8 that are not generally permitted.
Note that non-conflicting access to data records may still exist outside of the current regime. For example, a read request may occur and be granted at any time regardless of the entries in exclusive access time list 4, i.e., access exclusion refers to a write request, not a read request. In other examples, a data access system 8 excluded from accessing a particular data record 6 for a first period of time may not be able to read or view the particular data record 6. In these or further examples, the ownership concept may be implemented by the present mechanism, i.e. exclusive access means that the first data access system 8A requires ownership of a particular data record 6 within the granted time period, while the other data access systems 8B are excluded from at least one of manipulating, reading, viewing, copying, sending, printing and other kinds of rendering or utilizing the particular data record 6. The specificity of exclusive access to the first data access system 8A and exclusive access to the other data access systems 8B is therefore dependent on the particular use case in which the method is implemented.
Further, the database system 1 may include a data access system 8 that does not operate in accordance with the present mechanism. For example, the database system 1 may include various types of data access systems 8, where a first type of data access system 8 operates according to the present mechanism, while a second type of data access system 8 is allowed to attempt access to the data records 6 at any time without having applied for an exclusive access grant within some previous period of time.
Some embodiments provide further optional improvements over the scenario of fig. 4. For example, the denial notification 17 may include an indication of one or more sub-periods of the specified second time period during which exclusive access is still available according to the exclusive access time list. Referring to FIG. 5, the first data access system 8A has granted exclusive access to a particular data record 6 for a first time period T1. The second data access system 8B requests exclusive access to a particular data record 6 for a second time period T2, which in the non-limiting example of fig. 5, is partially overlapping with the first time period T1. Database server 2 may determine this by an exclusive access check 12 (fig. 4).
The database server 2 may then deny exclusive access to the particular data record 6 overlapping the time sub-period 18, i.e. the denial notification 17 may indicate that the overlapping time period 18 is denied. However, the access request of the second data access system 8B may be granted with respect to the non-overlapping time sub-period 19. Thus, as indicated in fig. 4 (dashed line, i.e. optionally activity 13), in this case database server 2 updates 13 exclusive access time list 4 and enters second data access system 8B because exclusive access has been granted during non-overlapping time sub-period 19. Further, in addition to the denial notification 17, the database server 2 then returns an access grant notification 14 to the second data access system 8B for a non-overlapping time sub-period 19. Note that both notifications 17 and 14 may be returned to the second data access system 8B in a single message.
In some embodiments, the grant of access for the non-overlapping time sub-period 19 is effected in response to a further subsequent (third) access request from the second data access 8B. For example, the denial notification 17 may indicate an overlapping time sub-period 18 and/or a non-overlapping time sub-period 19, thereby enabling the second data access system to prepare subsequent access requests within the adjusted second time period T2' (fig. 5) that excludes the overlapping time sub-period 18 from the access request. Assuming, at the same time, that no other data access system 8 has been granted exclusive access to a particular data record for any sub-period of the adjusted second time period T2', a subsequent access request by the second data access system 8B is granted by the database server 2, similar to the process of fig. 2 that has been described above.
Depending on the particular use case, the database server 2 and the data access system 8 may manage exclusive access to the data records 6 with a particular time granularity. For example, in some embodiments, the minimum unit of time for the time period is seconds, i.e., the data access may request exclusive access to the data record for several seconds. In other embodiments, the minimum unit of time is minutes, hours, or days.
The exclusive access grant may be cancelled again (fig. 6), similar to the method described with reference to fig. 2-4. At this point, the data access system 8 sends an access cancellation request 20, which access cancellation request 20 is received by the database server 2. Access cancellation request 20 includes at least an indication of the granted exclusive access to be cancelled (e.g., a time period and a data record (such as exclusive access to first data access system 8A for a particular data record 6A at a first time period T1)). In response to receiving access cancellation request 20, database server 2 queries 21 exclusive access list 4 to determine whether exclusive access to database record 6A was previously granted to data access system 8A within time period T1. If the previously granted exclusive access indicated by the access cancel request is found in exclusive access list 4, database server 2 updates 22 the exclusive access list accordingly, i.e., deletes the previously granted exclusive access from exclusive access list 4, thereby canceling the previously granted exclusive access again. Note that activities 21 and 22 may also be implemented by a single message to exclusive access time list 4. The database server 2 may acknowledge the cancellation by an access cancellation notification 23 returned to the data access system 8.
Further optional details of association 3 are described with reference to fig. 7. For example, in some embodiments, the association 3 is stored as one or more data access system identifiers within a data structure of the data records, wherein each data access system identifier indicates one of the data access systems that is allowed to generally access the respective data record. This is visualized by fig. 7, which shows a simplified excerpt of a plurality of data records 6 stored by the database 5. The data record includes a record Identifier (ID), a plurality of parameters (three in the non-limiting example of fig. 7), and a field holding a data access system identifier. For example, data records having identifiers '100', '101', and '110' are generally accessible by data access systems a and B (e.g., the first and second data access systems 8A and 8B described above as referred to in fig. 2-6), while other data records are defined as being accessible by other data access systems 8. The data access system 8 that is generally permitted to access the data record 6 may be specified by an enumerated value, such as the identity of the corresponding data access system. This is also referred to as multi-tagging, as each data record may include multiple data access system identifiers (tags). The identifier may also specify a predefined group of data access systems 8. For example, a data record having an ID of '011' is defined as generally accessible by any of the data access systems 8 of database system 1.
In some embodiments, after initial storage of a particular data record 6A in the database, the associations 3 are updated to define which data access systems 8 are allowed to generally access the particular data record 6A based at least on the association criteria 8 specified by the data access systems 8. For example, at some point in time, an additional data record with an identifier of '111' with values for the three parameters is stored in the database 5 (visualized by italics in fig. 7). The database 5 and/or database server 2 then determines which data access system 8 of the database system 1 is normally allowed to access the newly added data records. This determination is made, for example, using the usual access permission rules of the data access system 8 that define the association criteria.
This may be accomplished in various ways. For example, the data access system 8 may set a number of criteria that specify the characteristics of the data records 6 to which access by the data access system 8 should generally be possible. The data access system 8 may set criteria at a location accessible by the database server 2. When a new data record 6 is added to the database 5, the database server 2 examines the usual access permission rules made up of the standards of the various data access systems 8 and determines which data access system 8 should be permitted to access the new data record in general. The database server 2 then updates the associations 3 accordingly, for example by inserting an identifier of the respective data access system 8 in the corresponding fields of the data records (data access systems a and D in the example of fig. 7). The database server 2 may then notify those data access systems 8 that have general access according to the definition of the association 3. To this end, in some embodiments, the database server 2 sends a notification to the data access system 8 that it has been associated with a particular data record according to the updated association 3 to indicate the presence of the particular data record 8 in the database 5.
According to other embodiments, the database 5 and/or database server 2 publishes information about the newly added and stored data records 6 to the data access system 8, and the data access system 8 determines which data records to register for general access based on the aforementioned criteria. As described above, the data access system 8 then returns to the database server 2 an indication of which of the newly added and stored data records should be allowed general access, and the database server 2 updates the associations 3 accordingly. The database server 2 may then return confirmation to the data access system 8 regarding their new entries for the data records 6 added in the updated association 3. In these embodiments, the above-described notification indicating the presence of the newly stored specific data record 6A may consist of an acknowledgement and publication of information about the newly added data record 6.
The messages employed by the processes shown in fig. 2 through 6 may have a common data structure with fields (information elements) such as message type, data record identification, time period identification, data access system identity, reason for the message, etc., defined by a protocol specification at the application layer of the OSI reference model, and may be implemented by one skilled in the art given the requirements of a particular use case.
In some embodiments, exclusive access time list 4 is implemented as a cache, as compared to storage in a standard database, in order to allow a faster determination of the period of time for which exclusive access is still available. In some embodiments, exclusive access time list 4 is implemented as part of database 5. For example, the database table specifies (e.g., using the data record identifier of fig. 7 as a key) for each of the data records 6 which data access system 8 is granted exclusive access during which time periods, and which time periods are still idle. In some embodiments, exclusive access to the time list 4 may be implemented using a calendar application that already provides time management services.
The above-described mechanisms may be advantageously applied to various use cases. For example, they can be utilized in state-of-the-art database systems to manage write access to the same data records from multiple clients over time in a deterministic manner, thereby avoiding (or at least reducing) concurrent write access, and thereby improving write access efficiency.
Further or other use cases may involve improving the efficiency of access to data records stored in multiple locations, such as multiple geographically distributed instances of the database 5. In such an architecture, the database server 2 can ensure that only one version of a data record stored in multiple locations is modified at a time to avoid inconsistencies and potentially costly (in terms of computing resources and time) conflict resolution mechanisms. Various other database technology use cases are contemplated.
Fig. 8 is a diagrammatic representation of the internal components of a computing machine 100 that implements the functionality of the database server 2. Similar computing machines may also implement one or more data access systems 8 and the aforementioned database 5. The computing machine 100 includes a set of instructions to cause the computing machine 100, when executed by the computing machine 100, to perform any of the methods discussed herein. The computing machine 100 includes at least one processor 101, a main memory 106, and a network interface device 103, which communicate with each other via a bus 104. Optionally, the computer 100 may also include a static memory 105 and a disk drive unit. A video display, alphanumeric input device, and cursor control device may be provided as examples of user interface 102. The network interface device 103 connects the computing machine 100 implementing the database server 2 to other components of the database system 1 (such as the data access system 8 and the database 5), or any other component.
The computing machine 100 includes memory 106, such as main memory, Random Access Memory (RAM), and/or any other volatile storage. Memory 106 may store temporary data and program data to facilitate the functionality of database server 2. For example, database server 2 may maintain a cache 107 that stores data records 6 that were recently retrieved from database 5. Memory 106 may also store computer program data 108 to implement the functionality for processing requests from data access system 8 as described above. The memory 106 may also temporarily store data 109 comprising context or state data for the database server 2, for example to keep the data available for potential subsequent requests (e.g., subsequent access requests with adjusted time periods as described above with reference to fig. 5).
A set of computer executable instructions (computer program code 108) embodying any one, or all, of the methodologies described herein reside, completely or at least partially, within or on a machine-readable storage medium such as the memory 106. For example, instructions 108 may include software processes that implement request processing functions of database server 2 to query and update association 3 and exclusive access list 4. The instructions 108 may implement the functionality to receive and respond to database requests from the data processing system 8, as well as to query the database 5 and retrieve data records from the database 5.
The instructions 108 may also be transmitted or received as a propagated signal via the user interface 102 or via the internet through the network interface device 103. Communications within the computing machine are performed via bus 104. The basic operation of the computing machine 100 is controlled by an operating system, which is also located in the memory 106, the at least one processor 101, and/or the static memory 105.
In general, the routines executed to implement the embodiments, whether implemented as part of an operating system or a specific application, component, program, object, module or sequence of instructions, or even a subset thereof, may be referred to herein as "computer program code" or simply "program code". The program code typically comprises computer-readable instructions that are resident at various times in various memory and storage devices in the computer, and that, when read and executed by one or more processors in the computer, cause the computer to perform the operations necessary to execute operations and/or elements embodying the various aspects of the embodiments of the invention. The computer readable program instructions for carrying out operations of embodiments of the present invention may be, for example, source or object code in assembly language or any combination of one or more programming languages.
In certain alternative embodiments, the functions and/or actions specified in the flowcharts, sequence diagrams and/or block diagrams may be reordered, processed serially and/or processed simultaneously without departing from the scope of the present invention. Further, any of the flow diagrams, sequence diagrams and/or block diagrams may include more or fewer blocks than those illustrated according to embodiments of the invention.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of embodiments of the invention. It will be further understood that the terms "comprises" and/or "comprising," when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. Furthermore, to the extent that the terms "includes," has, "" with, "" consists of, "or variants thereof are used in either the detailed description or the claims, such terms are intended to be inclusive in a manner similar to the term" comprising.
While the description of various embodiments has illustrated the invention in its entirety and while these embodiments have been described in considerable detail, it is not the intention of the applicants to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. The invention in its broader aspects is therefore not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departing from the spirit or scope of the applicant's general inventive concept.

Claims (10)

1. A database consistency method implemented by a database server communicatively coupled to a database storing a plurality of data records, wherein each of the plurality of data records is accessible by a plurality of data access systems communicatively coupled to the database server to require exclusive access to the data records for a specifiable time period by one of the data access systems, the method comprising:
-storing
The association of o data records with data access systems, defining which data access systems are generally permitted to access which data records, and
o an exclusive access time list defining which data access system with allowed access has been granted exclusive access to which data records during which time periods;
-in response to receiving a first request from a first one of the data access systems requesting exclusive access to a particular data record for a first period of time,
o checking the stored association to determine whether the first data access system is allowed to access the particular data record, and if so, then
o checking whether exclusive access to a particular data record is still available within a first time period, and if so, then
And o updating the exclusive access time list to grant the first data access system exclusive access to the particular data record for the period of time and to exclude all other data access systems from accessing the particular data record for the first period of time.
2. The method of claim 1, further comprising:
-in response to receiving a second request from a second data access system of the data access systems requesting exclusive access to a particular data record for a second time period comprising a sub-period of at least the first time period, determining that exclusive access is not available for the second time period based on the updated list of exclusive access times, and returning a denial notification to the second data access system.
3. The method of claim 2, wherein the denial notification comprises an indication of one or more sub-periods of a second time period in which exclusive access is still available according to the exclusive access time manifest.
4. The method of any of claims 1 to 3, wherein the association is stored as one or more data access system identifiers within a data structure of the data records, wherein each data access system identifier indicates one of the data access systems that is allowed to generally access the respective data record.
5. The method of any of claims 1 to 4, further comprising:
-after initial storage of a particular data record in the database, updating the association to define which data access system is allowed to access the particular data record generally based at least on association criteria specified by the data access system.
6. The method of claim 5, further comprising:
-sending a notification to the data access system already associated with the particular data record in accordance with the updated association to indicate the presence of the particular data record in the database.
7. A database server implementing a database consistency mechanism, the database server communicatively coupled to a database storing a plurality of data records, wherein each of the plurality of data records is accessible by a plurality of data access systems communicatively coupled to the database server for requiring exclusive access to the data records for a specifiable time period by one of the data access systems, the database server arranged to:
-storing
The association of o data records with a data access system, defining which number is normally allowed
According to which data record the access system accesses, an
o exclusive access time List, defining which data access is allowed
Asking the system which has been granted the exclusivity of which data record during which time periods
Accessing;
-in response to receiving a first request from a first one of the data access systems requesting exclusive access to a particular data record for a first period of time,
o checking the stored association to determine whether the first data access system is allowed to access the particular data record, and if so, then
o checking whether exclusive access to a particular data record is still available within a first time period, and if so, then
And o updating the exclusive access time list to grant the first data access system exclusive access to the particular data record for the period of time and to exclude all other data access systems from accessing the particular data record for the first period of time.
8. The database server of claim 7, further arranged to perform the method of any of claims 2 to 6.
9. A computer program to be executed by a database server implementing a database consistency mechanism, the database server communicatively coupled to a database storing a plurality of data records, wherein each of the plurality of data records is accessible by a plurality of data access systems communicatively coupled to the database server for requiring exclusive access to the data record for a specifiable time period by one of the data access systems, the computer program, when executed by the database server, causing the database server to:
-storing
The association of data records with data access systems, defining which data access systems are generally permitted to access which data records, an
o an exclusive access time list defining which data access system with allowed access has been granted exclusive access to which data records during which time periods;
-in response to receiving a first request from a first one of the data access systems requesting exclusive access to a particular data record for a first period of time,
o checking the stored association to determine whether the first data access system is allowed to access the particular data record, and if so, then
o checking whether exclusive access to a particular data record is still available within a first time period, and if so, then
And o updating the exclusive access time list to grant the first data access system exclusive access to the particular data record for the period of time and to exclude all other data access systems from accessing the particular data record for the first period of time.
10. The computer program of claim 9, which, when executed by the database server, causes the database server to perform the method of any of claims 2 to 6.
CN202210228377.7A 2021-03-10 2022-03-10 Database consistency method for multi-data access system Pending CN115080659A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
EP21305288.9A EP4057157B1 (en) 2021-03-10 2021-03-10 A database consistency method for multiple data access systems
US17/197,388 2021-03-10
US17/197,388 US11893006B2 (en) 2021-03-10 2021-03-10 Database record consistency mechanisms
EP21305288.9 2021-03-10

Publications (1)

Publication Number Publication Date
CN115080659A true CN115080659A (en) 2022-09-20

Family

ID=83248182

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210228377.7A Pending CN115080659A (en) 2021-03-10 2022-03-10 Database consistency method for multi-data access system

Country Status (1)

Country Link
CN (1) CN115080659A (en)

Similar Documents

Publication Publication Date Title
US8745707B2 (en) Method and apparatus providing optimistic locking of shared computer resources
US6965893B1 (en) Techniques for granting shared locks more efficiently
JP4916432B2 (en) Application programming interface for managing the distribution of software updates in an update distribution system
CA2636810C (en) Anticipatory changes to resources managed by locks
US10275347B2 (en) System, method and computer program product for managing caches
US6487552B1 (en) Database fine-grained access control
US7254578B2 (en) Concurrency classes for shared file systems
US20090037366A1 (en) Online index builds and rebuilds without blocking locks
US7937432B2 (en) State transition management according to a workflow management policy
US8375424B2 (en) Replicating selected secrets to local domain controllers
US20050038783A1 (en) Database fine-grained access control
US20170054761A1 (en) Lock-free updates to a domain name blacklist
WO2009122527A1 (en) Virtual integrated management device for performing information update process for device configuration inforamtion management device
US6633870B1 (en) Protocols for locking sharable files and methods for carrying out the protocols
US10187391B2 (en) Data access by external users
EP4057157B1 (en) A database consistency method for multiple data access systems
KR20150033368A (en) Method and apparatus for security domain notification in trusted execution environment
CN115080659A (en) Database consistency method for multi-data access system
US20200042534A1 (en) Moving replicated data in a cloud environment
US11522863B2 (en) Method and system for managing resource access permissions within a computing environment
US11893006B2 (en) Database record consistency mechanisms
US20060136509A1 (en) Techniques for transaction semantics for a database server performing file operations
CN111259375A (en) Processing method and device for access request applied to operating system of Internet of things
JP3970524B2 (en) Exclusive control method between multiple operations
WO2020141170A1 (en) A system and method for consent management

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination