EP0273166A1 - Method and apparatus for preventing dead-locks in distributed data base systems - Google Patents

Method and apparatus for preventing dead-locks in distributed data base systems Download PDF

Info

Publication number
EP0273166A1
EP0273166A1 EP87116740A EP87116740A EP0273166A1 EP 0273166 A1 EP0273166 A1 EP 0273166A1 EP 87116740 A EP87116740 A EP 87116740A EP 87116740 A EP87116740 A EP 87116740A EP 0273166 A1 EP0273166 A1 EP 0273166A1
Authority
EP
European Patent Office
Prior art keywords
node
deadlock
waiting
lock
local
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.)
Granted
Application number
EP87116740A
Other languages
German (de)
French (fr)
Other versions
EP0273166B1 (en
Inventor
Dietmar Karl
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.)
Siemens AG
Original Assignee
Siemens AG
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
Application filed by Siemens AG filed Critical Siemens AG
Priority to AT87116740T priority Critical patent/ATE61677T1/en
Publication of EP0273166A1 publication Critical patent/EP0273166A1/en
Application granted granted Critical
Publication of EP0273166B1 publication Critical patent/EP0273166B1/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores
    • G06F9/524Deadlock detection or avoidance

Definitions

  • the invention relates to a method and an arrangement for avoiding global system deadlocks when processing global transactions in distributed database systems with several nodes according to the preamble of claim 1.
  • One of these problems is the synchronization of competing global transactions, in particular the avoidance of global deadlocks, because, for example, two or more transactions block each other waiting for the release of locked objects in order to be able to continue working - "Informatik-Spektrum", Springer Verlag, 1981, Issue 4, pages 175 to 184 and 261 to 270 or "Computing Serveys, Vol. 13 No. 2 June 1981, pages 149 to 183.
  • the solution known from DE-OS 33 30 529.3 is based on the principle of the time lapse check, even if the monitoring is not carried out in the original node of a global transaction, but rather in the foreign node executing a partial transaction, provided that this partial transaction is there on a waiting partial transaction of another global transaction has accrued. This can reduce the likelihood that a transaction will be unnecessarily rolled back. However, an unnecessary reset cannot be ruled out either because the decision about it is also based on a presumption.
  • the object of the invention is therefore to control competing global transactions so that global deadlocks can be clearly identified and transactions can only be reset without the monitoring by a central point and with very little, the connection lines between the nodes not noticeably burdensome message exchange there is actually a jam.
  • a lock event when processing a global transaction means that all subtransactions not directly affected by the lock are treated as locked due to the lock messages and entered in the corresponding local waiting graph table if they have not yet been entered. Since these other subtransactions are inevitably in the dormant state, they always form the end link of the respective waiting graph, so that these waiting graphs are temporarily linked together to form a global waiting graph by the additional destination information about the node causing the block with the local waiting graph there that further messages about blocking relationships must be exchanged in the individual nodes. The performance of the responsible global tran This does not affect transaction control, since it is in the waiting state anyway due to the lock event.
  • Global deadlocks can only be expected if a local waiting graph is coupled together with at least one other to form a global waiting graph. This can be possible for two reasons, namely if the end link of an existing local waiting graph is to be marked as "REMOVED LOCKED", or if a subtransaction occurs on a waiting graph already marked as "REMOVED LOCKED". In both cases, therefore, a deadlock analysis is initiated, which is gradually expanded to the local waiting graphs of the nodes involved, which are linked in sequence by the destination, until an open end of the local waiting graph is reached or a deadlock is detected.
  • the new solution principle is also based on a graph method with reliable detection of deadlocks.
  • there is no need for a higher-level graph management of the system and the number of messages loading the system is on average lower than in the known methods.
  • the scope of the messages to be exchanged is also very small.
  • the latter also applies in particular to the information on the deadlock analysis orders, whereby according to the development according to claim 2, only two identity details are required for two global transactions, namely a constant as a check criterion and an identity that can be derived from the end link of the requesting node in order to find the associated waiting graph in the nodes to be controlled.
  • the test is always limited to comparing the identity of the respective end link with the test criterion supplied. If there is a match, there is also a deadlock loop which must be broken in a known manner.
  • the triggering reasons for a deadlock analysis are only necessary conditions. They do not yet say that there is actually a deadlock. As a result, not every deadlock analysis that is initiated immediately will result in a deadlock being detected, especially not if the lockout event triggering the deadlock analysis is short-lived. According to the development of the invention according to claim 3, the lock feedbacks to the controlling global transaction control are therefore delayed by a predetermined period of time and a deadlock analysis to be initiated due to the same lock event is only released if the triggering lock condition still exists after the predetermined period of time. The system is also relieved of unnecessary messages in this way.
  • time stamps used here have a similarity to the time stamps in the known method described above.
  • the time stamps used here only serve as a comparison value for starting and stopping a deadlock analysis, but not for determining the sequence of the events occurring in the various nodes of the system.
  • the clocks of the individual nodes therefore do not need to be synchronized with one another. Controlled by the time stamps, the triggering event with the larger time value in the loop direction always overruns the local time stamp values and overruns them in a closed waiting graph loop.
  • the cheapest locally blocked subtransaction is reset in the node in which the deadlock was detected, but not a subtransaction in another node, which would require additional effort for message transmission and a delay in resetting.
  • Further advantages of the invention result from further developments in accordance with patent claims 6 to 9, which relate to the utilization of the control devices for the distributed processing for the various messages and messages, and for the monitoring of the occasions for initiating a deadlock analysis and for carrying it out, whereby the control devices work independently of the database control devices in that the necessary information is kept accessible by both in tables. In this way, the actual data processing within the distributed database system is only minimally impaired by the message exchange between the individual nodes required within the scope of the invention.
  • Connection line failures also have no effect if, in the case of a non-releasable jamming analysis job, the marking as "REMOVED LOCKED" is canceled again during the subtransaction triggering the job and this is then placed back under normal local time monitoring to prevent permanent locks.
  • patent claim 10 consists of a number of devices which are assigned to their tasks partly according to the respective global transaction control and partly to the respective node as a whole. These devices can be implemented in a known manner by means of memory-programmed sequences.
  • the actual data processing within the distributed database system remains the least impaired if, according to the development of claim 11, the devices that perform the individual control tasks and are assigned to the respective node as a whole are assigned to the control devices for the distributed processing as far as possible, thereby relieving the database control devices accordingly, separate order memories and the waiting graph table provided with access options both by the database control devices and by the control devices ensure largely independent work of the individual devices.
  • FIG. 1 shows the resulting waiting constellation in a distributed database system with three nodes K1, K2 and K3 if a global transaction GTA, which is designated T1 or T2 or T3, is carried out in each node under the supervision of the respective global transaction control.
  • Each of these global transactions initially works with a sub-transaction STAU or STA21 or STA31 in its own node and blocks a data object OB there, namely objects A or B or C.
  • the global transaction T1 wants to access the object with a second sub-transaction STA12 B in node K2, transaction T2 with a second subtransaction STA22 access object C in node K3 and transaction T3 with a second subtransaction STA32 access object A in node K1.
  • the subtransaction STA12, STA22 and STA32 cannot be processed.
  • the three global transaction controls in the three nodes are thus waiting which can last forever because a system deadlock has occurred, which is externally recognizable by the concatenation of the arrows representing the individual subtransactions to form a closed sleep according to a closed global waiting graph.
  • one of the subtransactions and thus the entire associated global transaction for example the subtransaction STA31 and thus the global transaction T3, must be reset so that the system is operational again.
  • FIG. 2 shows a flow chart of the method ensuring this according to the invention when applied to the order constellation on which FIG. 1 is based.
  • the representation in turn captures the three nodes K1, K2 and K3 with the subtransactions STA11 or STA21 or STA31 which are currently being processed or are active. At any time, an order for the execution of the subtransaction STA12 from the node K1 to the node K2 is then issued, which requires the same object as the transaction STA21 there. The subtransaction STA12 therefore runs on a lock through the subtransaction STA21. Since the latter has not yet been entered in the local waiting graph table, the new waiting graph WG21 shown is entered in the waiting graph table.
  • a lock confirmation SRM is sent back to the ordering node K1, which causes an entry of the new waiting graph WG11, consisting of the subtransaction STA11 with the marking as "REMOVED LOCKED" and with the destination K2 in the circle for the locking node in the waiting graph table there .
  • the same processes take place in succession when the order for subtransaction STA22 is sent by node K2 to node K3 and when the order for subtransaction STA32 is sent by node K3 to node K1, so that ultimately the wait graphs WG12, WG22 and WG32 are created .
  • the subtransaction STA32 in node K1 runs directly on the subtransaction STA11 marked as "REMOVED LOCKED" as a lock, so that the other trigger condition for a deadlock analysis DLA is given.
  • the aim of the order for the deadlock analysis is node K2 with the identity of the Giobia transaction T1 derived from the subtransaction STAU for searching for the waiting graph WG22 in node 2 and the identity of the global transaction T3 derived from the subtransaction STA32 as triggering the event as a check criterion .
  • the check of the waiting graph WG22 in the node K2 triggered by this analysis job leads to a further deadlock analysis job at the node K3 with the identity of the global transaction T2 derived from the subtransaction STA21 as the end element as a new search criterion with unchanged check criteria.
  • the check of the waiting graph WG32 triggered thereby in node K3 leads. finally to the end member of the global transaction T3 formed by the subtransaction STA31, whereby the proof for a closed loop in the checked global waiting graph is provided, so that a reset process which clears the deadlock is initiated.
  • the trigger condition for a deadlock analysis DLA is met in node K3 after the lock feedback SRM of node K1 arrives with the transition from the waiting graph WG31 to the waiting graph WG32 in node K3 the nodes K1, K2 and K3 are detected and the jam is detected in the node K3.
  • the starting point of the deadlock analysis is not the entry element of a waiting graph, such as the waiting graph WG12 in node 1, but the ending element of a waiting graph, e.g. in the case of the waiting graph WG32, in the node K3.
  • the specified order constellation leads to the same result, namely the determination of the system deadlock in node K3. Also, a transaction is only reset if there is actually a deadlock is present.
  • the scope of the messages for the individual deadlock analysis orders is small and, in addition to the details of the type of order, only requires two identity details of transactions, one of which serves as a search criterion and the other as a check criterion.
  • Each subtransaction entered in the local wait table is provided with a local time stamp, the value of which is derived from a local clock per node and indicates the time of the entry.
  • each end link in the waiting graph receives a second time stamp for the entry of time values that are supplied as a time stamp by other nodes together with a lock message or an analysis job.
  • the associated local time stamp receives the current value 1000 of the local clock as the blocking time t sP .
  • This value is also entered as the greatest value tLmax of the local time stamps of the waiting graph in the local time stamp of the blocking transaction T2, which is indicated by an arrow.
  • the external timestamp of transaction T2 as the end link remains free for the time being.
  • the lock time specification t s p ( K2 ) is sent out with the lock feedback SRM and forwarded to the affected nodes with the lock message SM.
  • node K1 therefore, when transaction T1 is entered in the waiting graph table as "REMOVED LOCKED", the supplied locking time is entered in the external time stamp as the value t Ex . In this case, the local time stamp remains free since there is no local blocking event for this waiting graph.
  • a deadlock analysis is only initiated if the last-mentioned condition is also fulfilled.
  • T Lmax ⁇ t SP ( K3 ) so that, in contrast to the sequence in FIG. 2, no deadlock analysis DLA is initiated.
  • the time differences have no further effects on the rest of the process.
  • the lock feedback SRM arrives from node K1 in node K3
  • the existing value of the external time stamp is replaced by the highest value of the present local time stamp.
  • the time shifts are reversed compared to that of FIG.
  • the deadlock analysis records all three nodes one after the other, because in node K1 and K2 the waiting graphs are transferred to the next node and the time condition t DLA ⁇ t EX is fulfilled each time. The jam is then finally determined in node K3.
  • time stamps completely suppresses the risk that two deadlock analyzes are triggered by a single blocking event or two transactions are added, except in the exceptional case that identical time stamps occur.
  • the clocks at the individual nodes do not need to be synchronized, in contrast to the known time stamp methods.
  • FIG. 6 shows the structural structure of a K ... node based on the SESAM-DCN database system from Siemens AG - publication U655-J1-Z55-2.
  • User programs ANW which access local databases or databases in other computers as nodes, run under the supervision of a global transaction control GTS, which establishes the connection between the user programs and the database control devices DBMS of the desired database depending on the distribution rules defined in a database catalog. If the database is in its own node, access to the database control devices DBMS is direct. If the database is located in a foreign node, access is made in connection with the control devices for distributed processing DCN. The latter are responsible in particular for setting up the distribution rules, for accepting database accesses from other nodes and forwarding them to the corresponding database control devices DBMS, and for managing and monitoring the distributed database system.
  • connection of these devices of one node to the devices of another node is established via communication devices CAM with the connecting lines VL.
  • the database control devices DBMS and the control devices DCN are coupled in the dedicated node K ... by buffer memory TAB, via which the orders are forwarded in one direction or the other can, so that database tasks and administration tasks can be processed largely independently of each other.
  • these buffer memories also include the local waiting graph table, which can be controlled by both sides and changed if necessary.
  • the resulting traffic relationships in a distributed database system with three nodes between a global transaction control GTS at node K1 and the databases in the three nodes K1 to K3 can be seen from the block diagram of FIG.
  • the global transaction control GTS in node K1 is directly connected to the database control devices DBMS at its own node in order to carry out data access and to receive results of the data processing, with direct control and modification of the local waiting graph table being possible.
  • Monitoring messages M that are also required are exchanged directly between the respective global transaction control GTS and the control devices DCN2 or DCN3 mentioned.
  • all control devices DCN1 to DCN3 are connected to one another for administration purposes.
  • a global transaction control GTS consist of a sequence of instructions which are taken from an execution plan.
  • Each transaction is opened with a start instruction BTA, whereby, in accordance with the underlying two-phase lock protocol, a required data object is locked and the lock is confirmed before a transaction can access the object, and all objects required by a transaction are only released again when the transaction can be ended or needs to be reset.
  • a two-phase end protocol is used to end a transaction with the end statement ETA, after which only after a phase 1, which indicates the provisional end of the transaction, with a phase 2 for the final end, the database changes are committed and that System is brought into the next consistent state. If, on the other hand, a transaction cannot be completed, it is reset with a reset instruction RTA.
  • FIG. 8A referring to the execution of the instructions in the present execution plan when executing transactions
  • FIG. 8B to the reaction in accordance with incoming feedback relates.
  • a first order is taken from the execution plan. If the end of the orders for a transaction has not yet been reached, the database catalog is used to determine the target node in which the required database is located and a subtransaction list is used to check whether a subtransaction already exists for the target system. If there is no subtransaction yet, this is entered in the subtransaction list and a BTA instruction with an order is transferred to the target node. Otherwise, only the new order for the existing subtransaction will be sent.
  • ETA instructions are sent to all target nodes affected by a subtransaction and the current transaction is ended.
  • the work of the global transaction control GTS is stopped for the current transaction.
  • the transaction control is in the waiting state for feedback that determines the progress of the work.
  • the recipients of all the orders are the respective database control devices DBMS in the respective target node, the control of the database control device DBMS in foreign nodes taking place in each case via the control devices DCN there, while the database control devices DBMS are controlled directly in the own node and by the control devices DCN in the foreign nodes some of the tasks to be carried out here are carried out and carried out by the local global transaction control GTS.
  • FIG. 8B shows the progress of the workflow of the global transaction control GTS after the arrival of two responses which have an effect within the scope of the present invention. If the control devices DCN of a foreign node or the local database control devices DBMS report that a transaction order has been blocked, then the associated subtransaction is shown in the existing subtransaction list as marked locked. It is also checked whether further subtransactions of the same global transaction are listed in the subtransaction list. If the latter is not the case, then the global transaction control returns to the waiting state.
  • blocking messages SM are sent to the control devices DCN of all associated foreign target nodes with the order to mark the corresponding subtransaction in the waiting graph table WTB there as "REMOVED LOCKED", while for the corresponding identification one on one's own
  • the local waiting graph table WTB is addressed directly by the global transaction control GTS and the marking is made.
  • Database orders coming from the respectively controlling global transaction control GTS to the database control devices DBMS as a controlled database system result in the workflow shown in the flow chart of FIG. 9.
  • the pending subtransaction must be completed by committing the changed or unchanged status and then releasing the locked data objects. If there are entries in the waiting table WTB for the transaction to be completed, these are deleted and the associated waiting graph updated.
  • the execution of the order is then acknowledged in a known manner to the ordering global transaction control GTS.
  • a pending subtransaction could not be ended, but a new order has to be executed, it is first checked whether the required data object is free at all. If this is free, it will be blocked. If necessary, the waiting graph table has to be adjusted and an existing entry in the order table LOCK-TAB has to be deleted if the order was previously locked and the object was only subsequently released again. The order is then carried out in preparation and the result is communicated to the ordering global transaction control GTS with confirmation of execution.
  • the end link is marked as "REMOVED LOCKED"
  • FIG. 15 The basic structure of a waiting graph table WTB is shown in FIG. 15.
  • an entry line with the associated identity TA-ID is provided for each transaction to be entered in a waiting graph.
  • Several lines can be chained to follow-up addresses F-AD in a manner known per se to form a waiting graph.
  • Each line also contains display fields, namely STATE to identify the current status of the transaction as ACTIVE, LOCKED or REMOVED LOCK, TARGET to identify the node of the removed lock, TIME L as a local time stamp to identify the local lock time and TIME EX as an external time stamp.
  • the entries relate to a waiting graph with the transactions T1, T3, and Tx, the transaction T1 representing the end link and being marked as "REMOVED LOCKED" in node K2.
  • Transactions T3 and Tx subsequently accrued on this transaction T1 and are therefore marked as "LOCKED".
  • the local timestamps contain the respective time of the entry, the timestamp of the end link in each case containing the highest value of all local timestamps of the waiting graph.
  • the external time stamp takes on a time value triggered by external events, which has already been described with reference to FIGS. 3 to 5.
  • the essential tasks within the scope of the method on which the invention is based are carried out by the individual control devices DCN with a few exceptions at the node of the global transaction control GT which is the ordering party. These are the sending of lock feedback SRM from foreign nodes to the respective controlling global transaction control GTS, the marking of a transaction as "REMOVED LOCKED" based on a lock message SM of the controlling global transaction control GTS in foreign nodes with a check for a trigger condition for the deadlock analysis DLA, the allocation of analysis orders based on the order table DLA-TAB, the implementation of a deadlock analysis DLA based on a received analysis order, possibly with the forwarding of the order to the continuing global waiting graph or with determination of the transaction to be reset in the event of a detected deadlock and the transfer of a corresponding reset order to respectively associated local database control devices DBMS.
  • the associated control devices DCN are periodically Intervals send a control message TACK back to the global transaction control GTS to indicate that the connection exists.
  • the control messages TACK can be supplemented according to a development of the invention by additional information on the lock feedback SRM.
  • the order table LOCK-TAB is therefore first checked for the existence of an order for a lock response to the global transaction control GTS to be notified. If there is no order, the control message TACK is sent in the usual form. If, on the other hand, a lock confirmation is to be sent to SRM, the associated information for the lock feedback is taken from the order table LOCK-TAB and a control message with lock information is set up and sent.
  • the lock-back messages are transmitted as independent messages.
  • the basic structure of the order table LOCK-TAB is shown in FIG. 16.
  • An entry includes the identity GTS-ID of the global transaction control GTS to be controlled, the identity TA-ID of the transaction concerned, the destination specification ORT sp for the blocking notice to be undertaken and the blocking time stamp ZEIT SP with the blocking time specification tsP.
  • the workflow of FiG 11 shows the reaction of the control device DCN in a foreign node after receipt of the lock message SM, which results in an order to mark a transaction as "REMOVED LOCKED".
  • the waiting graph table WTB is first checked and it is determined whether the transaction concerned has already been entered. If this is not the case, a corresponding new waiting graph is created, consisting of the defident TA-ID of the transaction concerned, the status information "REMOVED LOCKED" and the destination of the remote lock. If additional time stamps are used, the specified blocking time specification t S (K 7) is also entered in the associated external time stamp ZEIT EX . - See Ze4e 1 of the waiting graph table WTB of FIG. 15.
  • the transaction in question is already contained in the waiting graph table WTB, the associated waiting graph is supplemented in the same way.
  • one of the triggering conditions for checking whether a DLA deadlock analysis should be initiated is met.
  • time stamps it is also checked whether the specified time conditions are met. If the latter is the case, an entry is made in the order table DLA-TAB for carrying out a jam analysis.
  • this order table DLA-TAB The basic structure of this order table DLA-TAB is shown in FIG 17.
  • an entry includes the identity DCN-ID of the control devices to be controlled, the identity TA-ID ON of a transaction as a search criterion for the waiting graph concerned, the identity TA-ID DLA of a transaction as a check criterion for checking for the presence of a jam, and when using time marks ZEIT DLA the value of the analysis test time t DLA .
  • the deadlock analysis DLA to be initiated on the basis of an entry in the order table DLA-TAB is carried out solely by the control devices DCN of the nodes concerned, without involving the controlling global transaction control GTS.
  • FIG. 12 shows the workflow with regard to the issue of a jam analysis order
  • FIG. 13 shows the workflow with regard to the execution of the job in the received node.
  • the "ORDER TO CARRY OUT A CLAMPING ANALYSIS" arriving at the target hotspot is then processed in the manner represented by FIG. 13. It will first be examined on the basis of the S uchkriteriums the associated wait graph in the Wartregraphentabelle WTB and checks the end of this waiting graphene using the test criterion. If the end link belongs to another global transaction, it is checked whether there is a mark as "REMOVED LOCKED". If this is not the case, the analysis can be terminated. Otherwise, the job must be forwarded to the new target node by an entry in the job table DLA -TAB is made.
  • the method explained with reference to FIG. 2 to FIG. 5 is thus fully integrated into the control of a distributed database system, the actual data processing being loaded only insignificantly by the individual database control devices DBMS of the distributed system, since all essential procedural tasks are performed by the control devices DCN of the system .
  • the relevant global transaction control GTS has the primary task of accepting lock-back reports and, derived therefrom, of forwarding lock-ups to the nodes affected by subtransactions of the same global transaction.
  • the global transaction control then carries out additional tasks resulting from a lock event only in connection with the local database control devices DBMS in its own node.
  • the control control devices DCN are responsible at the individual nodes, in particular for the forwarding of analysis orders and their execution.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Blocking events triggered in the individual nodes (K1 to K3) by subtransactions (STA...) ordered by a global transaction control are signalled to the global transaction control by blocking return message (SRM) which then informs all nodes in which subtransactions of the same global transaction (T...) are occurring, by means of blocking messages which leads to the associated subtransaction (for example STA 11, STA 21, STA31) being marked as "REMOTELY BLOCKED" in the respective local queuing table. Should a subtransaction of a global transaction run into a block due to a queuing graph (for example WG12) marked as "REMOTELY BLOCKED" or if a marking as "REMOTELY BLOCKED" is made for an existing queuing graph (WG22, WG32), a deadlock analysis (DLA) is triggered which is transferred step by step to the nodes concerned by means of the destination information associated with the blocking note until an open end of the global queuing graph formed by the local queuing graphs (for example WG12, WG22, WG32) via the respective row information is found or deadlock is determined. Extensive relief of the actual data processing by means of execution of these tasks by the control facilities for the distributed processing. <IMAGE>

Description

Die Erfindung betrifft ein Verfahren und eine Anordnung zum Vermeiden von globalen Systemverklemmungen bei der Verarbeitung von globalen Transaktionen in verteilten Datenbanksystemen mit mehreren Knoten gemäß dem Oberbegriff des Patentanspruches 1.The invention relates to a method and an arrangement for avoiding global system deadlocks when processing global transactions in distributed database systems with several nodes according to the preamble of claim 1.

Bei der Realisierung von verteilten Datenbanksystemen stellt sich eine Reihe von technischen Problemen. Eines dieser Probleme besteht in der Synchronisation konkurrierender globaler Transaktionen, insbesondere im Vermeiden von globalen Systemverklemmungen (deadlock), weil zum Beispiel zwei oder mehr Transaktionen einander blockierend auf die Freigabe gesperrter Objekte warten, um selbst weiterarbeiten zu können - "Informatik-Spektrum", Springer Verlag, 1981, Heft 4, Seiten 175 bis 184 und 261 bis 270 oder "Computing Serveys, Vol. 13 No. 2 June 1981, Seiten 149 bis 183.A number of technical problems arise in the implementation of distributed database systems. One of these problems is the synchronization of competing global transactions, in particular the avoidance of global deadlocks, because, for example, two or more transactions block each other waiting for the release of locked objects in order to be able to continue working - "Informatik-Spektrum", Springer Verlag, 1981, Issue 4, pages 175 to 184 and 261 to 270 or "Computing Serveys, Vol. 13 No. 2 June 1981, pages 149 to 183.

Zu dem genannten Zweck sind bereits eine ganze Reihe von Verfahren entwickelt worden. Eines dieser Verfahren besteht in einer Art Zeitablaufüberwachung im jeweiligen Ursprungsknoten, indem eine Transaktion nach Überschreiten einer vorgegebenen Wartezeit ohne Rückantwort einfach abgebrochen wird, wobei mit jedem Abbruch ein Rücksetzen von Transaktionen und eine Wiederholung verbunden ist. Bei einem solchen Verfahren kann nicht ausgeschlossen werden, daß nur deshalb eine Zeitüberschreitung stattfindet, weil eben die augenblickliche Systemlast zu hoch ist, ohne daß die Gefahr einer Systemverklemmung gegeben ist. Das damit verbundene, aber unnötige Rücksetzen von Transkationen und insbesondere die dadurch bedingte Wiederholung vergrößern dann noch die bestehende Systemlast - man siehe zum Beispiel Informatik-Spektrum, Seite 182, Abschn. 3.3.1 oder Computing Surveys, Seite 157, letzter Absatz der linken Spalte.A whole series of processes have already been developed for this purpose. One of these methods consists of a kind of timeout monitoring in the respective origin node in that a transaction is simply canceled without a response after a predetermined waiting time has been exceeded, with each cancellation being associated with a reset of transactions and a repetition. With such a method, it cannot be ruled out that the time will only be exceeded because the current system load is too high without the risk of a system jam. The associated but unnecessary resetting of transactions and, in particular, the repetition caused by this increase the existing system load - see, for example, Informatik-Spektrum, page 182, section 3.3.1 or Computing Surveys, page 157, last paragraph of the left column .

Auch die durch die DE-OS 33 30 529.3 bekannte Lösung beruht auf dem Prinzip der Zeitablaufprüfung, auch wenn die Überwachung nicht im Ursprungsknoten einer globalen Transaktion durchgeführt wird, sondern jeweils in den eine Teiltransaktion ausführenden Fremdknoten unter der Voraussetzung, daß dort diese Teiltransaktion auf eine wartende Teiltransaktion einer anderen globalen Transaktion aufgelaufen ist. Zwar läßt sich dadurch die Wahrscheinlichkeit, daß eine Transaktion unnötig zurückgesetzt wird, vermindern. Ein unnötiges Zurücksetzen kann aber ebenfalls nicht ausgeschlossen werden, weil die Entscheidung darüber ebenfalls auf einer Vermutung beruht.The solution known from DE-OS 33 30 529.3 is based on the principle of the time lapse check, even if the monitoring is not carried out in the original node of a global transaction, but rather in the foreign node executing a partial transaction, provided that this partial transaction is there on a waiting partial transaction of another global transaction has accrued. This can reduce the likelihood that a transaction will be unnecessarily rolled back. However, an unnecessary reset cannot be ruled out either because the decision about it is also based on a presumption.

Andere Verfahren beruhen auf der Vergabe von Zeitstempeln. Trifft eine Transaktion auf die Sperre einer jüngeren Transaktion, dann wird die ältere Transaktion zurückgesetzt. Durch die ständige Zulassung jüngerer Transaktionen wächst mit zunehmendem Alter einer Transaktion daher zwangsläufig die Gefahr, daß sie zurückgesetzt wird. Mit dem Alter und der Anzahl der Konflikte steigt jedoch auch der Umfang einer Transaktion, so daß eine Wiederholung immer aufwendiger wird und das System im zunehmendem Maße belastet.Other procedures are based on the allocation of time stamps. If a transaction encounters the lock of a younger transaction, the older transaction is rolled back. The constant admission of younger transactions means that the risk of a transaction being reset increases as the transaction ages. With the age and the number of conflicts, however, the size of a transaction increases, so that repetition becomes more and more complex and places an increasing burden on the system.

Demgegenüber stehen Verfahren, bei denen eine Transaktion nur dann zurückgesetzt wird, wenn tatsächlich eine Verklemmung gegeben ist. Diese Verfahren beruhen auf der Prüfung der jeweils im gesamten System gegebenen Abhängigkeit anhand von Graphen, zweckmäßig durch eine zentrale Stelle. Dies erfordert aber einen zusätzlichen umfangreichen und ständigen Nachrichtenaustausch über die jeweiligen Abhängigkeiten zwischen den einzelnen Knoten und/oder mit der zentralen Überwachungsstelle. Die sich daraus ergebende Belastung der Verbindungsleitung und der beträchtliche Aufwand für die Graphenverwaltung sind gleichfalls von Nachteil.This contrasts with procedures in which a transaction is only rolled back if there is actually a deadlock. These procedures are based on checking the dependency given in the entire system using graphs, expediently by a central body. However, this requires an additional extensive and constant exchange of messages about the respective dependencies between the individual nodes and / or with the central monitoring point. The resulting load on the connecting line and the considerable effort for graph management are also disadvantageous.

Aufgabe der Erfindung ist es daher, konkurrierende globale Transaktionen so zu steuern, daß ohne die Überwachung durch eine zentrale Stelle und bei nur sehr geringem, die Verbin dungsleitungen zwischen den Knoten nicht merklich belastenden Nachrichtenaustausch globale Verklemmungen eindeutig erkennbar sind und Transaktionen nur zurückgesetzt werden, wenn eine Verklemmung tatsächlich gegeben ist.The object of the invention is therefore to control competing global transactions so that global deadlocks can be clearly identified and transactions can only be reset without the monitoring by a central point and with very little, the connection lines between the nodes not noticeably burdensome message exchange there is actually a jam.

Diese Aufgabe wird hinsichtlich des Verfahrens gemäß der Erfindung durch die Merkmale des Patentanspruches 1 gelöst.This object is achieved with regard to the method according to the invention by the features of claim 1.

Danach werden durch ein Sperrereignis bei der Abarbeitung einer globalen Transkation alle nicht von der Sperre direkt betroffenen Subtransaktionen aufgrund der Sperrmeldungen in gleicher Weise als gesperrt behandelt und in die jeweils entsprechende lokale Wartegraphentabelle eingetragen, falls sie noch nicht eingetragen sind. Da diese übrigen Subtransaktionen sich zwangsläufig im ruhenden Zustand befinden, bilden sie in jedem Fall das Endeglied des jeweiligen Wartegraphen, so daß diese Wartegraphen durch die zusätzliche Zielangabe über den die Sperrung verursachenden Knoten mit dem dortigen lokalen Wartegraphen vorübergehend zu einem globalen Wartegraphen zusammengekoppelt werden, ohne daß weitergehende Nachrichten über Sperrbeziehungen in den einzelnen Knoten ausgetauscht werden müssen. Die Arbeitsleistung der zuständigen globalen Transaktionssteuerung wird dadurch nicht beeinträchtigt, da sie sich aufgrund des Sperrereignisses sowieso im Wartezustand befindet.Afterwards, a lock event when processing a global transaction means that all subtransactions not directly affected by the lock are treated as locked due to the lock messages and entered in the corresponding local waiting graph table if they have not yet been entered. Since these other subtransactions are inevitably in the dormant state, they always form the end link of the respective waiting graph, so that these waiting graphs are temporarily linked together to form a global waiting graph by the additional destination information about the node causing the block with the local waiting graph there that further messages about blocking relationships must be exchanged in the individual nodes. The performance of the responsible global tran This does not affect transaction control, since it is in the waiting state anyway due to the lock event.

Globale Systemverklemmungen sind dabei nur zu erwarten, wenn ein lokaler Wartegraph mit wenigstens einem anderen zu einem globalen Wartegraphen zusammengekoppelt wird. Das kann aus zweierlei Anlässen möglich sein, nämlich dann, wenn das Endeglied eines bereits bestehenden lokalen Wartegraphen als "ENTFERNT GESPERRT" zu markieren ist, oder dann, wenn eine Subtransaktion auf einen bereits als "ENTFERNT GESPERRT" markierten Wartegraphen aufläuft. In beiden Fällen wird daher eine Verklemmungsanalyse eingeleitet, die schrittweise auf die durch die Zielangabe jeweils in Folge miteinander verbundenen lokalen Wartegraphen der betroffenen Knoten ausgedehnt wird, bis ein offenes.Ende des lokalen Wartegraphen erreicht oder eine Verklemmung festgestellt wird.Global deadlocks can only be expected if a local waiting graph is coupled together with at least one other to form a global waiting graph. This can be possible for two reasons, namely if the end link of an existing local waiting graph is to be marked as "REMOVED LOCKED", or if a subtransaction occurs on a waiting graph already marked as "REMOVED LOCKED". In both cases, therefore, a deadlock analysis is initiated, which is gradually expanded to the local waiting graphs of the nodes involved, which are linked in sequence by the destination, until an open end of the local waiting graph is reached or a deadlock is detected.

Für die Durchführung einer Verklemmungsanalyse sind bei n betroffenen Knoten maximal n Meldungen zu versenden, wenn das die Verklemmungsanalyse auslösende Ereignis in der nachträglichen Markierung eines bereits bestehenden Wartegraphen als "EXTERN GESPERRT" besteht (geschlossene Verklemmungsanalyse). Bei einem Sperrereignis durch einen bereits als "EXTERN GESPERRT" markierten Wartegraphen sind es nur n - 1 Meldungen (lineare Verklemmungsanalyse), da die. Entscheidung über die Einleitung der Verklemmungsanalyse vom neu hinzukommenden Einstiegsglied des Wartegraphen ausgeht.To carry out a deadlock analysis, a maximum of n messages must be sent to n affected nodes if the event triggering the deadlock analysis consists in the subsequent marking of an existing waiting graph as "EXTERNALLY BLOCKED" (closed deadlock analysis). In the event of a blocking event caused by a waiting graph already marked as "EXTERNALLY LOCKED", there are only n - 1 messages (linear jamming analysis), since the. Decision on the initiation of the deadlock analysis is based on the new entry element of the waiting graph.

Eine Übertragung zusätzlicher Nachrichten ist darüber hinaus nur erforderlich, wenn eine Verklemmung festgestellt wird, um eine Transaktion zurückzusetzen. Das gilt aber für alle bekannten Verfahren.In addition, a transmission of additional messages is only necessary if a deadlock is found to reset a transaction. However, this applies to all known processes.

Das neue Lösungsprinzip beruht also gleichfalls auf einer Graphenmethode mit sicherer Erkennung von Systemverklemmungen. Es benötigt aber keine übergeordnete Graphenverwaltung des Systems, und die Anzahl der das System belastenden Nachrichten ist im Vergleich zu den bekannten Verfahren im Mittel geringer. Auch ist der Umfang der jeweils auszutauschenden Nachrichten sehr gering.The new solution principle is also based on a graph method with reliable detection of deadlocks. However, there is no need for a higher-level graph management of the system, and the number of messages loading the system is on average lower than in the known methods. The scope of the messages to be exchanged is also very small.

Letzteres gilt insbesondere auch bezüglich der Angaben zu den Verklemmungsanalyseaufträgen, wobei gemäß der Weiterbildung entsprechend Anspruch 2 lediglich zwei Identitätsangaben für zwei globale Transaktionen benötigt werden, nämlich eine gleichbleibende als Prüfkriterium und eine jeweils aus dem Endeglied des auftraggebenden Knoten ableitbare Identität zum Aufsuchen des zugehörigen Wartegraphen im anzusteuernden Knoten. Die Prüfung beschränkt sich dabei immer auf den Vergleich der Identität des jeweiligen endegliedes mit dem angelieferten Prüfkriterium. Besteht Übereinstimmung, dann besteht auch eine Verklemmungsschleife, die in bekannter Weise aufgetrennt werden muß.The latter also applies in particular to the information on the deadlock analysis orders, whereby according to the development according to claim 2, only two identity details are required for two global transactions, namely a constant as a check criterion and an identity that can be derived from the end link of the requesting node in order to find the associated waiting graph in the nodes to be controlled. The test is always limited to comparing the identity of the respective end link with the test criterion supplied. If there is a match, there is also a deadlock loop which must be broken in a known manner.

Die auslösenden Anlässe für eine Verklemmungsanalyse sind nur notwendige Bedingungen. Sie besagen noch nicht, daß tatsächlich auch eine Systemverklemmung vorliegt. Folglich wird nicht jede sofort eingeleitete Verklemmungsanalyse zur Feststellung einer Verklemmung führen, insbesondere dann nicht, wenn das die Verklemmungsanalyse auslösende Sperrereignis nur von kurzer Dauer ist. Entsprechend der Weiterbildung der Erfindung gemäß Patentanspruch 3 werden daher die Sperr-Rückmeldungen an die steuernde globale Transaktionssteuerung um eine vorgegebene Zeitdauer verzögert und eine aufgrund desselben Sperrereignisses einzuleitende Verklemmungsanalyse nur freigegeben, wenn die auslösende Sperrbedingung nach der vorgegebenen Zeitdauer noch besteht. Das System wird auf diese Weise ebenfalls von unnötigen Nachrichten entlastet.The triggering reasons for a deadlock analysis are only necessary conditions. They do not yet say that there is actually a deadlock. As a result, not every deadlock analysis that is initiated immediately will result in a deadlock being detected, especially not if the lockout event triggering the deadlock analysis is short-lived. According to the development of the invention according to claim 3, the lock feedbacks to the controlling global transaction control are therefore delayed by a predetermined period of time and a deadlock analysis to be initiated due to the same lock event is only released if the triggering lock condition still exists after the predetermined period of time. The system is also relieved of unnecessary messages in this way.

Andererseits kann bei sich überschneidenden Transaktionsaufträgen zweier globaler Transaktionen, die beide auf eine Sperre laufen, nicht ausgeschlossen werden, daß gleichzeitig zwei Verklemmungsanalysen gesstartet werden und eine bestehende Systemverklemmung gleichzeitig an verschiedenen Knoten festgestellt wird, so daß gegebenenfalls zwei Transaktionen zurückgestezt werden. Dies läßt sich durch die Weiterbildung der Erfindung gemäß Patentanspruch 4 so gut wie ausschließen.On the other hand, in the case of overlapping transaction orders of two global transactions that both run on a lock, it cannot be ruled out that two deadlock analyzes are started at the same time and an existing system deadlock is found simultaneously on different nodes, so that two transactions may be reset. This can be virtually excluded by the development of the invention according to claim 4.

Die hierbei verwendeten Zeitmarken weisen zwar eine Ähnlichkeit mit den Zeitstempeln bei dem einen vorangehend beschriebenen bekannten Verfahren auf. Im Gegensatz dazu dienen aber die hier verwendeten Zeitmarken nur als Vergleichswert zum Starten und Abbrechen einer Verklemmungsanalyse, nicht aber zur Festlegung der Reihenfolge der in den verschiedenen Knoten des Systems auftretenden Ereignisse. Die Uhren der einzelnen Knoten brauchen daher nicht miteinander synchronisiert zu sein. Gesteuert durch die Zeitmarken setzt sich in einer geschlossenen Wartegraphenschleife immer der Auslöseanlaß mit dem größeren Zeitwert in Schleifenrichtung über die örtlichen Zeitmarkenwerte hinweg und überrollt diese.The time stamps used here have a similarity to the time stamps in the known method described above. In contrast, the time stamps used here only serve as a comparison value for starting and stopping a deadlock analysis, but not for determining the sequence of the events occurring in the various nodes of the system. The clocks of the individual nodes therefore do not need to be synchronized with one another. Controlled by the time stamps, the triggering event with the larger time value in the loop direction always overruns the local time stamp values and overruns them in a closed waiting graph loop.

Das zuletzt genannte Verfahren vergrößert zwar den Umfang der Nachrichten um die zusätzlichen Zeitmarken und den Speicherbedarf für die Speicherung der örtlichen Zeitmarken je Wartegraphen. Dieser Mehraufwand geht aber einher mit der Vermeidung der Übersendung unnötiger Nachrichten und dem Zurücksetzen tatsächlich nur einer Transaktion im Falle einer festgestellten Verklemmung.The latter method increases the scope of the messages by the additional time stamps and the memory requirement for storing the local time stamps per waiting graph. However, this additional effort goes hand in hand with avoiding the sending of unnecessary messages and resetting in fact only one transaction in the event of a jam.

Gemäß Patentanspruch 5 wird dabei die günstigste lokal gesperrte Subtransaktion in dem Knoten zurückgesetzt, in dem die Verklemmung erkannt worden ist, nicht aber eine Subtransaktion in einem anderen Knoten, was zusätzlichen Aufwand für die Nachrichtenübertragung und eine Verzögerung des Rücksetzens bedingen würde. Weitere Vorteile der Erfindung ergeben sich aus Weiterbildungen entsprechend den Patentansprüchen 6 bis 9, die sich auf die Ausnutzung der Kontrolleinrichtungen für die verteilte Verarbeitung für die verschiedenen Meldungen und Nachrichten, sowie für die Überwachung der Anlässe zur Einleitung einer Verklemmungsanalyse und für deren Durchführung beziehen, wobei die Kontrolleinrichtungen unabhängig von den Datenbanksteuereinrichtungen arbeiten, indem notwendige Informationen von beiden zugreifbar in Tabellen geführt werden. Auf diese Weise wird die eigentliche Datenverarbeitung innerhalb des verteilten Datenbanksystems durch den im Rahmen der Erfindung erforderlichen Nachrichtenaustausch zwischen den einzelnen Knoten nur äußerst geringfügig beeinträchtigt. Auch bleiben Verbindungsleitungsausfälle ohne Auswirkung, wenn im Falle eines nicht absetzbaren Verklemmungsanalyseauftrages die Markierung als "ENTFERNT GESPERRT" bei der den Auftrag auslösenden Subtransaktion wieder aufgehoben und diese damit wieder der normalen lokalen Zeitüberwachung zur Verhinderung von Dauersperren unterstellt wird.According to claim 5, the cheapest locally blocked subtransaction is reset in the node in which the deadlock was detected, but not a subtransaction in another node, which would require additional effort for message transmission and a delay in resetting. Further advantages of the invention result from further developments in accordance with patent claims 6 to 9, which relate to the utilization of the control devices for the distributed processing for the various messages and messages, and for the monitoring of the occasions for initiating a deadlock analysis and for carrying it out, whereby the control devices work independently of the database control devices in that the necessary information is kept accessible by both in tables. In this way, the actual data processing within the distributed database system is only minimally impaired by the message exchange between the individual nodes required within the scope of the invention. Connection line failures also have no effect if, in the case of a non-releasable jamming analysis job, the marking as "REMOVED LOCKED" is canceled again during the subtransaction triggering the job and this is then placed back under normal local time monitoring to prevent permanent locks.

Die Anordnung gemäß der Erfindung zur Durchführung der vorgenannten Verfahren ergibt sich aus Patentanspruch 10. Sie besteht aus einer Reihe von Einrichtungen, die Ihren Aufgaben entsprechend teilweise der jeweiligen globalen Transaktionssteuerung und teilweise dem jeweiligen Knoten insgesamt zugeordnet sind. Diese Einrichtungen können in bekannter Weise durch speicherprogrammierte.Abläufe realisiert werden.The arrangement according to the invention for carrying out the aforementioned method results from patent claim 10. It consists of a number of devices which are assigned to their tasks partly according to the respective global transaction control and partly to the respective node as a whole. These devices can be implemented in a known manner by means of memory-programmed sequences.

Dabei bleibt die eigentliche Datenverarbeitung innerhalb des verteilten Datenbanksystems am wenigsten beeinträchtig, wenn gemäß der Weiterbildung von Patentanspruch 11 die die einzelnen Steueraufgaben wahrnehmenden und dem jeweiligen Knoten insgesamt zugeordneten Einrichtungen als Teileinrichtungen weitestgehend den Kontrolleinrichtungen für die verteilte Verarbeitung zugeordnet und dadurch die Datenbanksteuereinrichtungen entsprechend entlastet werden, wobei gesonderte Auftragsspeicher und die mit Zugriffsmöglichkeiten sowohl durch die Datenbanksteuereinrichtungen als auch durch die Kontrolleinrichtungen versehene Wartegraphentabelle ein weitgehend unabhängiges Arbeiten der einzelnen Einrichtungen sichern.The actual data processing within the distributed database system remains the least impaired if, according to the development of claim 11, the devices that perform the individual control tasks and are assigned to the respective node as a whole are assigned to the control devices for the distributed processing as far as possible, thereby relieving the database control devices accordingly, separate order memories and the waiting graph table provided with access options both by the database control devices and by the control devices ensure largely independent work of the individual devices.

Einzelheiten der Erfindung seien nachfolgend anhand von in der Zeichnung dargestellten Ausführungsbeispielen erläutert. Im einzelnen zeigen

  • FIG 1 ein Beispiel für einen sich über drei Knoten erstreckenden geschlossenen globalen Wartegraphen,
  • FIG 2 ein Ablaufdiagramm zur Erläuterung des der Erfindung zugrundeliegenden Lösungsprinzips mit Bezug auf FIG 1,
  • FiG 3 bis 5 Ablaufdiagramme in Anlehnung an das von FIG 2 beiVerwendung von zusätzlichen Zeitmarken für unterschiedliche gegenseitige Zeitverschiebungen der lokalen Uhren,
  • FIG 6 eine Strukturübersicht für einen Knoten des Datenbanksystems,
  • FIG 7 eine Übersicht der Verbindungsstrukturen von drei gemäß FIG 6 strukturierten Knoten mit einer globalen Transaktionssteuerung GTS in einem der Knoten,
  • FIG 8A und 8B ein Ablaufdiagramm der globalen Transaktionssteuerung GTS von FIG 6 für die Bearbeitung von Transkationen,
  • FIG 9 ein Ablaufdiagramm der Datenbanksteuereinrichtungen DBMS von FIG 6 für die Bearbeitung von Datenbankaufträgen der globalen Transaktionssteuerung,
  • FIG 10 bis 14 Ablaufdiagramme der Kontrolleinrichtungen DCN von FIG 3 von FIG 3 für die Bearbeitung der verschiedenen Aufgaben gemäß dem der Erfindung zugrundeliegenden Verfahren,
  • FIG 15 den schematischen Aufbau einer Wartegraphentabelle,
  • FIG 16 den schematischen Aufbau einer Auftragstabelle für Sperr-Rückmeldungen und
  • FIG 17 den schematischen Aufbau einer Auftragstabelle für Verklemmungsanalysen.
Details of the invention are explained below with reference to exemplary embodiments shown in the drawing. Show in detail
  • 1 shows an example of a closed global waiting graph extending over three nodes,
  • 2 shows a flow chart to explain the principle of the solution on which the invention is based with reference to FIG. 1,
  • FiG 3 to 5 flow diagrams based on that of FIG 2 when using additional time stamps for different mutual time shifts of the local clocks,
  • 6 shows a structure overview for a node of the database system,
  • 7 shows an overview of the connection structures of three nodes structured according to FIG. 6 with a global transaction control GTS in one of the nodes,
  • 8A and 8B show a flowchart of the global transaction control GTS from FIG. 6 for processing transactions,
  • 9 shows a flowchart of the database control devices DBMS from FIG. 6 for processing database orders of the global transaction control,
  • 10 to 14 flow diagrams of the control devices DCN from FIG. 3 from FIG. 3 for processing the various tasks according to the method on which the invention is based,
  • 15 shows the schematic structure of a waiting graph table,
  • 16 shows the schematic structure of an order table for lock feedback and
  • 17 shows the schematic structure of an order table for deadlock analyzes.

FIG 1 zeigt die sich ergebende Wartekonstellation in einem verteilten Datenbanksytem mit drei Knoten K1, K2 und K3, wenn in jedem Knoten eine globale Transaktion GTA, die mit T1 bzw. T2 bzw. T3 bezeichnet sind unter Aufsicht der jeweiligen globalen Transaktionssteuerung durchgeführt wird. Jede dieser globalen Transaktionen arbeitet zunächst mit einer Subtransaktion STAU bzw. STA21 bzw. STA31 im eigenen Knoten und sperrt dort ein Datenobjekt OB, nämlich die Objekte A bzw. B bzw. C. Danach will die Globaltransaktion T1 mit einer zweiten Subtransaktion STA12 auf das Objekt B im Knoten K2, die Transaktion T2 mit einer zweiten Subtransaktion STA22 auf das Objekt C im Knoten K3 und die Transaktion T3 mit einer zweiten Subtransakton STA32 auf das Objekt A im Knoten K1 zugreifen. Da aber alle drei Objekte A, B und C bereits gesperrt sind, können die Subtransaktion STA12, STA22 und STA32 nicht bearbeitet werden.1 shows the resulting waiting constellation in a distributed database system with three nodes K1, K2 and K3 if a global transaction GTA, which is designated T1 or T2 or T3, is carried out in each node under the supervision of the respective global transaction control. Each of these global transactions initially works with a sub-transaction STAU or STA21 or STA31 in its own node and blocks a data object OB there, namely objects A or B or C. Then the global transaction T1 wants to access the object with a second sub-transaction STA12 B in node K2, transaction T2 with a second subtransaction STA22 access object C in node K3 and transaction T3 with a second subtransaction STA32 access object A in node K1. However, since all three objects A, B and C are already blocked, the subtransaction STA12, STA22 and STA32 cannot be processed.

Die drei globalen Transaktionssteuerungen in den drei Knoten befinden sich damit im Wartezustand, der ewig dauern kann, weil eine Systemverklemmung eingetreten ist, die äußerlich an der Verkettung der die einzelnen Subtransaktionen darstellenden Pfeile zu einer geschlossenen Schliefe entsprechend einem geschlossenen globalen Wartegraphen erkennbar ist. Um die Datenverarbeitung im System fortsetzen zu können, muß daher eine der Subtransaktionen und damit zwangsläufig die gesamte zugehörige globale Transaktion, zum Beispiel die Subtransaktion STA31 und damit die Globaltransaktion T3, zurückgesetzt werden, damit das System wieder arbeitsfähig wird.The three global transaction controls in the three nodes are thus waiting which can last forever because a system deadlock has occurred, which is externally recognizable by the concatenation of the arrows representing the individual subtransactions to form a closed sleep according to a closed global waiting graph. In order to be able to continue processing the data in the system, one of the subtransactions and thus the entire associated global transaction, for example the subtransaction STA31 and thus the global transaction T3, must be reset so that the system is operational again.

Um verteilte Datenbanksysteme arbeitsfähig zu erhalten, muß also die Gefahr einer Systemverklemmung rechtzeitig erkannt werden. FIG 2 zeigt ein Ablaufdiagramm des dies sicherstellenden Verfahrens gemäß der Erfindung in Anwendung auf die der FIG 1 zugrundeliegende Auftragskonstellation.In order to keep distributed database systems operational, the risk of system jams must be recognized in good time. 2 shows a flow chart of the method ensuring this according to the invention when applied to the order constellation on which FIG. 1 is based.

Die Darstellung erfaßt wiederum die drei Knoten K1, K2 und K3 mit den in Bearbeitung befindlichen oder aktiven Subtransaktionen STA11 bzw. STA21 bzw. STA31. Zu einem beliebigen Zeitpunkt wird danach ein Auftrag für die Ausführung der Subtransaktion STA12 vom Knoten K1 an den Knoten K2 vergeben, die dasselbe Objekt wie die dortige Transkation STA21 benötigt. Die Subtransaktion STA12 läuft daher auf eine Sperre durch die Subtransaktion STA21. Da letztere noch nicht in die lokale Wartegraphentabelle eingetragen ist, wird der dargestellte neue Wartegraph WG21 in die Wartegraphentabelle eingetragen. Weiterhin wird eine Sperr-Rückmeidung SRM an den auftraggebenden Knoten K1 zurückgesandt, die einen Eintrag des neuen Wartegraphen WG11, bestehend aus der Subtransaktion STA11 mit Markierung als "ENTFERNT GESPERRT" und mit der Zielangabe K2 im Kreis für den sperrenden Knoten in die dortige Wartegraphentabelle veranlaßt. Die gleichen Vorgänge spielen sich nacheinander bei der Auftragsvergabe für die Subtransaktion STA22 durch den Knoten K2 an den Knoten K3 und bei der Auftragsvergabe für die Subtransaktion STA32 durch den Knoten K3 an den Knoten K1 ab, so daß letztlich die Wartegraphen WG12, WG22 und WG32 entstehen.The representation in turn captures the three nodes K1, K2 and K3 with the subtransactions STA11 or STA21 or STA31 which are currently being processed or are active. At any time, an order for the execution of the subtransaction STA12 from the node K1 to the node K2 is then issued, which requires the same object as the transaction STA21 there. The subtransaction STA12 therefore runs on a lock through the subtransaction STA21. Since the latter has not yet been entered in the local waiting graph table, the new waiting graph WG21 shown is entered in the waiting graph table. Furthermore, a lock confirmation SRM is sent back to the ordering node K1, which causes an entry of the new waiting graph WG11, consisting of the subtransaction STA11 with the marking as "REMOVED LOCKED" and with the destination K2 in the circle for the locking node in the waiting graph table there . The same processes take place in succession when the order for subtransaction STA22 is sent by node K2 to node K3 and when the order for subtransaction STA32 is sent by node K3 to node K1, so that ultimately the wait graphs WG12, WG22 and WG32 are created .

Beim Übergang vom Wartegraphen WG21 zum Wartegraphen WG22 im Knoten K2 aufgrund der Sperr-Rückmeldung SRM des Knoten K3 ist die eine Bedingung für die Einleitung einer Verklemmungsanalyse DLA erstmals erfüllt, da das Endeglied eines bereits bestehenden Wartegraphen WG21 als "ENTFERNT GESPERRT" markiert und damit eine globale Wartebeziehung hergestellt wird. Dies führt zu einem Auftrag zur Durchführung einer Verklemmungsanalyse an den durch die Zielangabe bezeichneten Knoten 3 mit der Identität der zum Endeglied STA21 gehörigen Globaltransaktion T2 als Suchkriterium für den zugehörigen Wartegraphen WG31 und der Identität derselben Giobaitransaktio-T2 als Prüfkriterium.When transitioning from the waiting graph WG21 to the waiting graph WG22 in node K2 due to the lock feedback SRM from node K3, the one condition for initiating a deadlock analysis DLA is fulfilled for the first time since the end link of an already existing waiting graph WG21 is marked as "REMOVED LOCKED" and thus one global waiting relationship is established. This leads to an order to carry out a deadlock analysis at the node 3 designated by the destination with the identity of the global transaction T2 belonging to the end link STA21 as a search criterion for the associated waiting graph WG31 and the identity of the same Giobaitransaktio-T2 as a test criterion.

Im Knoten K3 ergibt die Prüfung des Wartegraphen WG31, daß das Endeglied STA31 nicht zur Globaltransaktion T2 gehört und der aus den lokalen Wartegraphen WG22 und WG31 bestehende globale Wartegraph ein offenes Ende hat. Die Verklemmungsanalyse wird daher ohne weitere Auswirkung abgebrochen.In node K3, the check of the waiting graph WG31 shows that the end link STA31 does not belong to the global transaction T2 and that the global waiting graph consisting of the local waiting graphs WG22 and WG31 has an open end. The deadlock analysis is therefore terminated without further effect.

Weiterhin läuft die Subtransaktion STA32 im Knoten K1 direkt auf die als "ENTFERNT GESPERRT" markierte Subtransaktion STA11 als Sperre auf, so daß die andere Auslösebedingung für eine Verklemmungsanalyse DLA gegeben ist. Ziel für den Auftrag zur Verklemmungsanalyse ist in diesem Falle der Knoten K2 mit der von der Subtransaktion STAU abgeleiteten Identität der Giobaitransaktion T1 für das Aufsuchen des Wartegraphen WG22 im Knoten 2 und der von der Subtransaktion STA32 als auslösen dem Ereignis abgeleiteten Identität der Globaltransaktion T3 als Prüfkriterium.Furthermore, the subtransaction STA32 in node K1 runs directly on the subtransaction STA11 marked as "REMOVED LOCKED" as a lock, so that the other trigger condition for a deadlock analysis DLA is given. In this case, the aim of the order for the deadlock analysis is node K2 with the identity of the Giobia transaction T1 derived from the subtransaction STAU for searching for the waiting graph WG22 in node 2 and the identity of the global transaction T3 derived from the subtransaction STA32 as triggering the event as a check criterion .

Die durch diesen Analyseauftrag ausgelöste Überprüfung des Wartegraphen WG22 im Knoten K2 führt zu einem weiteren Verklemmungsanalyseauftrag an den Knoten K3 mit der von der Subtransaktion STA21 als Endeglied abgeleiteten Identität der Globaltransaktion T2 als neuem Suchkriterium bei unverändertem Prüfkriterium. Die dadurch im Knoten K3 ausgelöste Prüfung des Wartegraphen WG32 führt. schließlich auf das von der Subtransaktion STA31 gebildete Endeglied der gesuchten Globaltransaktion T3, wodurch der Nachweis für eine geschlossene Schleife im überprüften globalen Wartegraphen erbracht ist, so daß ein die Verklemmung aufhebender Rücksetzvorgang RESET eingeleitet wird.The check of the waiting graph WG22 in the node K2 triggered by this analysis job leads to a further deadlock analysis job at the node K3 with the identity of the global transaction T2 derived from the subtransaction STA21 as the end element as a new search criterion with unchanged check criteria. The check of the waiting graph WG32 triggered thereby in node K3 leads. finally to the end member of the global transaction T3 formed by the subtransaction STA31, whereby the proof for a closed loop in the checked global waiting graph is provided, so that a reset process which clears the deadlock is initiated.

Ähnlich wie beim Übergang vom Wartegraphen WG21 auf den Wartegraphen WG22 im Knoten K2 wird im Knoten K3 nach Eintreffen der Sperr-Rückmeldung SRM des Knotens K1 mit Übergang vom Wartegraphen WG31 auf den Wartegraphen WG32 im Knoten K3 die Auslösebedingung für eine Verklemmungsanalyse DLA erfüllt, die nacheinander die Knoten K1, K2 und K3 erfaßt und im Knoten K3 die Verklemmung feststellt. In diesem Falle sind statt zwei jedoch drei Aufträge für eine Verklemmungsanalyse zu übertragen, da Ausgangspunkt der Verklemmungsanalyse nicht das Einstiegglied eines Wartegraphen, wie zum Beispiel beim Wartegraphen WG12 im Knoten 1, sondern das endeglied eines Wartegraphen, wie z.B. beim Wartegraphen WG32, im Knoten K3 ist.Similar to the transition from the waiting graph WG21 to the waiting graph WG22 in node K2, the trigger condition for a deadlock analysis DLA is met in node K3 after the lock feedback SRM of node K1 arrives with the transition from the waiting graph WG31 to the waiting graph WG32 in node K3 the nodes K1, K2 and K3 are detected and the jam is detected in the node K3. In this case, instead of two, three orders have to be transferred for a deadlock analysis, since the starting point of the deadlock analysis is not the entry element of a waiting graph, such as the waiting graph WG12 in node 1, but the ending element of a waiting graph, e.g. in the case of the waiting graph WG32, in the node K3.

Unabhängig davon führt die vorgegebene Auftragskonstellation zum selben Ergebnis, nämlich zur Feststellung der Systemverklemmung im Knoten K3. Auch kommt es nur zur Rücksetzung einer Transaktion, wenn tatsächlich eine Verklemmung vorliegt. Der Nachrichtenumfang für die einzelnen Verklemmungsanalyseaufträge ist gering und erfordert neben den Angaben über die Art des Auftrages lediglich zwei Identitätsangaben von Transaktio nen, von denen die eine als Suchkritierum und die andere als Prüfkriterium dient.Irrespective of this, the specified order constellation leads to the same result, namely the determination of the system deadlock in node K3. Also, a transaction is only reset if there is actually a deadlock is present. The scope of the messages for the individual deadlock analysis orders is small and, in addition to the details of the type of order, only requires two identity details of transactions, one of which serves as a search criterion and the other as a check criterion.

Durch Verzögerung der Aussendung von Sperrmeldungen SRM um eine vorgegebene Zeitdauer unter der Voraussetzung, daß am Ende dieser Zeitdauer die Sperrbedingung noch gegeben ist, lassen sich unnötige Sperr-Rückmeldungen vermeiden, wenn das auslösende Sperrerignis nur von kurzer Dauer ist. Analoges gilt für vom selben Sperrerignis ausgelöste Verklemmungsanalyseaufträge, wenn diese nur nach Aussendung der Sperr-Rückmeidungen SRM an den Zielknoten gesendet werden.By delaying the transmission of lock messages SRM by a predetermined period of time, provided that the lock condition is still present at the end of this time period, unnecessary lock feedback can be avoided if the triggering lock event is short-lived. The same applies to deadlock analysis jobs triggered by the same lock event if these are only sent to the target node after the lock replies SRM have been sent.

Nicht vermeiden läßt sich ohne weiteres, daß Nachrichten für Verklemmungsanalyseaufträge unnötig übertragen werden, da eingeleitete Analysen ergebnislos abgebrochen oder durch ein Sperrereignis im System an zwei verschiedenen Knoten ausgelöst werden können. Im vorliegenden Falle zum Beispiel am Knoten K1 und nachfolgend aufgrund der Sperr-Rückmeidung SRM am Knoten K3, wenngleich beide Analysen zum selben Ergebnis führen.It cannot be easily avoided that messages for deadlock analysis jobs are unnecessarily transmitted, since analyzes that have been initiated can be terminated without result or triggered by a lock event in the system at two different nodes. In the present case, for example, at node K1 and subsequently due to the lock back SRM at node K3, although both analyzes lead to the same result.

Es sind aber auch Auftragskonstellationen möglich, bei denen zwei gleichzeitig an verschiedenen Knoten aufgrund wechselseitig gesperrter Subtransaktionen und sich kreuzender Sperr-Rückmeldungen eingeleitete Verklemmungsanalysen zur Feststellung einer Verklemmung in zwei verschiedenen Knoten führen. In diesem Falle werden dann zwar zwei Transaktionen zurückgesetzt, aber Anlaß ist immer eine tatsächlich bestehende Systemverklemmung.However, order constellations are also possible in which two deadlock analyzes initiated simultaneously at different nodes due to mutually locked sub-transactions and intersecting lock feedbacks lead to the detection of a deadlock in two different nodes. In this case, two transactions are reset, but the reason is always an actual system deadlock.

Das Rücksetzen lediglich einer Transaktion im Falle einer Systemverklemmung und auch eine Verringerung unnötiger Nachrichten für Verklemmungsanalyseaufträge läßt sich durch Verwendung zusätzlicher Zeitmarken als Zeitstempel sicherstellen. Jede in die lokale Wartetabelle eingetragene Subtransaktion wird mit einer lokalen Zeitmarke versehen, deren Wert von einer lokalen Uhr je Knoten abgeleitet wird und den Zeitpunkt der Eintragung angibt. Außerdem erhält jedes Endeglied im Wartegraphen eine zweite Zeitmarke für die Eintragung von Zeitwerten, die als Zeitmarke von anderen Knoten zusammen mit einer Sperrmeldung oder einem Analyseauftrag geliefert werden.Resetting only one transaction in the event of a deadlock and also reducing unnecessary messages for deadlock analysis jobs can be ensured by using additional time stamps as a time stamp. Each subtransaction entered in the local wait table is provided with a local time stamp, the value of which is derived from a local clock per node and indicates the time of the entry. In addition, each end link in the waiting graph receives a second time stamp for the entry of time values that are supplied as a time stamp by other nodes together with a lock message or an analysis job.

FIG 3 zeigt ein dem Verfahrensablauf von FIG 2 entsprechendes Ablaufdiagramm bei Verwendung von Zeitmarken, wobei unterstellt ist, daß alle lokalen Uhren synchron laufen, so daß die Abweichung der Uhren an den Knoten K1 und K3 mit Bezug auf die Uhr am Knoten K2 entsprechend At = 0 Null ist.3 shows a flowchart corresponding to the process flow of FIG. 2 when using time stamps, assuming that all local clocks run synchronously, so that the deviation of the clocks at nodes K1 and K3 with respect to the clock at node K2 corresponds to At = 0 is zero.

Läuft die Transaktion T1 im Knoten K2 auf eine Sperre durch die Transaktion T2, dann erhält die zugehörige lokale Zeitmarke den augenblicklichen Wert 1000 der lokalen Uhr als Sperrzeit tsP. Dieser Wert wird auch als jeweils größter Wert tLmax der lokalen Zeitmarken des Wartegraphen in die lokale Zeitmarke der sperrenden Transaktion T2 eingetragen, was durch einen Pfeil angedeutet ist. Die externe Zeitmarke der Transaktion T2 als Endeglied bleibt dagegen vorerst frei.If transaction T1 in node K2 is blocked by transaction T2, then the associated local time stamp receives the current value 1000 of the local clock as the blocking time t sP . This value is also entered as the greatest value tLmax of the local time stamps of the waiting graph in the local time stamp of the blocking transaction T2, which is indicated by an arrow. However, the external timestamp of transaction T2 as the end link remains free for the time being.

Die Sperrzeitangabe tsp(K2) wird mit der Sperr-Rückmeldung SRM ausgesendet und mit der Sperrmeldung SM an die betroffenen Knoten weitergeleitet. Im Knoten K1 wird daher mit Eintragung der Transaktion T1 in die Wartegraphentabelle als "ENTFERNT GESPERRT" die mitgelieferte Sperrzeit in die externe Zeitmarke als Wert tEx eingetragen. Die lokale Zeitmarke bleibt in diesem Falle frei, da noch kein lokales Sperrereignis für diesen Wartegraphen vorliegt.The lock time specification t s p ( K2 ) is sent out with the lock feedback SRM and forwarded to the affected nodes with the lock message SM. In node K1, therefore, when transaction T1 is entered in the waiting graph table as "REMOVED LOCKED", the supplied locking time is entered in the external time stamp as the value t Ex . In this case, the local time stamp remains free since there is no local blocking event for this waiting graph.

Analoges spielt sich ab, wenn anschließend die Transaktion T2 im Knoten K3 zum Zeitpunkt tsp = 1025 auf die Sperre durch die Transaktion T3 läuft. Im Knoten K2 bewirkt die zugehörige Sperr-Rückmeldung SRM aufgrund der mitgelieferten Sperrzeitangabe tSP(K3) zweierlei:

  • 1. Der augenblickliche höchste Wert tLmax aller lokalen Zeit marken wird in die externe Zeitmarke übernommen und eingefroren, was durch einen Pfeil angedeutet ist.
  • 2. Im Rahmen der Prüfung, ob eine der beiden Auslösebedingungen für die Verklemmungsanalyse erfüllt ist, wird gleichzeitig geprüft, ob die Sperrzeitangabe tSP(K3) kleiner als der höchste Wert tLmax der lokalen Zeitmarken ist.
The same happens if the transaction T2 in node K3 at the time t s p = 1025 is then blocked by transaction T3. In node K2, the associated lock feedback SRM does two things based on the lock time specification t SP (K3) supplied:
  • 1. The instantaneous highest value tLmax of all local time stamps is adopted in the external time stamp and frozen, which is indicated by an arrow.
  • 2. In the course of checking whether one of the two triggering conditions for the deadlock analysis is fulfilled, a check is carried out at the same time as to whether the blocking time specification t SP (K3) is less than the highest value t Lmax of the local time stamps.

Nur wenn die zuletzt genannte Bedingung zusätzlich erfüllt ist, wird eine Verklemmungsanalyse eingeleitet. Im vorliegenden Fall gilt dagegen TLmax < tSP(K3), so daß im Gegensatz zum Ablauf von FIG 2 keine Verklemmungsanalyse DLA eingeleitet wird.A deadlock analysis is only initiated if the last-mentioned condition is also fulfilled. In the present case, on the other hand, T Lmax <t SP ( K3 ), so that, in contrast to the sequence in FIG. 2, no deadlock analysis DLA is initiated.

Sobald nachfolgend die Transaktion T3 aus dem Knoten K3 im Knoten K1 unmittelbar auf die Sperre durch die als "ENTFERNT GESPERRT" markierte Transaktion T1 aufläuft - Sperrzeit tsp = 1500 - , wird erstmalig eine lokale Zeitmarke angelegt und daher, wie durch Pfeile angezeigt, die Sperrzeit tspin die externe Zeitmarke übernommen. Weitere in diesem Graphen auf Sperre laufenden Transaktionen ändern zwar die lokale Zeitmarke auf den neuen Wert t Lmax ab, nicht dagegen die bestehende externe Zeitmarke. Diese wird nachfolgend nur geändert, wenn die Markierung als "ENTFERNT GESPERRT" wieder aufgehoben ist und nachfolgend ein Verklemmungsanalyseauftrag oder eine erneute Sperrmeldung eingeht usw..As soon as transaction T3 from node K3 in node K1 directly arrives at the lock by transaction T1 marked as "REMOVED LOCKED" - lock time t s p = 1500 - a local time stamp is created for the first time and therefore, as indicated by arrows, the blocking time t s pin takes over the external time stamp. Further transactions that are blocked in this graph change the local timestamp to the new value t Lmax , but not the existing external timestamp. This will only be changed in the following if the marking as "REMOVED LOCKED" is removed again and subsequently a jamming analysis job or a new lock message is received etc.

Außerdem wird im Rahmen der Prüfung, ob eine der beiden Auslösebedingungen für die Verklemmungsanalyse erfüllt ist, nun geprüft, ob die neue Sperrzeit tsP größer als der Wert der zum Sperrzeitpunkt gültigen externen Zeitmarke ist. In diesem Falle ist diese Bedingung gemäß SP = 1050 > tExalt= 1000 erfüllt, so daß eine Verklemmungsanalyse DLA eingeleitet wird, wobei für die Prüfzeit tDLA immer der letztendlich gültige Wert t EX der externen Zeitmarke, also der Wert 1050, verwendet wird.In addition, as part of the check whether one of the two triggering conditions for the Ver Clamping analysis is fulfilled, now check whether the new blocking time t sP is greater than the value of the external time stamp valid at the blocking time. In this case, this condition is met in accordance with SP = 1050> t Exalt = 1000, so that a deadlock analysis DLA is initiated, the ultimately valid value t EX of the external time stamp, i.e. the value 1050, always being used for the test time t DLA .

Bei der Ausführung der Verklemmungsanalyse im angesteuerten Knoten, also im Knoten K2, wird dann jeweils zusätzlich geprüft, ob die Analyseprüfzeit tCLA größer oder mindestens gleich dem Wert tEx der vorhandenen externen Zeitmarke ist. Nur wenn dies der Fall ist, wird der Analyseauftrag mit der ursprünglichen Analyseprüfzeit t DLA zum nächsten Knoten weitergereicht. Im vorliegenden Falle sind wegen 1050 ≧ 1000 im Knoten K2 alle Bedingungen erfüllt, und die daher auf den Knoten K3 übergreifende Verklemmungsanalyse kann dort die bestehende Systemverklemmung feststellen. Dagegen wird aufgrund der Sperr-Rückmeldung SRM an den Knoten K3 wegen der nicht erfüllten Zeitbedingung keine Verklemmungsanalyse eingeleitet.When the deadlock analysis is carried out in the controlled node, that is to say in node K2, an additional check is then carried out to determine whether the analysis test time t CLA is greater than or at least equal to the value t Ex of the external time stamp present. Only if this is the case is the analysis job forwarded to the next node with the original analysis test time t DLA . In the present case, because of 1050 ≧ 1000, all conditions in node K2 are met, and the jamming analysis, which therefore extends to node K3, can determine the existing system jam there. In contrast, due to the lock feedback SRM at node K3, no deadlock analysis is initiated due to the unfulfilled time condition.

Das Ablaufdiagramm von FIG 4 unterscheidet sich von dem von FIG 3 dadurch, daß gegenüber der Uhr am Knoten K2 die Uhr am Knoten K1 entsprechend At = + 100 vorläuft und die Uhr am Knoten K3 entsprechend At = - 100 nachläuft. Als Folge davon führt im Gegensatz zu FIG 3 die Sperr-Rückmeidung SRM vom Knoten K3 zum Knoten K2 im Knoten K2 zur Einleitung einer Verklemmungsanalyse, da tLmax = 1000 > tsp(K3)= 925 ist. Die daraufhin im Knoten K3 durchgeführte Prüfung führt aber zum Abbruch der Analyse, da kein der Transaktion T2 zugehöriges Endeglied im Wartegraphen vorhanden ist. Jedoch wird die mitgelieferte Analyseprüfzeit tDLA = 1000 in die dortige externe Zeitmarke eingetragen.The flowchart of FIG. 4 differs from that of FIG. 3 in that, compared to the clock at node K2, the clock at node K1 runs according to At = + 100 and the clock at node K3 runs according to At = - 100. As a result of this, in contrast to FIG. 3, the lock-back avoidance SRM from node K3 to node K2 in node K2 leads to the initiation of a deadlock analysis , since t Lmax = 1000> t s p ( K3 ) = 925. The check then carried out in node K3, however, leads to the termination of the analysis since there is no end link associated with transaction T2 in the waiting graph. However, the supplied analysis test time t DLA = 1000 is entered in the external time stamp there.

Ansonsten haben die Zeitunterschiede keine weiteren Auswirkungen auf den übrigen Verfahrensablauf. Es wird lediglich beim Eintreffen der Sperr-Rückmeldung SRM vom Knoten K1 im Knoten K3 der vorhandene Wert der externen Zeitmarke durch den höchsten Wert der vorliegenden lokalen Zeitmarke ersetzt. Beim Ablaufdiagramm von FIG 5 sind im Vergleich zu dem von FIG 4 die Zeitverschiebungen umgekehrt gerichtet. Die Uhr im Knoten K1 läuft gegenüber der Uhr im Knoten K2 entsprechend At = - 100 nach und die Uhr im Knoten K3 entsprechend At = + 100 vor.Otherwise, the time differences have no further effects on the rest of the process. When the lock feedback SRM arrives from node K1 in node K3, the existing value of the external time stamp is replaced by the highest value of the present local time stamp. In the flow chart of FIG. 5, the time shifts are reversed compared to that of FIG. The clock in node K1 runs ahead of the clock in node K2 according to At = - 100 and the clock in node K3 according to At = + 100.

Auswirkungen ergeben sich daher im Vergleich zum Verfahrensablauf von FIG 3 erst nach Eintreffen des Auftrages für die Transaktion 3 im Knoten K1. Da die lokale Sperrzeit tsp = 950 kleiner ist als der Wert tEXalt = 1000 der vorhandenen externen Zeitmarke, wird im Knoten K1 keine Verklemmungsanalyse eingeleitet. Dies übernimmt der Knoten K3 nach Eintreffen der Sperr-Rückmeldung SRM aus dem Knoten K1, da tLmax = 1125 > tSP(K3) = 950 ist. Der höchste Wert tLmax = 1125 der lokalen Zeitmarken wird daher durch Übertragen in die externe Zeitmarke eingefroren und bildet die Analyseprüfzeit tDLA. Die Such-und Prüfidenfität entsprechen in diesem Fall beide der des Endegliedes, das der globalen Transaktion T3 angehört. Die Verklemmungsanalyse erfaßt nacheinander alle drei Knoten, da im Knoten K1 und K2 die aufgesuchten Wartegraphen zum jeweils nächsten Knoten überleiten und die Zeitbedingung tDLA≧ tEX jedesmal erfüllt ist. Im Knoten K3 wird dann schließlich die Verklemmung festgestellt.In comparison to the procedure of FIG. 3, effects therefore only arise after the order for transaction 3 has arrived in node K1. Since the local blocking time t s p = 950 is less than the value t EXalt = 1000 of the existing external time stamp, no jamming analysis is initiated in node K1. Node K3 takes over this after arrival of the lock feedback SRM from node K1, since t Lmax = 1125> t SP (K3) = 950. The highest value t Lmax = 1125 of the local time stamps is therefore frozen by transfer to the external time stamp and forms the analysis test time t DLA . The search and test identity in this case both correspond to that of the end link which belongs to the global transaction T3. The deadlock analysis records all three nodes one after the other, because in node K1 and K2 the waiting graphs are transferred to the next node and the time condition t DLA ≧ t EX is fulfilled each time. The jam is then finally determined in node K3.

Im Vergleich zum Verfahrensablauf von FIG 2 wird bei Verwendung von Zeitmarken die Gefahr, daß von einem einzigen Sperrereignis zwei verklemmungsanalysen ausgelöst oder gar zwei Transaktionen zugesetzt werden, bis auf den Ausnahmefall, daß identische Zeitmarken auftreten, vollkommen unterdrückt. Dabei brauchen, wie gezeigt, die Uhren an den einzelnen Knoten im Gegensatz zu den bekannten Zeitstempelverfahren nicht synchronisiert zu sein.In comparison to the process sequence of FIG. 2, the use of time stamps completely suppresses the risk that two deadlock analyzes are triggered by a single blocking event or two transactions are added, except in the exceptional case that identical time stamps occur. As shown, the clocks at the individual nodes do not need to be synchronized, in contrast to the known time stamp methods.

FIG 6 zeigt den strukturellen Aufbau eines Knotens K... in Anlehnung an das Datenbanksystem SESAM-DCN der Siemens AG - Druckschrift U655-J1-Z55-2.6 shows the structural structure of a K ... node based on the SESAM-DCN database system from Siemens AG - publication U655-J1-Z55-2.

Anwenderprogramme ANW, die auf lokale Datenbanken oder Datenbanken in anderen Rechnem als Knoten zugreifen, laufen unter der Aufsicht einer globalen Transaktionssteuerung GTS ab, die die Verbindung zwischen den Anwenderprogrammen und den Datenbanksteuereinrichtungen DBMS der gewünschten Datenbank abhängig von den in einem Datenbankkatalog festgelegten Verteilungsregeln herstellt. Befindet sich die Datenbank im eigenen Knoten, erfolgt der Zugriff zu den Datenbanksteuereinrichtungen DBMS direkt. Befindet sich die Datenbank in einem fremden Knoten, dann erfolgt der Zugriff in Verbindung mit den Kontrolleinrichtungen für die verteilte Verarbeitung DCN. Letztere sind insbesondere für den Aufbau der Verteilungsregeln, für die Entgegennahme von Datenbankzugriffen aus anderen Knoten und deren Weiterleitung an die entsprechenden Datenbanksteuereinrichtungen DBMS, sowie für die Verwaltung und Überwachung des verteilten Datenbanksystems zuständig. Die Verbindung dieser Einrichtungen eines Knotens mit den Einrichtungen eines anderen Knotens werden dabei über Kommunikationseinrichtungen CAM mit den Verbindungsleitungen VL hergestellt. Weiterhin sind die Datenbanksteuereinrichtungen DBMS und die Kontrolleinrichtungen DCN in dedem Knoten K... durch Pufferspeicher TAB gekoppelt, über die Aufträge in der einen oder anderen Richtung weitergeleitet werden können, so daß Datenbankaufgaben und Administrationsaufgaben weitgehend unabhängig voneinander bearbeitet werden können. Zu diesen Pufferspeichern gehört vor allem auch die lokale Wartegraphentabelle, die von beiden Seiten angesteuert und gegebenenfalls geändert werden kann.User programs ANW, which access local databases or databases in other computers as nodes, run under the supervision of a global transaction control GTS, which establishes the connection between the user programs and the database control devices DBMS of the desired database depending on the distribution rules defined in a database catalog. If the database is in its own node, access to the database control devices DBMS is direct. If the database is located in a foreign node, access is made in connection with the control devices for distributed processing DCN. The latter are responsible in particular for setting up the distribution rules, for accepting database accesses from other nodes and forwarding them to the corresponding database control devices DBMS, and for managing and monitoring the distributed database system. The connection of these devices of one node to the devices of another node is established via communication devices CAM with the connecting lines VL. Furthermore, the database control devices DBMS and the control devices DCN are coupled in the dedicated node K ... by buffer memory TAB, via which the orders are forwarded in one direction or the other can, so that database tasks and administration tasks can be processed largely independently of each other. Above all, these buffer memories also include the local waiting graph table, which can be controlled by both sides and changed if necessary.

Die sich daraus bei einem verteilten Datenbanksystem mit drei Knoten ergebenden Verkehrsbeziehungen zwischen einer globalen Transaktionssteuerung GTS am Knoten K1 und den Datenbanken in den drei Knoten K1 bis K3 sind aus dem Blockschaltbild von FIG 7 zu ersehen. Die globale Transaktionsssteuerung GTS im Knoten K1 steht mit den Datenbanksteuereinrichtungen DBMS am eigenen Knoten direkt in Verbindung, um Datenzugriffe auszuführen und Ergebnisse der Datenbearbeitung entgegenzunehmen, wobei eine direkte Ansteuerung und Änderung der lokalen Wartegraphentabelle möglich ist. Datenzugriffe TA-AUF zu entfernten Datenbanksteuereinrichtungen DBMS2 und DBMS3 an den anderen Knoten K2 und K3 laufen dagegen über die örtlichen Kontrolleinrichtungen DCN2 und DCN3, während Ergebnisse TA-ERG von den Datenbanksteuereinrichtungen DBMS2 und DBMS3 jeweils direkt an die auftraggebende globale Transaktionssteuerung GTS zurückgesendet werden. Darüber hinaus notwendige Überwachungsmeldungen M werden direkt zwischen der jeweiligen globalen Transaktionssteuerung GTS und den angesprochenen Kontrolleinrichtungen DCN2 bzw. DCN3 ausgetauscht. Außerdem stehen alle Kontrolleinrichtungen DCN1 bis DCN3 für Administrationszwecke miteinander in Verbindung.The resulting traffic relationships in a distributed database system with three nodes between a global transaction control GTS at node K1 and the databases in the three nodes K1 to K3 can be seen from the block diagram of FIG. The global transaction control GTS in node K1 is directly connected to the database control devices DBMS at its own node in order to carry out data access and to receive results of the data processing, with direct control and modification of the local waiting graph table being possible. Data accesses TA-AUF to remote database control devices DBMS2 and DBMS3 at the other nodes K2 and K3, on the other hand, run via the local control devices DCN2 and DCN3, while results TA-ERG are each sent back directly from the database control devices DBMS2 and DBMS3 to the ordering global transaction control GTS. Monitoring messages M that are also required are exchanged directly between the respective global transaction control GTS and the control devices DCN2 or DCN3 mentioned. In addition, all control devices DCN1 to DCN3 are connected to one another for administration purposes.

Bei verteilten Datenbanksystemen mit globalen Transaktionssteuerungen GTS an mehreren Knoten wären die entsprechenden Knoten in gleicher Weise wie der Knoten K1 in FIG 7 durch eine globale Transaktionssteuerung mit ihren Verkehrsbeziehungen zu ergänzen.In the case of distributed database systems with global transaction controls GTS at several nodes, the corresponding nodes would have to be supplemented with a global transaction control with their traffic relationships in the same way as the node K1 in FIG.

Die von einer globalen Transaktionssteuerung GTS durchzuführenden Transaktionen bestehen bekanntlich aus einer Folge von Anweisungen, die einem Ausführungsplan entnommen werden. Jede Transaktion wird mit einer Beginn-Anweisung BTA eröffnet, wobei entsprechend dem zugrundeliegenden Zwei-Phasen-Sperrprotokoll ein benötigtes Datenobjekt erst gesperrt und die Sperre bestätigt wird, bevor eine Transaktion auf das Objekt zugreifen kann, und alle von einer Transaktion benötigten Objekte erst wieder freigegeben werden, wenn die Transaktion beendet werden kann oder zurückgesetzt werden muß. Für das Beenden einer Transaktion mit der Ende-Anweisung ETA wird ein Zwei-Phasen-Endeprotokoll verwendet, wonach erst nach einer Phase 1, die das vorläufige Ende der Transaktion anzeigt, mit einer Phase 2 für das endgültige Ende die Datenbankänderungen fest geschrieben werden und das System in den nächsten konsistenten Zustand überführt wird. Kann dagegen eine Transaktion nicht zu Ende geführt werden, wird sie mit einer Rücksetz-Anweisung RTA zurückgesetzt.As is known, the transactions to be carried out by a global transaction control GTS consist of a sequence of instructions which are taken from an execution plan. Each transaction is opened with a start instruction BTA, whereby, in accordance with the underlying two-phase lock protocol, a required data object is locked and the lock is confirmed before a transaction can access the object, and all objects required by a transaction are only released again when the transaction can be ended or needs to be reset. A two-phase end protocol is used to end a transaction with the end statement ETA, after which only after a phase 1, which indicates the provisional end of the transaction, with a phase 2 for the final end, the database changes are committed and that System is brought into the next consistent state. If, on the other hand, a transaction cannot be completed, it is reset with a reset instruction RTA.

Dies vorausgesetzt, sei zunächst anhand der Ablaufdiagramme von FIG 8A und FIG 8B die Arbeitsweise der globalen Transaktionssteuerung GTS in groben Zügen beschrieben, wobei sich FIG 8A auf die Abarbeitung der Anweisungen im vorliegenden Ausführungsplan bei der Ausführung von Transaktionen und FIG 8B auf die Reaktion entsprechend den eingehenden Rückmeldungen bezieht.This assuming that the operation of the global transaction control GTS is roughly described with reference to the flowcharts of FIG. 8A and FIG. 8B, FIG. 8A referring to the execution of the instructions in the present execution plan when executing transactions and FIG. 8B to the reaction in accordance with incoming feedback relates.

Mit dem Start der globalen Transaktionssteuerung GTS wird ein erster Auftrag aus dem Ausführungsplan entnommen. Ist das Ende der Aufträge für eine Transaktion noch nicht erreicht, wird anhand des Datenbankkataloges ermittelt, in welchem Zielknoten die benötigte Datenbank liegt, und anhand einer Subtransaktionsliste geprüft, ob für das Zielsystem schon eine Subtransaktion besteht. Liegt noch keine Subtransaktion vor, so wird diese in die Subtransaktionsliste eingetragen und eine BTA-Anweisung mit Auftrag an den Zielknoten übergeben. Im anderen Falle wird nur der neue Auftrag zur bestehenden Subtransaktion versendet.With the start of the global transaction control GTS, a first order is taken from the execution plan. If the end of the orders for a transaction has not yet been reached, the database catalog is used to determine the target node in which the required database is located and a subtransaction list is used to check whether a subtransaction already exists for the target system. If there is no subtransaction yet, this is entered in the subtransaction list and a BTA instruction with an order is transferred to the target node. Otherwise, only the new order for the existing subtransaction will be sent.

Wenn schließlich das Ende einer Transaktion erreicht ist, werden ETA-Anweisungen an alle von einer Subtransaktion betroffenen Zielknoten gesandt und die laufende Transaktion beendet. Nach Absetzen jeweils eines der angesprochenen Aufträge wird die Arbeit der globalen Transaktionssteuerung GTS für die laufende Transaktion eingestellt. Die Transaktionssteuerung befindet sich im Wartezustand für Rückmeldungen, die den Fortgang der Arbeit bestimmen.When the end of a transaction is finally reached, ETA instructions are sent to all target nodes affected by a subtransaction and the current transaction is ended. After placing one of the addressed orders, the work of the global transaction control GTS is stopped for the current transaction. The transaction control is in the waiting state for feedback that determines the progress of the work.

Empfänger aller Aufträge sind die jeweiligen Datenbanksteuereinrichtungen DBMS im jeweiligen Zielknoten, wobei gemäß FIG 7 die Ansteuerung der Datenbanksteuereinrichtung DBMS in fremden Knoten jeweils über die dortigen Kontrolleinrichtungen DCN erfolgt, während die Datenbanksteuereinrichtungen DBMS im eigenen Knoten direkt angesteuert und von den Kontrolleinrichtungen DCN in den fremden Knoten zum Teil auszuführende Aufgaben hier von der lokalen globalen Transaktionssteuerung GTS übernommen und ausgeführt werden.The recipients of all the orders are the respective database control devices DBMS in the respective target node, the control of the database control device DBMS in foreign nodes taking place in each case via the control devices DCN there, while the database control devices DBMS are controlled directly in the own node and by the control devices DCN in the foreign nodes some of the tasks to be carried out here are carried out and carried out by the local global transaction control GTS.

FIG 8B zeigt den Fortgang des Arbeitsablaufes der globalen Transaktionssteuerung GTS nach Eintreffen zweier im Rahmen der vorliegenden Erfindung sich auswirkender Rückmeldungen. Melden die Kontrolleinrichtungen DCN eines fremden Knotens oder die lokalen Datenbanksteuereinrichtungen DBMS, daß ein Transaktionsauftrag auf Sperre gelaufen ist, dann wird in der bestehenden Subtransaktionsliste die zugehörige Subtransaktion als gesperrt markiert. Weiterhin wird geprüft, ob in der Subtransaktionsliste noch weitere Subtransaktionen derselben Globaltransaktion aufgeführt sind. Ist letzteres nicht der Fall, dann geht die globale Transaktionssteuerung wieder in den Wartezustand über. Sind dagegen in der Subtransaktionsliste noch weitere Subtransaktionen angegeben, dann werden an die Kontrolleinrichtungen DCN aller zugehörigen fremden Zielknoten Sperrmeldungen SM mit dem Auftrag gesendet, in der dortigen Wartegraphentabelle WTB die entsprechende Subtransaktion als "ENTFERNT GESPERRT" zu markieren, während zur entsprechenden Kennzeichnung einer am eigenen Knoten laufenden Subtransaktion die lokale Wartegraphentabelle WTB von der globalen Transaktionssteuerung GTS direkt angesprochen und die Markierung vorgenommen wird.FIG. 8B shows the progress of the workflow of the global transaction control GTS after the arrival of two responses which have an effect within the scope of the present invention. If the control devices DCN of a foreign node or the local database control devices DBMS report that a transaction order has been blocked, then the associated subtransaction is shown in the existing subtransaction list as marked locked. It is also checked whether further subtransactions of the same global transaction are listed in the subtransaction list. If the latter is not the case, then the global transaction control returns to the waiting state. If, on the other hand, further subtransactions are specified in the subtransaction list, blocking messages SM are sent to the control devices DCN of all associated foreign target nodes with the order to mark the corresponding subtransaction in the waiting graph table WTB there as "REMOVED LOCKED", while for the corresponding identification one on one's own The local waiting graph table WTB is addressed directly by the global transaction control GTS and the marking is made.

Aufgrund einer Sperr-Rückmeidung SRM gemäß FIG 2 an die globale Transaktionssteuerung GTS werden also alle betroffenen Zielknoten unter der Aufsicht der globalen Transaktionssteuerung von diesem Sperrereignis informiert, und zwar direkt und/oder mit gesonderten Sperrmeldungen SM, die von den zuständigen Kontrolleinrichtungen DCN ausgewertet werden. Trifft im weiteren Verlauf eine Ausführungsbestätigung zu dem vorübergehend auf Sperre gelaufenen Transaktionsauftrag ein, dann wird im Falle eines vorliegenden Sperrvermerks in der Subtransaktiosliste dieser wieder gelöscht, ein neuer Transaktionsauftrag gestartet und damit in den Ablauf von FIG 8A übergeleitet.Due to a lock-back confirmation SRM according to FIG. 2 to the global transaction control GTS, all affected target nodes are informed of this lock event under the supervision of the global transaction control, directly and / or with separate lock messages SM, which are evaluated by the responsible control devices DCN. If a confirmation of execution arrives in the further course of the transaction order which has temporarily been blocked, then in the case of a blocked note in the subtransaction list, this is deleted again, a new transaction order is started and thus transferred to the process of FIG. 8A.

Von der jeweils steuernden globalen Transaktionssteuerung GTS an die Datenbanksteuereinrichtungen DBMS als angesteuertes Datenbanksystem gelangende Datenbankeufträge haben den im Ablaufdiagramm von FIG 9 wiedergegebenen Arbeitsablauf zur Folge. Zunächst wird geprüft, ob ein Ende-oder Rücksetz-Auftrag ETA bzw. RTA vorliegt. In diesem Falle ist die anhängige Subtransaktion abzuschließen, indem der veränderte bzw. der unveränderte Zustand festgeschrieben und danach die gesperrten Datenobjekte wieder freigegeben werden. Liegen zu der abzuschließenden Transaktion Einträge in der Wartetabelle WTB vor, dann werden diese gelöscht und der zugehörige Wartegraph fortgeschrieben. Danach wird die Ausführung des Auftrages gegenüber der auftraggebenden globalen Transaktionssteuerung GTS in bekannter Weise quittiert.Database orders coming from the respectively controlling global transaction control GTS to the database control devices DBMS as a controlled database system result in the workflow shown in the flow chart of FIG. 9. First, it is checked whether there is an end or reset order ETA or RTA. In this case, the pending subtransaction must be completed by committing the changed or unchanged status and then releasing the locked data objects. If there are entries in the waiting table WTB for the transaction to be completed, these are deleted and the associated waiting graph updated. The execution of the order is then acknowledged in a known manner to the ordering global transaction control GTS.

War eine anhängige Subtransaktion nicht zu beenden, sondern ist ein neuer Auftrag auszuführen, wird zunächst geprüft, ob das benötigte Datenobjekt überhaupt frei ist. Ist dieses frei, so wird es gesperrt. Gegebenenfalls ist die Wartegraphentabelle anzupassen und ein bestehender Eintrag in der Auftragstabelle LOCK-TAB zu löschen, wenn der Auftrag vorher auf Sperre gelauten war und das Objekt erst nachträglich wieder freigeworden ist. Anschließend wird der Auftrag vorbereitend ausgeführt und das Ergebnis mit Ausführungsbestätigung der auftraggebenden globalen Transaktionssteuerung GTS mitgeteilt.If a pending subtransaction could not be ended, but a new order has to be executed, it is first checked whether the required data object is free at all. If this is free, it will be blocked. If necessary, the waiting graph table has to be adjusted and an existing entry in the order table LOCK-TAB has to be deleted if the order was previously locked and the object was only subsequently released again. The order is then carried out in preparation and the result is communicated to the ordering global transaction control GTS with confirmation of execution.

Ist dagegen das gewünschte Objekt nicht frei, sondern von einer anderen Transaktion gesperrt, dann läuft der neue Auftrag auf eine Sperre durch diese andere Transaktion. Dieses Sperrereignis führt daher zu einem Eintrag in die Wartegraphen tabell WTB und damit zur Einordnung in einen lokalen Wartegraphen der Wartegraphentabelle. Gleichzeitig wird aufgrund des Sperrereignisses und damit in Auswirkung der Erfindung ein Auftrag für eine globale Transaktionssteuerung GTS in eine Auftragstabelle LOCK-TAB eingetragen. Im Anschluß daran ist in weiterer Auswirkung der Erfindung zu prüfen, ob eine Auslösebedingung für eine Verklemmungsanalyse DLA erfüllt ist. Dazu wird, wie bereits erläutert, das Endeglied des zugehörigen Wartegraphen der Wartegraphentabelle geprüft. Ist dieses Endeglied nicht als "ENTFERNT GESPERRT" markiert, dann besteht keine globale Wartebeziehung im System und es kann in einen Wartezustand übergegangen werden, bis das gewünschte Datenobjekt frei wird.If, on the other hand, the desired object is not free but blocked by another transaction, the new order is blocked by this other transaction. This locking event therefore leads to an entry in the waiting graph table WTB and thus to a classification in a local waiting graph of the waiting graph table. At the same time, an order for a global transaction control GTS is entered into an order table LOCK-TAB on the basis of the lock event and thus in the effect of the invention. Subsequently, in a further effect of the invention, it is to be checked whether a trigger condition for a deadlock analysis DLA is fulfilled. For this purpose, as already explained, the end link of the associated waiting graph of the waiting graph table is checked. If this end link is not marked as "REMOVED LOCKED", there is no global waiting relationship in the system and it can be switched to a waiting state until the desired data object becomes free.

Ist dagegen das Endeglied als "ENTFERNT GESPERRT" markiert, so ist bei Verwendung von Zeitmarken entsprechend der einen Verfahrensvariante gemäß der Erfindung zu prüfen, ob auch die Zeitbedingung für die Auslösung einer Verklemmungsanalyse DLA erfüllt ist. Für den Fall, daß die jeweils zu erfüllenden Bedingungen vorliegen, wird ein entsprechender Analyseauftrag in eine Auftragstabelle DLA-TAB eingetragen.If, on the other hand, the end link is marked as "REMOVED LOCKED", then when using time stamps according to the one method variant according to the invention, it must be checked whether the time condition for triggering a jamming analysis DLA is also fulfilled. In the event that the conditions to be met are met, a corresponding analysis order is entered in an order table DLA-TAB.

Unabhängig vom Ausgang dieser zusätzlichen Prüfungen wird zum Schluß ebenfalls der vorangehend erwähnte Wartezustand eingenommen und das Freiwerden des gesperrten Objektes überwacht.Regardless of the outcome of these additional checks, the aforementioned waiting state is also assumed at the end and the release of the blocked object is monitored.

Im vorliegenden Falle ist unterstellt, daß die Prüfung auf Vorliegen einer Auslösebedingung für eine Verklemmungsanalyse DLA von den Datenbanksteuereinrichtungen DBMS selbst ausgeführt wird. Dies liegt nahe, da der zu prüfende Wartegraphen in der Wartegraphentabelle WTB wegen des vorzunehmenden Sperreintrages sowieso aufzusuchen ist. Diese Aufgabe kann aber in gleicher Weise wie die Sendung der Sperr-Rückmeldung SRM anhand der Auftragstabelle LOCK-TAB und der Verklemmungsanalyseaufträge anhand der Auftragstabelle DLA-TAB den örtlichen Kontrolleinrichtungen DCN übertragen werden, indem gleichzeitig mit dem Eintrag in die Auftragstabelle GTS-TAB in einer weiteren Auftragstabelle ein entsprechender Auftrag hinterlegt wird oder indem die Prüfung infolge eines direkten Aufrufes durch die Datenbanksteuereinrichtungen ausgelöst wird, so daß letztere auch von dieser Prüfung entlastet sind.In the present case, it is assumed that the check for the existence of a trigger condition for a deadlock analysis DLA is carried out by the database control devices DBMS itself. This is obvious since the waiting graph to be checked is to be found in the waiting graph table WTB anyway because of the lock entry to be made. This task can, however, be transferred to the local control devices DCN in the same way as the sending of the lock-back report SRM using the order table LOCK-TAB and the jamming analysis orders using the order table DLA-TAB, by simultaneously with the entry in the order table GTS-TAB in one a corresponding order is stored in another order table or by triggering the check as a result of a direct call by the database control devices, so that the latter are exonerated from this test.

Den prinzipiellen Aufbau einer Wartegraphentabelle WTB zeigt FIG 15. Für jede in einen Wartegraphen einzutragende Transaktion ist eine Eintragszeile mit der zugehörigen Identität TA-ID vorgesehen. Mehrere Zeilen können über Folgeadressen F-AD in an sich bekannter Weise zu einem Wartegraphen gekettet sein. Zu jeder Zeile gehören weiterhin Anzeigefelder, nämlich ZUSTAND zur Kennzeichnung des augenblicklichen Zustandes der Transaktion als AKTIV, GESPERRT oder ENTFERNT GESPERRT, ZIEL zur Kennzeichnung des Knoten der entfernten Sperrung, ZEITL als lokale Zeitmarke zur Kennzeichnung der lokalen Sperrzeit und ZEIT EX als externe Zeitmarke.The basic structure of a waiting graph table WTB is shown in FIG. 15. For each transaction to be entered in a waiting graph, an entry line with the associated identity TA-ID is provided. Several lines can be chained to follow-up addresses F-AD in a manner known per se to form a waiting graph. Each line also contains display fields, namely STATE to identify the current status of the transaction as ACTIVE, LOCKED or REMOVED LOCK, TARGET to identify the node of the removed lock, TIME L as a local time stamp to identify the local lock time and TIME EX as an external time stamp.

Beim vorliegenden Beispiel beziehen sich die Einträge auf einen Wartegraphen mit den Transaktionen T1, T3, und Tx, wobei die Transaktion T1 das Endeglied darstellt und als "ENTFERNT GESPERRT" im Knoten K2 markiert ist. Auf diese Transaktion T1 sind nachfolgend die Transaktionen T3 und Tx aufgelaufen und daher als "GESPERRT" markiert. Die lokalen Zeitmarken enthalten die jeweilige Zeit des Eintrags, wobei die Zeitmarke des Endegliedes jeweils den höchsten Wert aller lokalen Zeitmarken des Wartegraphen enthält. Die externe Zeitmarke übernimmt dagegen einen durch externe Ereignisse ausgelösten Zeitwert, was bereits anhand von FIG 3 bis FIG 5 beschrieben worden ist.In the present example, the entries relate to a waiting graph with the transactions T1, T3, and Tx, the transaction T1 representing the end link and being marked as "REMOVED LOCKED" in node K2. Transactions T3 and Tx subsequently accrued on this transaction T1 and are therefore marked as "LOCKED". The local timestamps contain the respective time of the entry, the timestamp of the end link in each case containing the highest value of all local timestamps of the waiting graph. In contrast, the external time stamp takes on a time value triggered by external events, which has already been described with reference to FIGS. 3 to 5.

Die wesentlichen Aufgaben im Rahmen der der Erfindung zugrundeliegenden Verfahren werden mit wenigen Ausnahmen am Knoten der auftraggebenden globalen Transaktionssteuerung GTs von den einzelnen Kontrolleinrichtungen DCN ausgeführt. Es sind dies die Aussendung von Sperr-Rückmeldungen SRM von Fremdknoten an die jeweils steuernde globale Transaktionssteuerung GTS, die Markierung einer Transaktion als "ENTFERNT GESPERRT" aufgrund einer Sperrmeldung SM der steuernden globalen Transaktionssteuerung GTS in fremden Knoten mit Prüfung auf vorliegen einer Auslösebedingung für die Verklemmungsanalyse DLA, die Vergabe von Analyseaufträgen anhand der Auftragstabelle DLA-TAB, die Durchführung einer Verklemmungsanalyse DLA anhand eines empfangenen Analyseauftrages gegebenenfalls mit Weiterleitung des Auftrages beim weiterführunden globalen Wartergraphen oder mit Feststellung der zurückzusetzenden Transaktion im Falle einer festgestellten Verklemmung und die Übergabe eines entsprechenden Rücksetzauftrages an die jeweils zugehörigen lokalen Datenbanksteuereinrichtungen DBMS.The essential tasks within the scope of the method on which the invention is based are carried out by the individual control devices DCN with a few exceptions at the node of the global transaction control GT which is the ordering party. These are the sending of lock feedback SRM from foreign nodes to the respective controlling global transaction control GTS, the marking of a transaction as "REMOVED LOCKED" based on a lock message SM of the controlling global transaction control GTS in foreign nodes with a check for a trigger condition for the deadlock analysis DLA, the allocation of analysis orders based on the order table DLA-TAB, the implementation of a deadlock analysis DLA based on a received analysis order, possibly with the forwarding of the order to the continuing global waiting graph or with determination of the transaction to be reset in the event of a detected deadlock and the transfer of a corresponding reset order to respectively associated local database control devices DBMS.

Die entsprechenden Arbeitsabläufe seien nachfolgend anhand der Ablaufdiagramme von FIG 10 bis FIG 14 näher erläutert, wobei unterstellt sei, daß diese Aufgaben in Verbindung mit den übrigen Aufgaben der Kontrolleinrichtungen DCN im Rahmen einer zyklisch arbeitenden übergeordneten Aufgabenverwaltung wiederkehrend angesprochen und jeweils vorliegende Aufträge ausgeführt werden.The corresponding work processes are explained in more detail below with reference to the flow diagrams from FIG. 10 to FIG. 14, it being assumed that these tasks in connection with the other tasks of the control devices DCN are addressed repeatedly as part of a cyclically working superordinate task management and that the respective orders are executed.

Bezüglich des Sendens der Sperr-Rückmeldung SRM von fremden Knoten an die jeweilige auftraggebende globale Transaktionssteuerung GTS gemäß FIG 10 sei dabei unterstellt, daß während einer zwischen der globalen Transaktionssteuerung GTS und den jeweiligen Datenbanksteuereinrichtungen DBMS in einem fremden Knoten bestehenden Verbindung die zugehörigen Kontrolleinrichtungen DCN in periodischen Abständen eine Kontrollnachricht TACK an die globale Transaktionssteuerung GTS zurücksenden, um dieser anzuzeigen, daß die Verbindung besteht. In diesem Falle können die Kontrollnachrichten TACK gemäß einer Weiterbildung der Erfindung durch Zusatzangaben zur Sperr-Rückmeldung SRM ergänzt werden.Regarding the sending of the lock feedback SRM from foreign nodes to the respective ordering global transaction control GTS according to FIG. 10, it is assumed that during a connection between the global transaction control GTS and the respective database control devices DBMS in a foreign node, the associated control devices DCN are periodically Intervals send a control message TACK back to the global transaction control GTS to indicate that the connection exists. In this case, the control messages TACK can be supplemented according to a development of the invention by additional information on the lock feedback SRM.

Nach Aufruf der Aufgabe "KONTROLLNACHRICHT TACK SENDEN" wird daher zunächst die Auftragstabelle LOCK-TAB auf das Vorliegen eines Auftrages für eine Sperr-Rückmeldung an die gerade zu benachrichtigende globale Transkationssteuerung GTS überprüft. Liegt kein Auftrag vor, wird die Kontrollnachricht TACK in der üblichen Form gesendet. Ist dagegen eine Sperr-Rückmeldung SRM zu übersenden, werden die zugehörigen Angaben für die Sperr-Rückmeldung der Auftragstabelle LOCK-TAB entnommen und eine Kontrollnachricht mit Sperrinformation aufgebaut und gesendet.After calling the task "SEND CONTROL TACK TACK", the order table LOCK-TAB is therefore first checked for the existence of an order for a lock response to the global transaction control GTS to be notified. If there is no order, the control message TACK is sent in the usual form. If, on the other hand, a lock confirmation is to be sent to SRM, the associated information for the lock feedback is taken from the order table LOCK-TAB and a control message with lock information is set up and sent.

In Systemen, in denen Verbindungsleitungsausfälle ohne das wiederholte Senden von Kontrollnachrichten TACK überwacht werden, werden die Sperr-Rückmeldungen dagegen als selbständige Nachrichten übermittelt.On the other hand, in systems in which connection failures are monitored without the repeated sending of TACK control messages, the lock-back messages are transmitted as independent messages.

Die Entnahme des Auftrages aus der Auftragstabelle LOCK-TAB. was mit einer Löschung des Eintrages verbunden ist, erfolgt im vorliegenden Beispiel mit einer Verzögerung um die Zeitdauer AT, also nur, wenn zum Zeitpunkt des Zugriffs der Wert der lokalen Uhr mindestens gleich der um den Wert AT erhöhten Sperrzeitangabe tAP für die Sperr-Rückmeldung SRM ist. Werden daher Einträge in der Auftragstabelle LOCK-TAB vor Ablauf der Wartezeit AT durch die Datenbanksteuereinrichtungen DBMS gemäß FIG 9 wieder gelöscht, weil die Sperre inzwischen entfallen ist, so unterbleiben unnötige Sperr-Rückmeldungen, die gegebenenfalls eine Übermittlung unnötiger Nachrichten zur Durchführung von Verklemmungsanalysen auslösen könnten.The removal of the order from the order table LOCK-TAB. what is associated with a deletion of the entry takes place in the present example with a delay by the time period AT, that is only if, at the time of access, the value of the local clock is at least equal to the lock time indication t AP for the lock feedback, which is increased by the value AT SRM is. Therefore, if entries in the order table LOCK-TAB are deleted by the database control devices DBMS according to FIG. 9 before the waiting time AT expires because the lock has now been dispensed with, unnecessary lock-back messages are omitted, which could possibly trigger the transmission of unnecessary messages for carrying out jamming analyzes .

Der prinzipielle Aufbau der Auftragstabelle LOCK-TAB ist in FIG 16 gezeigt. Ein Eintrag umfaßt dabei die Identität GTS-ID der anzusteuernden globalen Transaktionssteuerung GTS, die Identität TA-ID der betroffenen Transaktion, die Zielangabe ORT sp für den vorzunehmenden Sperrvermerk und die Sperrzeitmarke ZEITSP mit der Sperrzeitangabe tsP.The basic structure of the order table LOCK-TAB is shown in FIG. 16. An entry includes the identity GTS-ID of the global transaction control GTS to be controlled, the identity TA-ID of the transaction concerned, the destination specification ORT sp for the blocking notice to be undertaken and the blocking time stamp ZEIT SP with the blocking time specification tsP.

Der Arbeitsablauf von FiG 11 zeigt Reaktion der Kontrolleinrichtung DCN in einem fremden Knoten nach Eingang Sperrmeldung SM, die einen Auftrag zur Markierung einer Transaktion als "ENTFERNT GESPERRT" zur Folge hat. Aufgrund dieses Auftrages wird zunächst die Wartegraphentabelle WTB überprüft und festgestellt, ob die betroffene Transaktion bereits eingetragen ist. Ist dies nicht der Fall, wird ein entsprechender neuer Wartegraphen angelegt, bestehend aus def identität TA-ID der betroffenen Transaktion, der Zustandsangabe "ENTFERNT GESPERRT" und dem Ziel der Fernsperrung. Bei Verwendung von zusätzlichen Zeitmarken wird in der zugehörigen externen Zeitmarke ZEITEX auch die mitgeteilte Sperrzeitangabe tS(K...)eingetragen. - Man siehe Ze4e 1 der Wartegraphentabelle WTB von FIG 15.The workflow of FiG 11 shows the reaction of the control device DCN in a foreign node after receipt of the lock message SM, which results in an order to mark a transaction as "REMOVED LOCKED". Based on this order, the waiting graph table WTB is first checked and it is determined whether the transaction concerned has already been entered. If this is not the case, a corresponding new waiting graph is created, consisting of the defident TA-ID of the transaction concerned, the status information "REMOVED LOCKED" and the destination of the remote lock. If additional time stamps are used, the specified blocking time specification t S (K ...) is also entered in the associated external time stamp ZEIT EX . - See Ze4e 1 of the waiting graph table WTB of FIG. 15.

Ist die angesprochene Transaktion dagegen in der Wartegraphentabelle WTB bereits enthalten, dann erfolgt die Ergänzung des zugehörigen Wartegraphen in gleicher Weise. Andererseits ist eine der auslösenden Bedingungen für die Prüfung, ob eine Verklemmungsanalyse DLA einzuleiten ist, erfüllt. Bei Verwendung von Zeitmarken wird außerdem geprüft, ob die vorgegebenen Zeitbedingungen erfüllt sind. Ist letzteres der Fall, erfolgt ein Eintrag in die Auftragstabelle DLA-TAB für die Durchführung einer Verklemmungsanalyse.If, on the other hand, the transaction in question is already contained in the waiting graph table WTB, the associated waiting graph is supplemented in the same way. On the other hand, one of the triggering conditions for checking whether a DLA deadlock analysis should be initiated is met. When using time stamps, it is also checked whether the specified time conditions are met. If the latter is the case, an entry is made in the order table DLA-TAB for carrying out a jam analysis.

Der prinzipielle Aufbau dieser Auftragstabelle DLA-TAB ist aus FIG 17 ersichtlich. Ein Eintrag umfaßt in diesem Falle die Identität DCN-ID der anzusteuernden Kontrolleinrichtungen, die Identität TA-IDEIN einer Transaktion als Suchkriterium für den betroffenen Wartegraphen, die Identität TA-IDDLAeiner Transaktion als Prüfkriterium für die Prüfung auf das Vorliegen einer Verklemmung, sowie bei Verwendung von Zeit marken ZEITDLA den Wert der Analyseprüfzeit tDLA.The basic structure of this order table DLA-TAB is shown in FIG 17. In this case, an entry includes the identity DCN-ID of the control devices to be controlled, the identity TA-ID ON of a transaction as a search criterion for the waiting graph concerned, the identity TA-ID DLA of a transaction as a check criterion for checking for the presence of a jam, and when using time marks ZEIT DLA the value of the analysis test time t DLA .

Wie bereits erwähnt, wird bei einer am Ort der globalen Transaktionssteuerung GTS vorzunehmenden Markierung einer lokalen Transaktion als ENTFERNT GESPERRT die anhand von FiG 11 beschriebene Aufgabe von der globalen Transaktionssteuerung selbst ausgeführt.As already mentioned, when a local transaction is marked at the location of the global transaction control GTS, the task described with reference to FIG. 11 is carried out by the global transaction control itself as REMOVED LOCKED.

Die aufgrund eines Eintrags in die Auftragstabelle DLA-TAB einzuleitende Verklemmungsanalyse DLA wird dagegen allein von den Kontrolleinrichtungen DCN der betroffenen Knoten ohne Einbeziehung der steuernden globalen Transaktionssteuerung GTS abgewickelt. FIG 12 zeigt den Arbeitsablauf bezüglich der Erteilung eines Verklemmungsanalyseauftrages und FIG 13 den Arbeitsablauf bezüglich der Ausführung des Auftrages im empfangenen Knoten.The deadlock analysis DLA to be initiated on the basis of an entry in the order table DLA-TAB, on the other hand, is carried out solely by the control devices DCN of the nodes concerned, without involving the controlling global transaction control GTS. FIG. 12 shows the workflow with regard to the issue of a jam analysis order and FIG. 13 shows the workflow with regard to the execution of the job in the received node.

Sobald von der Aufgabenverwaltung in einer der Kontrolleinrichtungen DCN die Aufgabe "PRÜFE DLA-TABELLE" aufgerufen wird, wird geprüft, ob in dieser ein Eintrag vorhanden ist. Liegt ein Auftrag vor, werden die Angaben hierzu entnommen und die Nachricht für einen Verklemmungsanalyseauftrag aufgebaut. Danach wird beispielsweise die Verbindung zum gewünschten Zielknoten hergestellt und, sobald diese steht, der Auftrag gesendet. Kann eine Verbindung dagegen nicht hergestellt und der Auftrag daher nicht weitergeleitet werden, dann muß ein Verbindungsausfall angenommen werden. In diesem Falle wird der Sperrvermerk der zugehörigen Transaktion in der Wartergraphentabelle gelöscht und diese als "AKTIV" markiert. Die Transaktion unterliegt damit wieder der üblichen lokalen Zeitüberwachung zur Verhinderung von Dauersperren und kann nach Zeitablauf zurückgesetzt werden. Der Verbindungsausfall bleibt damit ohne Auswirkung. Analoges gilt für Systeme, bei denen Nachrichten unmittelbar ohne vorherige Kontrolle der tatsächlichen Verbindungsherstellung ausgesendet werden und der Empfang jeder Nachricht quittiert wird, sobald eine Quittung ausbleibt.As soon as the task "CHECK DLA TABLE" is called up by the task management in one of the control devices DCN, it is checked whether there is an entry in this. If there is an order, the information for this is taken and the message for a jam analysis job is created. Then, for example, the connection to the desired destination node is established and, as soon as it is available, the job is sent. If, on the other hand, a connection cannot be established and the job cannot be forwarded, a connection failure must be assumed. In this case, the lock note of the associated transaction is deleted in the waiting graph table and marked as "ACTIVE". The transaction is again subject to the usual local time monitoring to prevent permanent locks and can be reset after the time has expired. The connection failure thus has no effect. The same applies to systems in which messages are sent immediately without prior checking of the actual establishment of the connection and the receipt of each message is acknowledged as soon as there is no acknowledgment.

Der am Zielhoten eingehende "AUFTRAG ZUR DURCHFÜHRUNG EINER VERKLEMMUNGSANALYSE" wird dann in der durch FiG 13 dargestellten Weise abgewickelt. Es wird zunächst anhand des Suchkriteriums der zugehörige Wartegraphen in der Wartregraphentabelle WTB aufgesucht und das Ende dieses Wartegraphens anhand des Prüfkriteriums überprüft. Gehört das Endeglied zu eine anderen globalen Transaktion, wird geprüft, ob eine Markierung als ENTFERNT GESPERRT" vorliegt. Ist dies nicht der Fall, kann die Analyse abgebrochen werden. Andernfalls ist der Auftrag an den neuen Zielknoten weiterzuleiten, indem ein Eintrag in der Auftragstabelle DLA-TAB vorgenommen wird.The "ORDER TO CARRY OUT A CLAMPING ANALYSIS" arriving at the target hotspot is then processed in the manner represented by FIG. 13. It will first be examined on the basis of the S uchkriteriums the associated wait graph in the Wartregraphentabelle WTB and checks the end of this waiting graphene using the test criterion. If the end link belongs to another global transaction, it is checked whether there is a mark as "REMOVED LOCKED". If this is not the case, the analysis can be terminated. Otherwise, the job must be forwarded to the new target node by an entry in the job table DLA -TAB is made.

Werden zusätzliche Zeitmarken verwendet, ist die Weiterleitung des Analyseauftrages zusätzlich von der Einhaltung der notwendigen Zeitbedingung abghängig.If additional time stamps are used, the forwarding of the analysis job is also dependent on compliance with the necessary time conditions.

Gehört dagegen das Endeglied des überprüften Wartegraphen zur gesuchten Globaltransaktion, dann liegt eine Systemverklemmung vor. Anhand des Wartegraphen wird daher eine geeignete Subtransaktion zum Zurücksetzen ermittelt und ein entsprechender Auftrag in die Auftragstabelle RES-TAB eingetragen.If, on the other hand, the end link of the checked waiting graph belongs to the global transaction sought, there is a system deadlock. A suitable subtransaction for resetting is therefore determined on the basis of the waiting graph and a corresponding order is entered in the order table RES-TAB.

Im Rahmen einer neuen Aufgabenzuweisung "PRÜFE RES-TAB" wird dann geprüft, ob ein Rücksetzauftrag vorliegt. Ist dies der Fall, werden die zugehörigen Daten entnommen und eine Rücksetznachricht für die zuständigen lokalen Datenbanksteuereinrichtungen DBMS aufgebaut und an diese übergeben. Diese veranlassen dann entsprechend FIG 9 die Rüchsetzung der im Auftrag benannten Subtransaktion und melden dies auf direktem Wege der zuständigen globalen Transaktionssteuerung, die dann anhand der Subtransaktionsliste die weiteren Rücksetzaufträge an die betroffenen Zielknoten sendet. Kann ein Rücksetzauftrag von den zuständigen Datenbanksteuereinrichtungen DBMS aus irgendwelchen Gründen nicht angenommen werden, dann wird in der Wartegraphentabelle WTB mit der Identität der zurückzusetzenden Transaktion der zugehörige Wartegraphen WG aufgesucht und der Sperrvermerk des zugehörigen Endegliedes gelöscht und dieses als "AKTIV" markiert, so daß auch in diesem Falle wieder in die lokale Zeitüberwachung übergeleitet wird.As part of a new task assignment "CHECK RES-TAB" it is then checked whether there is a reset request. If this is the case, the associated data are extracted and a reset message for the responsible local Database control devices DBMS set up and handed over to them. According to FIG. 9, these then cause the subtransaction named in the order to be reset and report this directly to the responsible global transaction control, which then uses the subtransaction list to send the further reset requests to the target nodes concerned. If a reset request cannot be accepted by the DBMS responsible for any reason, the waiting graph table WTB with the identity of the transaction to be reset is looked up in the waiting graph table WTB and the blocking note of the associated end link is deleted and marked as "ACTIVE" so that also in this case it is transferred back to the local time monitoring.

Das anhand von FIG 2 bis FIG 5 erläuterte Verfahren ist somit voll in die Steuerung eines verteilten Datenbanksystems integriert, wobei die eigentliche Datenverarbeitung durch die einzelnen Datenbanksteuereinrichtungen DBMS des verteilten Systems nur unwesentlich belastet wird, da alle wesentlichen Verfahrensaufgaben von den Kontrolleinrichtungen DCN des Systems wahrgenommen werden. Die jeweils zuständige globale Transaktionssteuerung GTS hat dabei in erster Linie die Aufgabe, Sperr-Rückmeldungen entgegenzunehmen und davon abgeleitet Sperrmeldungen an die von Subtransaktionen derselben Globaltransaktion betroffenen Knoten weiterzuleiten. Zusätzliche Aufgaben, die sich aus einem Sperreignis ergeben, führt die globale Transkationssteuerung dann nur im Verkehr mit den lokalen Datenbanksteuereinrichtungen DBMS im eigenen Knoten aus. Im übrigen sind die Kontrollsteuereinrichtungen DCN an den einzelnen Knoten zuständig, insbesondere für die Weiterleitung von Analyseaufträgen und deren Durchführung.The method explained with reference to FIG. 2 to FIG. 5 is thus fully integrated into the control of a distributed database system, the actual data processing being loaded only insignificantly by the individual database control devices DBMS of the distributed system, since all essential procedural tasks are performed by the control devices DCN of the system . The relevant global transaction control GTS has the primary task of accepting lock-back reports and, derived therefrom, of forwarding lock-ups to the nodes affected by subtransactions of the same global transaction. The global transaction control then carries out additional tasks resulting from a lock event only in connection with the local database control devices DBMS in its own node. In addition, the control control devices DCN are responsible at the individual nodes, in particular for the forwarding of analysis orders and their execution.

Claims (12)

1. Verfahren zum Vermeiden von globalen Systemverklemmungen bei der Verarbeitung von globalen Transaktionen (z.B. T1 bis T3) in verteilten Datenbanksystemen mit mehreren Knoten (z.B. K1 bis K3), wobei die jeweils in einem der Knoten ablaufenden Anwenderprozesse durch eine globale Transaktionssteuerung (GTS) abgewickelt werden und wobei jeder Knoten mit lokalen Datenbänken Datenbanksteuereinrichtungen (DBMS) für die Vergabe und das Aufheben von Sperren an lokalen Datenobjekten, für das Prüfen und Verwalten von lokalen Wartebeziehungen laufender Transaktionen oder selbständiger Teile derselben als Teil-oder Subtransaktionen (STA) und für das Rücksetzen von Transaktionen sowie jeder Knoten mit Kontrolleinrichtungen (DCN) für die verteilte Verarbeitung und die Überwachung bestehender Verbindungen und mit Einrichtungen (CAM) zum Nachrichtenaustausch zwischen den einzelnen Knoten ausgerüstet ist, dadurch gekennzeichnet, -daß jeder von einer globalen Transkationssteuerung (GTS) und auf eine Sperre aufgelaufene Subtransaktionsauftrag eine Sperr-Rückmeldung (SRM) an die zugehörige globale Transaktionssteuerung (GTS) auslöst und diese für alle übrigen Subtransaktionen derselben globalen Transaktion (z.B. T1) Sperrmeldungen (SM) zusammen mit einer Zielangabe über den die Sperrung auslösenden Knoten (z.B. K2) an alle betroffenen Knoten zur Kennzeichnung der jeweils dort anhängigen Subtransaktion mit einem Sperrvermerk als "ENTFERNT GESPERRT" versendet, -daß jede in einem der Knoten (z.B. K1) auf eine Sperre gelaufene und jede aufgrund einer Sperrmeldung (SM) mit einem Sperrvermerk zu versehende, noch nicht eingetragene Subtransaktion in die lokale Wartegraphentabelle (WTB) des jeweiligen Knotens (K1) eingetragen wird, in die im Falle einer Sperrmeldung (SM) auch der Sperrvermerk und die mitgeteilte Zielangabe eingetragen wird, -daß beim Eintrag eines Sperrvermerks zum Endeglied eines in der Wartegraphentabelle (WT8) bereits enthaltenenen Wartegraphen (WG) oder beim Eintrag einer Subtransaktion in einen Wartegraphen, dessen Endeglied bereits durch einen Sperrvermerk als "ENTFERNT GESPERRT" markiert ist, eine Verklemmungsanalyse (DLA) eingeleitet wird, die schrittweise auf die Knoten (z.B. K2, K3), deren lokale Wartegraphen (WG) durch die mit den Sperrvermerken verbundenen Zielangaben vorübergehend zu einem globalen Wartegraphen verbunden sind, ausgedehnt wird, bis ein offenes Ende des globalen Wartegraphen gefunden oder eine Verklemmung erkannt worden ist, die dann durch Rücksetzen einer geeigneten Transaktion aufgehoben wird. 1.Procedure to avoid global deadlocks when processing global transactions (e.g. T1 to T3) in distributed database systems with several nodes (e.g. K1 to K3), the user processes running in each of the nodes being handled by a global transaction control (GTS) and where each node with local databases database control devices (DBMS) for the assignment and lifting of locks on local data objects, for checking and managing local waiting relationships of current transactions or independent parts thereof as partial or sub-transactions (STA) and for resetting transactions and each node is equipped with control devices (DCN) for the distributed processing and monitoring of existing connections and with devices (CAM) for exchanging messages between the individual nodes, characterized in that - that each sub-transaction order from a global transaction control (GTS) and a lock triggers a lock response (SRM) to the associated global transaction control (GTS) and this for all other sub-transactions of the same global transaction (e.g. T1) lock messages (SM) together sent with a destination information about the node triggering the block (eg K2) to all affected nodes to identify the subtransaction pending there with a block note as "REMOVED BLOCKED", - that each sub-transaction that has been blocked in one of the nodes (e.g. K1) and that has not yet been entered due to a lock message (SM) and has not yet been entered with a lock note is entered in the local waiting graph table (WTB) of the respective node (K1) in in the case of a blocking message (SM), the blocking note and the specified destination information are also entered, -that a deadlock analysis (DLA) is initiated when a blocking note is entered for the end link of a waiting graph (WG) already contained in the waiting graph table (WT8) or when a subtransaction is entered in a waiting graph whose end link is already marked as "REMOVED LOCKED" by a locking note which is gradually extended to the nodes (e.g. K2, K3) whose local waiting graphs (WG) are temporarily connected to a global waiting graph by the destination information associated with the blocking information, until an open end of the global waiting graph is found or a deadlock is detected which is then canceled by resetting an appropriate transaction. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, daß zur Durchführung einer Verklemmungsanalyse (DLA) jeweils zwei Identitätsangaben (z.B. T1,T3) bereitgestellt werden, von denen die eine (z.B. T3) als einheitliches Prüfkriterium für die Feststellung einer Verklemmung in allen an der Prüfung beteiligten Knoten (z.B. K2 und K3) abhängig von dem jeweils die Verklemmungsanalyse (DLA) auslösenden Ereignis gleich der Identität (T3) der Globaltransaktion ist, deren Subtransaktion auf einen als "ENTFERNT GESPERRT" markierten Wartegraphen (WG) aufgelaufen ist oder deren Subtransaktion nachträglich in einem Wartegraphen (WG) als "ENTFERNT GESPERRT" markieren ist, während die andere (T1) als Suchkriterium zum Auffinden des zugehörigen Wartegraphen im jeweils angesteuerten Knoten (z.B. K2 oder K3) gleich der Identität (T1) der Globaltransaktion ist, deren Subtransaktion im jeweils auftraggebenden Knoten (z.B. K1) als "ENTFERNT GESPERRT" markiert ist, und daß eine Verklemmung als gegeben festgestellt wird, wenn in irgendeinem der von der Verklemmungsanalyse (DLA) erfaßten Knoten (z.B. K3) eine als "ENTFERNT GESPERRT" markierte Subtransaktion zu der durch das Prüfkriterium angegebenen Globaltransaktion (T3) gehört.2. The method according to claim 1, characterized in that for carrying out a deadlock analysis (DLA) two identity details (for example T1, T3) are provided, one of which (for example T3) as a uniform test criterion for the detection of a deadlock in all of the Depending on the event triggering the deadlock analysis (DLA), the nodes involved (e.g. K2 and K3) are equal to the identity (T3) of the global transaction, the subtransaction of which has accumulated on a waiting graph (WG) marked as "REMOVED LOCKED", or the subtransaction afterwards in a waiting graph (WG) is marked as "REMOVED LOCKED", while the other (T1) is a search criterion for finding the the corresponding waiting graph in the respective node (e.g. K2 or K3) is equal to the identity (T1) of the global transaction, the subtransaction of which is marked as "REMOVED LOCKED" in the respective node (e.g. K1), and that a deadlock is found to exist if in any of the nodes (eg K3) detected by the deadlock analysis (eg K3), a subtransaction marked as "REMOVED LOCKED" belongs to the global transaction (T3) specified by the check criterion. 3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß bei einem auf Sperre gelaufenen Subtransaktionsauftrag die Aussendung der Sperr-Rückmeldung (SRM) um eine vorgegebene Zeitdauer verzögert wird, daß die Sperr-Rückmeldung (SRM) unterdrückt wird, wenn während dieser Zeitdauer die Sperrbedingung entfallen ist, und daß eine aufgrund der Sperrbedingung einzuleitende Verklemmungsanalyse (DLA) erst eingeleitet wird, wenn die Sperr-Rückmeidung gesendet ist.3. The method according to claim 1 or 2, characterized in that the transmission of the lock response (SRM) is delayed for a predetermined period of time in a subtransaction order that has been blocked, that the lock feedback (SRM) is suppressed if during this period the lock condition is no longer present, and that a deadlock analysis (DLA) to be initiated on the basis of the lock condition is only initiated when the lock feedback has been sent. 4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, -daß alle in eine Wartegraphentabelle (WTB) eingetragenen Transaktionen oder Subtransaktionen mit einer von einer lokalen Uhr abgeleiteten lokalen Zeitmarke (ZEITL) versehen werden, -daß diese Zeitmarke als Sperrzeitangabe (TSP(K...)) der Sperr-Rückmeldung (SRM) und den davon ausgelösten Sperrmeldungen (SM) zugesetzt wird, -daß beim Eintreffen einer Sperrmeldung (SM) bei einem in der Wartegraphentabelle (WTB) noch nicht existierenden zuhörigen Wartegraphen ein neuer aus der entfert gesperrten Subtransaktion bestehender Wartegraph angelegt und mit einer externen Zeitmarke (ZEITEX) versehen wird, in die die mitgelieferte Sperrzeitangabe (tSP(K...)) eingetragen wird, während bei einem bereits angelegten Wartegraphen der größte Werte (tLmax) der vorhandenen lokalen Zeitmarken (ZEITL) des Wartegraphen in die externe Zeitmarke (ZEITEX) übertragen wird, -daß dagegen bei einer durch eine bereits als "ENTFERNT GESPERRT" markierte Subtransaktion erstmalig ausgelösten Sperre für eine weitere Subtransaktion der Wert der zugehörigen lokalen Zeitmarke als neuer Wert in die externe (ZEITEX) übernommen wird, -daß eine Verklemmungsanalyse (DLA) nur ausgelöst wird, wenn bei einem durch eine bereits als "ENTFERNT GESPERRT" markierte Subtransaktion ausgelösten Sperrereignis der Wert (tsp) der neuen lokalen Zeitmarke (ZEITL) größer als der Wert (tEXalt) der zu erneuernden externen Zeitmarke (ZEITEx) ist oder wenn bei einem nachträglich als "ENTFERNT GESPERRT" zu markierenden Wartegraphen der größte Wert (tLmax) der vorhandenen lokalen Zeitmarken (ZEITL) des Wartegraphen größer als die mitgeteilte Sperrzeitangabe (tSP(K...)) ist, -daß bei Einleitung einer Verklemmungsanalyse (DLA) jeweils der zuletzt gültige Wert (tEXneu) der externen Zeitmarke (ZEITEX) des den Analyseauftrag auslösenden Wartegraphen als Zeitmarke (TDLA) beigefügt wird und -daß die eingeleitete Verklemmungsanalyse (DLA) in den betroffenen Knoten (z.B. K2 oder K3) nur dann weitergeführt wird, wenn der Wert der mitgelleferten Zeitmarke (TDLA) größer oder gleich dem Wert (tex) der im jeweiligen Knoten bestehenden externen Zeitmake (ZEITEX) ist. 4. The method according to any one of claims 1 to 3, characterized in that all transactions or subtransactions entered in a waiting graph table (WTB) are provided with a local time stamp (TIME L ) derived from a local clock, -that this timestamp is added as a blocking time specification (T SP (K ...) ) to the blocking feedback (SRM) and the blocking messages (SM) triggered by it, -that when a blocking message (SM) arrives in the case of a waiting graph that does not yet exist in the waiting graph table (WTB), a new waiting graph consisting of the locked blocked subtransaction is created and given an external time stamp (ZEIT EX ) into which the supplied blocking time specification ( t SP (K ...) ) is entered, while the largest value (t Lmax ) of the existing local time stamps (TIME L ) of the waiting graph is transferred to the external time stamp (ZEIT EX ) if a waiting graph has already been created, - that, on the other hand, in the event of a block triggered for the first time by a subtransaction already marked as "REMOVED LOCKED", the value of the associated local time stamp is adopted as a new value in the external (ZEIT EX ), - That a deadlock analysis (DLA) is only triggered if the value (t s p) of the new local time stamp (TIME L ) is greater than the value (t EXalt ) of the in the event of a blocking event triggered by a subtransaction already marked as "REMOVED LOCKED" external time stamp to be renewed (TIME Ex ) or if the waiting graph to be marked as "REMOVED LOCKED" later, the greatest value (t Lmax ) of the existing local time stamps (TIME L ) of the waiting graph is greater than the reported locking time specification (t SP (K. ..) ) is - that when a deadlock analysis (DLA) is initiated, the last valid value (t EX new ) of the external time stamp (ZEIT EX ) of the waiting graph triggering the analysis job is added as a time stamp (T DLA ) and - that the initiated deadlock analysis (DLA) in the affected nodes (e.g. K2 or K3) is only continued if the value of the time stamp (T DLA ) that is also included is greater than or equal to the value (t ex ) of the external time mask existing in the respective node ( TIME EX ) is. 5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, daß zur Aufhebung einer festgestellten Verklemmung jeweils die günstigste lokalgesperrte Subtransaktion in dem Knoten (z.B. K3) zurückgesetzt wird, in dem die Verklemmung erkannt worden ist.5. The method according to any one of claims 1 to 4, characterized in that in order to cancel a detected deadlock, the cheapest locally blocked subtransaction in the node (e.g. K3) in which the deadlock has been detected is reset. 6. Verfahren nach einem der Ansprüche 1 bis 5 für verteilte Datenbanksysteme mit Überwachung der bestehenden Verbindungen zwischen den einzelnen Knoten durch wiederholte Kontrollrückmeldungen (TACK) bzw. Quittungen, dadurch gekennzeichnet, daß Aufträge für Sperr-Rückmeldungen (SRM) von den lokalen Datenbanksteuereinrichtungen (DBMS) in eine Tabelle (LOCK-TAB) eingetragen werden, die von Zeit zu Zeit von den Kontrolleinrichtungen für die verteilte Verarbeitung (DCN) überprüft wird, wenn eine Kontrollnachricht (TACK) an eine globale Transaktionssteuerung (GTS) zu versenden ist, und daß bei Vorliegen eines gültigen Auftrages für eine Sperr-Rückmeldung (SRM) an diese globale Transaktionssteuerung (GTS) der Kontrollnachricht (TACK) die dem Auftrag entsprechende Sperrinformation zugesetzt wird.6. The method according to any one of claims 1 to 5 for distributed database systems with monitoring of the existing connections between the individual nodes by repeated control feedback (TACK) or acknowledgments, characterized in that orders for lock feedback (SRM) from the local database control devices (DBMS ) are entered in a table (LOCK-TAB) which is checked from time to time by the control devices for distributed processing (DCN) when a control message (TACK) is to be sent to a global transaction control (GTS), and that at If there is a valid order for a block confirmation (SRM) to this global transaction control (GTS) of the control message (TACK), the block information corresponding to the order is added. 7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, daß von einer globalen Transaktionssteuerung (GTS) ausgesandte Sperrmeldungen (SM) von den Kontrolleinrichtungen für die verteilte Verarbeitung (DCN) im empfangenden Zielknoten ausgewertet und die notwendigen Einträge in der lokalen Wartegraphentabelle (WTB) von diesen direkt vorgenommen werden.7. The method according to any one of claims 1 to 6, characterized in that from a global transaction control (GTS) lock messages (SM) evaluated by the control devices for distributed processing (DCN) in the receiving destination node and the necessary entries in the local waiting graph table ( WTB) can be done directly by them. 8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, daß Aufträge für Verklemmungsanalysen (DLA) jeweils in eine Tabelle (DLA-TAB) eingetragen werden, die von Zeit zu Zeit von den Kontrolleinrichtungen für verteilte Verarbeitung (DCN) überprüft wird, daß bei Vorliegen eines Auftrages für einen anderen Knoten die Weiterleitung einer entsprechenden Nachricht eingeleitet wird, daß bei nicht übertragbarer Nachricht die Verklemmungsanalyse abgebrochen und im lokalen Wartegraphen die den Auftrag auslösende, als "ENTFERNT GESPERRT" markierte Subtransaktion direkt als "AKTIV" markiert wird, und daß von den Kontrolleinrichtungen für die vertielte Verarbeitung (DCN) im angesteuerten Knoten (z.B. K2) empfangene Aufträge zur Durchführung einer Verklemmungsanalyse (DLA) von diesen unmittelbar durch Prüfen der lokalen Wartegraphentabelle (WTB) ausgeführt werden, wobei im Falle einer festgestellten Verklemmung eine geeignete Transaktion ermittelt und ein daraus abgeleiteter Rücksetzauftrag in eine Tabelle (RES-TAB) eingetragen wird, von wo er an die zuständigen Datenbanksteuereinrichtungen (DBMS) weitergeleitet wird.8. The method according to any one of claims 1 to 7, characterized in that orders for deadlock analyzes (DLA) are each entered in a table (DLA-TAB) which is checked from time to time by the control devices for distributed processing (DCN), that when an order is available for another node, the forwarding of a corresponding message is initiated, that the deadlock analysis is terminated in the case of a non-transferable message and the subtra that triggered the order and is marked as "REMOVED LOCKED" in the local waiting graph Action is marked directly as "ACTIVE", and that orders received by the control devices for detailed processing (DCN) in the controlled node (for example K2) for carrying out a deadlock analysis (DLA) are carried out by the latter directly by checking the local waiting graph table (WTB) In the event of a jam, a suitable transaction is determined and a reset request derived therefrom is entered in a table (RES-TAB), from where it is forwarded to the responsible database control devices (DBMS). 9. Verfahren nach Anspruch 8, dadurch gekennzeichnet, daß für den Fall, daß ein vorliegender Rücksetzauftrag von den zugehörigen Datenbanksteuerungen (DBMS) nicht angenommen wird, in der Wartegraphentabelle (WTB) der die zurückzusetzende Transaktion aufweisende Wartegraphen aufgesucht und das als "ENTFERNT GESPERRT" markierte zugehörige Endeglied als "AKTIV" markiert wird.9. The method according to claim 8, characterized in that in the event that an existing reset job is not accepted by the associated database controls (DBMS), the waiting graph containing the transaction to be reset is looked up in the waiting graph table (WTB) and that is identified as "REMOVED LOCKED". marked associated end link is marked as "ACTIVE". 10. Anordnung zur Durchführung der Verfahren nach einem der Ansprüche 1 bis 9 mit Wartetabellen (WTB) zur Darstellung der lokalen Wartebeziehungen örtlich anhängiger Transaktionen oder Subtransaktionen, dadurch gekennzeichnet, daß jede globale Transaktionssteuerung (GTS) -Einrichtungen zur Entgegennahme von Sperr-Rückmeldungen (SRM) aus fremden Knoten (z.B. K2 und K3), -Einrichtungen zur Überwachung von Sperrereignissen am eigenen Knoten (z.B. K1), -Einrichtungen zur Ermittlung der übrigen Subtransaktionen der von 'einer Sperr-Rückmeldung (SRM) betroffenen globalen Transaktion, -Einrichtungen zum Erzeugen und Absetzen entsprechender Sperrmeldungen (SM) an fremde Knoten (z.B. K2 und K3), -Einrichtungen zum Prüfen und Ändern der Einträge der Wartegraphentabelle am eigenen Knoten (z.B. K1) abhängig von empfangenen Sperr-Rückmeldungen (SRM) oder abhängig von am eigenen Knoten (z.B. K1) aufgetretenen Sperr-Ereignissen und -Einrichtungen zum Prüfen auf das vorliegen eines damit verbundenen Auslösekriteriums für eine Verklemmungsanalyse anhand der lokalen Wartegraphentabelle (WTB)
aufweist und daß jeder in Betracht kommende Knoten (z.B. K1 bis K3) unabhängig von einer gegebenenfalls am Knoten vorhandenen globalen Transaktionssteuerung (GTS) - Einrichtungen zum Erzeugen und Senden von Sperr-Rückmeldungen (SRM) an die jeweils betroffene globale Transaktonssteuerung (GTS) abhängig von auf Sperre gelaufenen Subtransaktionen, -Einrichtungen zur Entgegennahme von Sperrmeldungen (SM), -Einrichtungen zum Prüfen und Ändern der Einträge der Wartegraphentabelle (WTB) abhängig von empfangenen Sperrmeldungen (SM) oder aufgetretenen Sperrereignissen und zum Prüfen auf das Vorliegen eines damit verbundenen Auslösekriteriums für eine Verklemmungsanalyse anhand der Wartegraphentabelle (WTB), -Einrichtungen zum Erzeugen und Senden von Verklemmungsanalyseaufträgen sowie zum Empfangen von Verklemmungsanalyseaufträgen, -Einrichtungen zum Prüfen auf Vorliegen einer Systemverklemmung abhängig von empfangenen Verklemmungsanalyseaufträgen anhand der Wartegraphentabelle (WTB) und -Einrichtungen zum Erzeugen von Rücksetzaufträgen bei Feststellung einer Systemverklemmung aufweist.
10. Arrangement for performing the method according to one of claims 1 to 9 with waiting tables (WTB) for displaying the local waiting relationships of locally pending transactions or sub-transactions, characterized in that each global transaction control (GTS) - facilities for receiving blocking feedback (SRM) from external nodes (eg K2 and K3), -Facilities for monitoring blocking events at your own node (e.g. K1), Equipment for the determination of the remaining subtransactions that of 'a barrier-feedback (SRM) affected global transaction, Devices for generating and issuing corresponding blocking messages (SM) to external nodes (for example K2 and K3), -Devices for checking and changing the entries in the waiting graph table at your own node (eg K1) depending on received lock feedback messages (SRM) or depending on lock events and occurred on your own node (eg K1) -Devices for checking the existence of a related trigger criterion for a deadlock analysis using the local waiting graph table (WTB)
and that each node in question (eg K1 to K3) is independent of any global transaction control (GTS) that may exist on the node - Devices for generating and sending block feedback (SRM) to the relevant global transaction control (GTS) depending on sub-transactions that have been blocked, - facilities for receiving blocking reports (SM), -Devices for checking and changing the entries in the waiting graph table (WTB) depending on received locking messages (SM) or locking events that have occurred and for checking for the existence of an associated trigger criterion for a deadlock analysis using the waiting graph table (WTB), Devices for generating and sending deadlock analysis jobs and for receiving deadlock analysis jobs, -Devices for checking for a system deadlock depending on received deadlock analysis orders using the waiting graph table (WTB) and -Devices for generating reset jobs when a system jam is detected.
11. Anordnung nach Anspruch 10, dadurch gekennzeichnet, daß die in den Knoten (z.B. K1 bis K3) unabhängig von der gegebenenfalls vorhandenen globalen Transaktionssteuerung (GTS) vorgesehenen Einrichtungen den Kontrolleinrichtungen (DCN) für die verteilte Verarbeitung als Teileinrichtungen zugeordnet sind, daß sowohl die Datenbanksteuereinrichtungen (DBMS) als auch die entsprechenden Teileinrichtungen der Kontrolleinrichtungen (DCN) je Knoten (z.B. K1) mit der lokalen Wartegraphentabelle (WTB) gekoppelt sind und abhängig voneinander auf diese zugreifen können und daß zur Hinterlegung von Aufträgen für Sperr-Rückmeldungen (SRM), für die Durchführung von Verklemmungsanalysen (DLA) und für das Rücksetzen von Transaktionen (RESET) Pufferspeicher (LOCK-TAB, DLA-TAB, RES-TAB) vorgesehen sind.11. The arrangement according to claim 10, characterized in that the devices provided in the nodes (for example K1 to K3) independently of the possibly existing global transaction control (GTS) are assigned to the control devices (DCN) for the distributed processing as sub-devices, that both the Database control devices (DBMS) as well as the corresponding sub-devices of the control devices (DCN) for each node (eg K1) are coupled to the local waiting graph table (WTB) and can access them depending on each other and that for the storage of orders for lock feedback (SRM), Buffer memories (LOCK-TAB, DLA-TAB, RES-TAB) are provided for carrying out deadlock analyzes (DLA) and for resetting transactions (RESET). 12. Anordnung nach Anspruch 11, dadurch gekennzeichnet, daß die Pufferspeicher (DLA-TAB, RES-TAB) für Verklemmungsanalyse-und Rücksetzaufträge als FIFO-Speicher ausgebildet sind.12. The arrangement according to claim 11, characterized in that the buffer memory (DLA-TAB, RES-TAB) for jam analysis and reset jobs are designed as a FIFO memory.
EP87116740A 1986-11-14 1987-11-12 Method and apparatus for preventing dead-locks in distributed data base systems Expired - Lifetime EP0273166B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AT87116740T ATE61677T1 (en) 1986-11-14 1987-11-12 METHOD AND ARRANGEMENT FOR AVOIDING GLOBAL STALLAGES IN DISTRIBUTED DATABASE SYSTEMS.

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE3638860 1986-11-14
DE3638860 1986-11-14

Publications (2)

Publication Number Publication Date
EP0273166A1 true EP0273166A1 (en) 1988-07-06
EP0273166B1 EP0273166B1 (en) 1991-03-13

Family

ID=6313912

Family Applications (1)

Application Number Title Priority Date Filing Date
EP87116740A Expired - Lifetime EP0273166B1 (en) 1986-11-14 1987-11-12 Method and apparatus for preventing dead-locks in distributed data base systems

Country Status (3)

Country Link
EP (1) EP0273166B1 (en)
AT (1) ATE61677T1 (en)
DE (1) DE3768628D1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001059568A2 (en) * 2000-02-11 2001-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Active cooperation deadlock detection system/method in a distributed database network
US11246905B2 (en) 2016-08-15 2022-02-15 President And Fellows Of Harvard College Treating infections using IdsD from Proteus mirabilis

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, Band SE-11, Nr. 7, Juli 1985, IEEE, New York, US; B. WAH et al.: "Design of distributed data-bases M local computer systems with a multiaccess network" *
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, Band SE-8, Nr. 6, November 1982, Seiten 554-557, IEEE, New York, US; G. HO et al.: "Protocols for deadlock detection in distributed database systems" *
JOURNAL OF TELECOMMUNICATION NETWORKS, Band 2, Nr. 3, 1983, Seiten 295-304, Rockville, US; W.W. CHU et al.: "Design considerations for shared integrated database systems (SIDS)1" *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001059568A2 (en) * 2000-02-11 2001-08-16 Telefonaktiebolaget Lm Ericsson (Publ) Active cooperation deadlock detection system/method in a distributed database network
WO2001059568A3 (en) * 2000-02-11 2002-04-25 Ericsson Telefon Ab L M Active cooperation deadlock detection system/method in a distributed database network
GB2374700A (en) * 2000-02-11 2002-10-23 Ericsson Telefon Ab L M Active cooperation deadlock detection system/method in a distributed database network
US11246905B2 (en) 2016-08-15 2022-02-15 President And Fellows Of Harvard College Treating infections using IdsD from Proteus mirabilis

Also Published As

Publication number Publication date
ATE61677T1 (en) 1991-03-15
DE3768628D1 (en) 1991-04-18
EP0273166B1 (en) 1991-03-13

Similar Documents

Publication Publication Date Title
DE4216871C2 (en) Execution rules to ensure the serializability of distributed transactions
DE4497149B4 (en) Computer-based method for data replication in peer-to-peer environment
EP0010198B1 (en) Device for page replacement control in a data processing system with a virtual memory
DE3611223C2 (en)
DE69923621T2 (en) Method and apparatus for correct and complete transfers in a fault tolerant distributed database system
DE602005004334T2 (en) Nms for processing multi-server events
EP0635784A1 (en) Multiprocessorsystem
DE602005002024T2 (en) Facsimile system and telecopying
DE4033336A1 (en) METHOD FOR GENERATING A FAILURE MESSAGE AND MECHANISM FOR FAILURE MESSAGE
DE4420451A1 (en) Inhibiting (blocking) mechanism for a CHECK-IN/CHECK-OUT model
EP1811404A1 (en) Technology for supplying a data warehouse while ensuring consistent data view
DE69907852T2 (en) Highly available asynchronous input / output for grouped computer systems
DE4207158A1 (en) MEMORY ACCESS CONTROL
DE1524151C2 (en) Circuit arrangement for connecting the storage unit of a central data processing system with asynchronous connected data units
DE102004003102A1 (en) System and method for determining a transaction timeout
EP0273166B1 (en) Method and apparatus for preventing dead-locks in distributed data base systems
DE19826091A1 (en) Method for securely changing data stored in a database, database system and network element equipped with it
DE4402866A1 (en) Buffer management system for managing a buffer pool
DE2410879A1 (en) DEVICE FOR FREEZE FORECAST IN AN ELECTRONIC DATA PROCESSING SYSTEM
Haerder et al. Transaktionssysteme in Workstation/Server-Umgebungen
EP0135173B1 (en) Method and device for dead-lock avoidance in distributed data bank systems
DE10123822A1 (en) Management of the service connection between a client process having a single thread archive and a server
DE60315030T2 (en) AVOIDING DATA LOSS WHEN UPDATING A DATA WAREHOUSE
EP0825532B1 (en) Method of operation for a multiprocessor data processing system and multiprocessor data processing system operating according to said method
DE1774466B2 (en) DATA PROCESSING SYSTEM

Legal Events

Date Code Title Description
PUAI Public reference made under article 153(3) epc to a published international application that has entered the european phase

Free format text: ORIGINAL CODE: 0009012

AK Designated contracting states

Kind code of ref document: A1

Designated state(s): AT BE CH DE FR GB IT LI NL SE

17P Request for examination filed

Effective date: 19880725

17Q First examination report despatched

Effective date: 19891106

GRAA (expected) grant

Free format text: ORIGINAL CODE: 0009210

AK Designated contracting states

Kind code of ref document: B1

Designated state(s): AT BE CH DE FR GB IT LI NL SE

REF Corresponds to:

Ref document number: 61677

Country of ref document: AT

Date of ref document: 19910315

Kind code of ref document: T

REF Corresponds to:

Ref document number: 3768628

Country of ref document: DE

Date of ref document: 19910418

ET Fr: translation filed
ITF It: translation for a ep patent filed

Owner name: STUDIO JAUMANN

GBT Gb: translation of ep patent filed (gb section 77(6)(a)/1977)
PLBE No opposition filed within time limit

Free format text: ORIGINAL CODE: 0009261

STAA Information on the status of an ep patent application or granted ep patent

Free format text: STATUS: NO OPPOSITION FILED WITHIN TIME LIMIT

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: CH

Payment date: 19920221

Year of fee payment: 5

26N No opposition filed
PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: FR

Payment date: 19921123

Year of fee payment: 6

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: SE

Payment date: 19921125

Year of fee payment: 6

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: LI

Effective date: 19921130

Ref country code: CH

Effective date: 19921130

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: NL

Payment date: 19921130

Year of fee payment: 6

REG Reference to a national code

Ref country code: CH

Ref legal event code: PL

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: SE

Effective date: 19931113

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: NL

Effective date: 19940601

NLV4 Nl: lapsed or anulled due to non-payment of the annual fee
PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: FR

Effective date: 19940729

REG Reference to a national code

Ref country code: FR

Ref legal event code: ST

EUG Se: european patent has lapsed

Ref document number: 87116740.9

Effective date: 19940610

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: GB

Payment date: 19951019

Year of fee payment: 9

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: GB

Effective date: 19961112

GBPC Gb: european patent ceased through non-payment of renewal fee

Effective date: 19961112

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: AT

Payment date: 20021018

Year of fee payment: 16

PGFP Annual fee paid to national office [announced via postgrant information from national office to epo]

Ref country code: DE

Payment date: 20021202

Year of fee payment: 16

Ref country code: BE

Payment date: 20021202

Year of fee payment: 16

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: AT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20031112

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: BE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20031130

BERE Be: lapsed

Owner name: *FIJITSU SIEMENS COMPUTERS G.M.B.H.

Effective date: 20031130

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: DE

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES

Effective date: 20040602

PG25 Lapsed in a contracting state [announced via postgrant information from national office to epo]

Ref country code: IT

Free format text: LAPSE BECAUSE OF NON-PAYMENT OF DUE FEES;WARNING: LAPSES OF ITALIAN PATENTS WITH EFFECTIVE DATE BEFORE 2007 MAY HAVE OCCURRED AT ANY TIME BEFORE 2007. THE CORRECT EFFECTIVE DATE MAY BE DIFFERENT FROM THE ONE RECORDED.

Effective date: 20051112