WO2004031955A2 - Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung - Google Patents

Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung Download PDF

Info

Publication number
WO2004031955A2
WO2004031955A2 PCT/EP2003/010794 EP0310794W WO2004031955A2 WO 2004031955 A2 WO2004031955 A2 WO 2004031955A2 EP 0310794 W EP0310794 W EP 0310794W WO 2004031955 A2 WO2004031955 A2 WO 2004031955A2
Authority
WO
WIPO (PCT)
Prior art keywords
area
data storage
storage device
individual
areas
Prior art date
Application number
PCT/EP2003/010794
Other languages
English (en)
French (fr)
Other versions
WO2004031955A3 (de
Inventor
THEUER Thomas SCHÖBEL
Original Assignee
Schoebel Theuer Thomas
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from DE10246369A external-priority patent/DE10246369A1/de
Priority claimed from DE2002146367 external-priority patent/DE10246367A1/de
Application filed by Schoebel Theuer Thomas filed Critical Schoebel Theuer Thomas
Priority to AU2003270288A priority Critical patent/AU2003270288A1/en
Priority to DE10393434T priority patent/DE10393434D2/de
Priority to US10/529,435 priority patent/US20060168413A1/en
Publication of WO2004031955A2 publication Critical patent/WO2004031955A2/de
Publication of WO2004031955A3 publication Critical patent/WO2004031955A3/de

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/0284Multiple user address space allocation, e.g. using different base addresses
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation

Definitions

  • the invention relates to a method for regulating data access in a system consisting of several individual systems to at least one data storage device, the accesses being able to overlap and overlap in terms of time and data area.
  • the access and latency times as well as the maximum data rate, which limits throughput represent a major problem.
  • This problem also occurs in standalone systems in the form of the so-called memory gap and is a so-called “bottleneck problem”. known for a long time.
  • DSM distributed shared memories
  • the invention has for its object to provide a method and devices for regulating data access, that enables the fastest possible operations while minimizing unnecessary data traffic.
  • This object is achieved according to the invention in that the individual systems reserve free data or address areas of the data source and the reserved areas are then blocked for access by other individual systems, speculatively enlarged areas being reserved compared to the directly required areas.
  • the invention is e.g. in connection with Distributed Shared Memories (DSM), with the NUMA architecture (Non-Uniform Memory Addressing), with SMP computers (Symmetrie MultiProcessor) or the like. It has particular advantages with distributed systems.
  • DSM Distributed Shared Memories
  • NUMA Non-Uniform Memory Addressing
  • SMP computers Symmetrie MultiProcessor
  • a data storage device and individual systems cooperating with the data storage device are provided to achieve the object.
  • the data storage device receives reservation requests from the individual systems with which the individual systems want to reserve free data or address areas with the data storage device.
  • Reservation means of the data storage device reserve the speculatively enlarged areas for the individual systems.
  • the reservation means can also reserve the required areas. It is particularly preferred that the individual systems specify the areas they need directly using one or more address details. In this embodiment of the invention, it is therefore not only important that the data storage device reserves memory areas for the individual systems at all, which can be arranged in any storage location, but by the individual systems with address details specified memory areas. This also applies to the request for a speculatively enlarged area by a single system, whereby such a request can also be made at the same time as the request for a directly required area, the location of which is defined by the individual systems.
  • the individual systems of the data storage device do not provide any information about the directly required areas, but instead request speculatively enlarged areas from the outset. This is because the speculatively enlarged area can also be understood as a superset or an upper area of a directly required storage area.
  • the data storage device reserves the individual systems speculatively enlarged areas if possible, but at least the memory area directly required. However, it can happen that a smaller speculatively enlarged memory area is reserved than has been requested, or even areas that are not directly required have been reserved. Subsequent communication enables the data storage device and the respective individual system to solve this problem.
  • the extension of the directly required areas can be specified by the individual systems in the respective reservation request.
  • the data storage device can speculatively enlarge the directly required areas by extension areas.
  • the individual systems can access both the directly required and the speculatively expanded areas without having to make another reservation request. change is required.
  • Different variants are possible for the individual systems. For example, they can be databases, operating systems or the like. It is also possible for an individual system to be represented by a computer, for example a personal computer.
  • the individual systems are, for example, also individual processes or modules that are operated under the management of an operating system or distributed operating system.
  • the same applies in principle to the data storage device which can be, for example, a data storage module of a database, an operating system or the like.
  • the data storage module manages memory of the system, which is represented, for example, by a computer.
  • Reservations also called locks, always lead to a waiting time due to the communication latencies. If each time you only occupied the currently required data or address area with a lock that is currently required, there would be a waiting time each time a new lock is required.
  • By reserving a speculatively enlarged area you do not need to make a time-consuming new access every time, but can use the already received speculatively enlarged area without waiting, e.g. pass it on to other individual systems as sub-tenants as soon as corresponding requirements are made. If the speculatively enlarged area is not required, it can be returned to other individual systems that need it at any time. Overall, this significantly reduces data access time.
  • the procedure according to the invention causes a speculative distribution of the available data areas in advance, which are subsequently corrected by current requirements can. Various strategies can then be used to return speculatively requested or reserved areas.
  • the data storage device preferably serves as a communication platform for the individual systems.
  • two or more individual systems use a common area of the data storage device.
  • the individual systems enter and / or read out information in such a data area.
  • the precautionary speculative reservation of expansion areas then also makes it possible for the individual systems not only to read and / or change the information in the directly required area, but also to be able to change the information contained in the expansion area or areas.
  • the invention is based on the knowledge that usually initially only the information contained in directly required areas is relevant for a single system. Often, a single system will later need information that is located next to the area that was originally required.
  • the return of speculatively reserved areas can be at least partially released if a corresponding reservation request is made by another individual system or a data storage device.
  • the data storage device can return without inquiry to a single system whose expansion area (s) are to be reduced. However, it is expedient for the data storage device to have an individual system. If possible, be informed about these measures before reducing or returning an expansion area.
  • the data storage device beforehand e.g. asks for his consent to return an extension area by means of a so-called retract message.
  • the individual system can then return all or just part of the extension area to be returned, e.g. agree by means of a so-called retract grant message.
  • extension area is only released for a reservation request if it is requested by the requesting individual system as a directly required area.
  • the extension area can also be released, in particular also completely released, when a reservation request is made by another individual system, even if it is only requested as an extension area by this other individual system.
  • areas that are directly required are not released in favor of requirements for expansion areas.
  • Intermediate strategies are also possible, that is, in the case of a reservation request by another individual system, the extension area is only released to a certain extent if it also only affects the extension area in this other individual system. For example, half of the requested expansion area or the expansion area reserved for the first individual system can be released.
  • the individual systems forming the system are, for example, databases and / or operating systems.
  • the individual systems and the at least one data storage device are expediently used by means of a buffer cache. Units decoupled from each other. Buffer modules of this type ensure that activities, for example between inputs and outputs, are decoupled and are suitable for adapting the time access behavior between slow and fast module instances.
  • the release of the directly required area in the event of a reservation request from another individual system expediently depends on the urgency of the respective reservation.
  • urgency priorities can be introduced so that, for example, access by a single system with very high priority can force the release of an area reserved by another single system with very low urgency.
  • the reservations can relate to read access, write access or both.
  • exclusive read access multiple reservations of a directly required area and / or an expansion area are possible, e.g. so-called read or shared locks, while exclusive reservations are useful for write access, so-called write or exclusive locks.
  • Figure 1 is a schematic representation of a first embodiment of the invention with a system consisting of three individual systems and a data storage device.
  • FIG. 2 shows a schematic illustration to explain the reservation of address areas
  • FIG. 3 shows a schematic illustration of a second exemplary embodiment of the invention with a system constructed in a modular manner and consisting of two individual systems and a data storage device
  • Figure 4 is a schematic representation of a reservation request
  • Figure 5 is a schematic representation of a release message.
  • the distributed system 9 shown in FIG. 1 consists of three individual systems 10 - 12 and 10 ', which can be databases and / or operating systems, and a data storage device 13, which can be any data source.
  • the individual systems 10-12 and the data storage device 13 are connected to one another via buffer modules 14-17, which can be buffer cache units. Buffer modules of this type are used for decoupling and for adapting the time access behavior between slow and fast modules and can also be designed in the manner of individual systems according to the invention.
  • the individual systems 10-12 and the data storage device 13 can also be connected to one another via other coupling elements or types of connection.
  • the number of individual systems 10-12 is practically arbitrary, with several data storage devices also being provided can. Not only the individual systems 10-12 can access the data storage device 13, but also - in the case of a plurality of data storage devices 13 - such data storage devices can also access one another, for example recursively. Such data storage devices 13 can also be components of individual systems 10-12 or form such.
  • the data accesses can in principle be write accesses and / or read accesses.
  • an individual system 10-12 wants to access data from the data storage device 13, it requires not only the directly required address area 18 (shown with a thick line) for the action to be performed by it, but also an area 20 speculatively enlarged by extension areas 19, 19 ' on.
  • the request for such a lock can usually only take effect when the corresponding areas are free.
  • other individual systems can no longer easily access the reserved area, that is to say the speculatively enlarged area 20.
  • the speculatively enlarged area 20 is immediately available for subsequent actions of the respective individual system 10 - 12, that is, if, for example, addresses in the extension areas 19, 19 'are required, this can be done in a time-saving manner without further lock requests.
  • the individual system 10 had the area 20 speculatively enlarged by extension areas 19, 19 " 'reserved for the data storage device.
  • Cell system 10 can now not only access the information b and c stored in the directly required area 18, if necessary also change it, but also the information a, d, e and f stored in the extension areas 19, 19 '.
  • the individual system 10 can access the extension areas 19, 19 'without a further reservation request and read and / or modify the information a, d, e and f.
  • the buffer module 14 functions in the manner of an individual system according to the invention and requests extended memory areas from the data storage device 13.
  • the individual system 10 could only request directly required areas from the buffer module 14, and the buffer module 14 could manage speculatively expanded areas which it e.g. has itself requested or received from the data storage device 13 without any special request. If the individual system 10 or another individual system 10 'connected to the buffer module 14' requests further memory areas from the buffer module 14, the buffer module 14 reserves these memory areas from the extended areas if possible. A further time-consuming reservation with the data storage device 13 is generally not necessary for this.
  • FIG. 2 now shows that another individual system wants to access addresses of the data storage device 13 in such a way that overlaps would result.
  • a lock request from another system with a directly required area 21 (shown in thick lines) and extension areas 22 and 24 is shown, that is to say that the other individual system requests a speculatively enlarged area 23, which deals with the already reserved area.
  • fourth speculatively enlarged area 20 of the first individual system overlaps.
  • the first individual system releases the entire expansion area 19 '.
  • the first individual system only releases the expansion area 19 'to the extent that it is overlapped by the speculatively enlarged area 22 of the second individual system.
  • the first individual system only releases the extension area 19 'to the extent that it is overlapped by the directly required address area 21 of the second individual system.
  • the first individual system releases the expansion area 19 'to the extent that it is overlapped by the directly required address area 21 of the second individual system, and in addition a part of the area overlapped by the expansion area 22 of the second system is released.
  • the area occupied by both extension areas 19 'and 22 can be divided in half or divided according to an urgency key if the locks are assigned to different urgency levels. These urgency levels can also determine which alternatives are used.
  • the address area 18 of the first individual system directly required is generally not released or returned, not even partially.
  • directly required address areas 18 or 21 overlap there is generally no release or return. would be the area reserved first, although here, too, other return criteria can be introduced depending on the urgency levels of the locks, statistical analyzes of previous lock operations and / or memory accesses or other criteria.
  • a scenario is described below in which the individual systems 10 and 11 communicate with one another by writing and reading information to common areas within the data storage device 13.
  • the starting situation is, for example, the above scenario, in which the individual system 10 requested the enlarged area 20 from the data storage device 13.
  • the individual system 10 has, for example, written the information e and f in the expansion area 19 '.
  • the individual system 11 now requests the directly required area 21, which is preferably to be speculatively enlarged to the area 23, from the data storage device. It is possible for the individual system 10 to register the request for enlarging the directly required area 21 with the data storage device 13. It is also possible for the data storage device 13 to enlarge the directly required area 21 by the extension areas 22 and 24.
  • the individual system 11 can read out the information f after at least the directly required area 21 has been reserved for it. This is possible, for example, if the data storage device 13 realizes the third variant explained above. If the data storage device 13 explains the second realized variant, in which it also reserves the expansion area 22 for the individual system 11, the individual system 11 can also read the information e. The part of the expansion areas 19 ′ and 22 containing the information e then forms a common area via which the individual systems 10 and 11 communicate. In any case, the data storage device 13 serves as a communication platform for the individual systems 10 and 11 in both scenarios. It goes without saying that further data and address areas of the data storage device can also serve for communication of the individual systems 10, 11 and 12.
  • the data storage module manages the memory 31 of a computer 40 and at least partially makes this memory 31 available to the individual modules 41, 42, which are individual systems according to the invention.
  • the modules 41 to 43 are, for example, program modules whose program code is executed by one or more processors 30 of the computer 40.
  • the modules 41 to 43 are operated under the control of an operating system 32.
  • the data storage module 43 may e.g. form part of the operating system 32 or a database.
  • the individual modules 41, 42 are, for example, application programs.
  • the computer 40 is shown very schematically and can have further means, not shown, for example input / output means, network interfaces or the like.
  • the computer 40 have a monitor, loudspeaker, keyboard or the like.
  • the individual modules 41, 42 reserve data and address areas in the data storage module 43. In some cases, the reserved data and address areas serve for inter-process communication of the individual modules 41, 42.
  • a reservation of memory area can proceed as follows:
  • communication means 45 instruct requesting means 44 to request a directly required address area 49 of a storage means 47 of the memory 31.
  • the storage means 47 is, for example, RAM (Random Access Memory) and / or hard disk memory.
  • the communication means 45 for example, want to write information directed to the individual module 42 into an area of the storage means 47 that can be addressed via the address area 49.
  • the reservation means 44 send a reservation request 50 to the data storage module 43.
  • the reservation request 50 is, for example, a function call, an interprocess message or the like and can have the name “Lock_Address” or “Get_Address”, for example.
  • the reservation request 50 has the following contents, for example: An address specification 51, which defines the first address within the address area 49, for example.
  • the address area 49 is preferably linear.
  • Reservation request 50 also contains information 52 about the minimum length of the desired address area to be reserved, as well as information about the maximum length of the address area that begins with address information 51.
  • the data 51, 52 thus define the directly required address area 49, the data 53 one or more speculatively expanded areas.
  • the specification 53 can, for example, be one or more length specifications and / or contain address details.
  • the information 51, 52 could also indicate the first and the last address of the area 49.
  • the reservation means 44 request a larger address area from the data storage device 43 than is required directly.
  • the reservation request 50 can optionally also contain an indication 54 which, for example, indicates whether writing and / or reading is planned in the address area to be reserved, whether the address area is to be initialized, for example, by writing start values or the like.
  • An optional blocking information 55 of the reservation request 50 specifies whether the address area to be reserved should be blocked against write and / or read access by other individual modules.
  • the reservation request 50 can also contain sender and recipient identifiers or the like.
  • reservation means 46 of the data storage module 43 reserve both the directly required address area 49 and the extension address area 48, which adjoins the address area 49, for the individual module 41.
  • the individual module 41 can then write information into the address areas 48, 49 , Read out information there or the like.
  • the interactive accesses of the individual module 41 to the address areas 48, 49 are shown schematically by an arrow 70 in the drawing.
  • the data storage module 43 confirms to the individual module 41 that the address area 48, 49 has been reserved for the individual module 41.
  • the confirmation message 65 contains, for example, an address 66 and a length 67 which indicate the start and the length of the actually reserved area, which in the present case comprises the address areas 48, 49. In principle, a smaller area could also have been reserved, for example, only the directly required address area 49. 65 can also contain further information, not shown, for example in analogy to the reservation request 50.
  • the release message 60 contains, for example an address 61 which in the present case corresponds to address 51.
  • the address information 61 could also be another address within the ranges 48, 49.
  • the address 61 defines the location of the data or address area to be released.
  • the address information 61 contains, for example, the first address to be released.
  • the release message also contains a length specification of the area to be released, for example the total length of the address areas 48, 49. It is also possible for the release message 60 to release only part of the address area 48, 49.
  • the release message 60 can also contain sender and recipient identifiers.
  • the individual module 42 can then reserve the address areas 48 and / or 49 or a part thereof by means of a reservation request 50 ′ and read and / or modify information stored there by the individual module 41.
  • the individual module 42 releases the reserved memory areas.
  • the data storage module 43 can carry out the variants 1 to 4 explained in connection with FIG. 2 in the event of competing reservation requests for the individual modules 41, 42 or other individual modules (not shown).
  • the reservation means 46 can, in the case of reservation requests, the address ranges which have already been reserved elsewhere. Before they concern, also send a request for reclamation (eg with the name ⁇ Notify_Lock "or ⁇ Retract_Address n ) to a single system for which an address area is already reserved if part of this address area is to be reserved for another single system
  • the address area is preferably an extension area, but it can also be a directly required area.
  • the individual system can then agree to return the reserved area in whole or in part. For example, a speculatively expanded area is released in full, in half or in another fraction.
  • the confirmation of Address area release can be sent to the data storage device and / or to the individual system competing for the address area.

Landscapes

  • Engineering & Computer Science (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)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

Es werden Verfahren und Vorrichtungen zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen (10-12) bestehenden System auf wenigstens eine Datenspeichereinrichtung vorgeschlagen, bei dem die Einzelsysteme (10-12) sich freie Daten- oder Adressenbereiche der Datenspeichereinrichtung reservieren und die reservierten Bereiche für einen Zugriff durch andere Einzelsysteme (10-12) dann gesperrt sind, wobei gegenüber den direkt benötigten Bereichen (18, 21) spekulativ vergrösserte Bereiche (20, 23) reserviert werden. Hierdurch können ein reduzierter Datenverkehr und geringere Latenzzeiten erreicht werden.

Description

Verfahren zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen bestehenden System auf wenigstens eine Datenspeichereinrichtung
Die Erfindung betrifft ein Verfahren zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen bestehenden System auf wenigstens eine Datenspeichereinrichtung, wobei sich die Zugriffe zeitlich und datenbereichsmäßig überlappen und überschneiden können. Insbesondere beim Datenzugriff in verteilten Systemen stellen die Zugriffs- bzw. Latenzzeit sowie die maximale Datenrate, die den Durchsatz begrenzt, ein großes Problem dar. Dieses Problem tritt in Gestalt der sogenannten Speicherlücke auch in alleinstehenden Systemen auf und ist als sogenanntes "Flaschenhals-Problem" lange bekannt.
Zur Lösung dieses Flaschenhals-Problems sind zwei erprobte, grundlegende Strategien bekannt: Man versucht die Lösung entweder durch Hardware-Aufrüstung oder zur Senkung der zur Lösung einer Aufgabe notwendigen Belastung. Während sich bei der Hardware klassischer Peripheriegeräte in der Vergangen- heit ständige Fortschritte sowohl bei den Latenzzeiten als auch beim Durchsatz ereignet haben und voraussichtlich weiter ereignen werden, sind derartige Fortschritte bei räumlich weit verteilten Systemen nur beim Durchsatz, nicht hingegen bei der Latenzzeit möglich, da die Kommunikation von der Lichtgeschwindigkeit begrenzt wird. Daher ist unnötiger Da- tenverkehr bzw. unnötiges Warten auf die Ausführung von Operationen bei verteilten Systemen noch dringender zu vermeiden als in alleinstehenden Systemen.
Geht es nicht nur um die Verteilung einer Ressource an sich, beispielsweise eines Speichers der eingangs genannten Datenspeichereinrichtung, sondern auch um Qualitäten einer Ressource, z.B. um Speicherinhalte innerhalb der Datenspeichereinrichtung, sind noch größere Performance-Probleme zu erwarten. Beispielsweise greifen mehrere Prozesse, die unter einem Betriebssystem, z.B. UNIX, betrieben werden, auf gemeinsame Speicherbereiche, sogenannte Shared Memories, zu. Die gemeinsamen Speicherbereiche dienen z.B. zur Interpro- zess-Kommunikation. Das Betriebssystem verwaltet die Zugriffe der Prozesse, z.B. um konkurrierende Schreib- und Lesezugrif- fe der Prozesse auf die gemeinsamen Speicherbereiche zu steuern. Die Prozesse fordern jeweils Zugriffe auf diejenigen gemeinsamen Speicherbereiche beim Betriebssystem an, auf die sie aktuell jeweüs lesend und/oder schreibend zugreifen müssen. Die Zugriffsverwaltung durch das Betriebssystem ist zeitaufwendig und kompliziert, die Effektivität des Gesamtsystems daher gering.
Das obengenannte Problem wird noch komplizierter, wenn gemeinsame Speicherbereiche als sogenannte Distributed Shared Memories (DSM) auf verschiedenen Systemen, z.B. unterschied- liehen Computern, verteilt sind.
Die obengenannte Problematik gemeinsamer Speicherbereiche tritt unter anderem auch bei Datenbanken auf, bei denen Verrieglungen für Zugriffe auf gemeinsam genutzte Informations- bereiche vorhanden sind.
Der Erfindung liegt die Aufgabe zugrunde, ein Verfahren sowie Vorrichtungen zur Regulierung des Datenzugriffs zu schaffen, das möglichst schnelle Operationen unter Minimierung unnötigen Datenverkehrs ermöglicht.
Diese Aufgabe wird erfindungsgemäß dadurch gelöst, dass sich die Einzelsysteme freie Daten- oder Adressenbereiche der Da- tenquelle reservieren und die reservierten Bereiche für einen Zugriff durch andere Einzelsysteme dann gesperrt sind, wobei gegenüber den direkt benötigten Bereichen spekulativ vergrößerte Bereiche reserviert werden.
Die Erfindung ist z.B. im Zusammenhang mit Distributed Shared Memories (DSM) , mit der NUMA-Architektur (Non-Uniform Memory Addressing) , mit SMP-Rechnern (Symmetrie MultiProcessor) oder dergleichen anwendbar. Besondere Vorteile entfaltet sie bei verteilten Systemen. Die Erfindung kann in Hardware oder Software, aber auch in einer Kombination von Hard- und Soft- wäre realisiert sein.
Ferner sind zur Lösung der Aufgabe eine Datenspeichereinrich- tung sowie mit der Datenspeichereinrichtung kooperierende Einzelsysteme, beispielsweise in der Form von Einzelmodulen und/oder Netzwerk-Knoten, vorgesehen. Die Datenspeicherein- richtung erhält von den Einzelsystemen Reservierungsanforderungen, mit denen die Einzelsysteme freie Daten- oder Adressbereiche bei der Datenspeichereinrichtung reservieren wollen. Reservierungsmittel der Datenspeichereinrichtung reservieren die spekulativ vergrößerten Bereiche für die Einzelsysteme. Die Reservierungsmittel können auch die benötigten Bereiche reservieren. Besonders bevorzugt ist dabei, dass die Einzel- Systeme die von ihnen jeweils direkt benötigten Bereiche anhand einer oder mehrerer Adressangaben spezifizieren. Bei dieser Ausgestaltung der Erfindung kommt es also nicht nur darauf an, dass die Datenspeichereinrichtung den Einzelsystemen überhaupt Speicherbereiche reserviert, die an einem beliebigen Speicherort angeordnet sein können, sondern durch die Einzelsysteme mit Adressangaben spezifizierte Speicherbereiche. Dies gilt auch für die Anforderung eines spekulativ vergrößerten Bereichs durch ein Einzelsystem, wobei eine solche Anforderung auch zugleich mit der Anforderung eines di- rekt benötigten Bereiches erfolgen kann, deren Ort durch die Einzelsysteme definiert wird.
Prinzipiell ist es aber auch möglich, dass die Einzelsysteme der Datenspeichereinrichtung keine Angaben zu den direkt benötigten Bereichen machen, sondern von vorn herein spekulativ vergrößerte Bereiche anfordern. Man kann nämlich den spekulativ vergrößerten Bereich auch als Obermenge oder Oberbereich eines direkt benötigten Speicherbereiches auffassen.
Die Datenspeichereinrichtung reserviert zwar den Einzelsystemen nach Möglichkeit spekulativ vergrößerte Bereiche, zumin- dest aber den direkt benötigen Speicherbereich. Es kann jedoch vorkommen, dass ein kleinerer spekulativ vergrößerter Speicherbereich reserviert wird, als angefordert worden ist, oder sogar nicht einmal direkt benötigte Bereiche reserviert worden sind. Durch eine nachfolgende Kommunikation können die Datenspeichereinrichtung und das jeweilige Einzelsystem dieses Problem lösen.
Insbesondere in diesem Zusammenhang ist es besonders vorteilhaft, dass nicht nur die direkt benötigten Bereiche, sondern spekulativ vergrößerte Erweiterungsbereiche reserviert wer- den. Die Erweiterung der direkt benötigten Bereiche kann durch die Einzelsysteme in der jeweiligen Reservierungsanforderung angegeben werden. Es ist aber auch möglich, dass die Datenspeichereinrichtung sozusagen von sich aus die direkt benötigten Bereiche spekulativ um Erweiterungsbereiche ver- größert. Jedenfalls können die Einzelsysteme sowohl auf die direkt benötigten als auch auf die spekulativ erweiterten Bereiche zugreifen, ohne dass eine erneute Reservierungsanfor- derung erforderlich ist. Bei den Einzelsystemen sind verschiedene Varianten möglich. Sie können beispielsweise Datenbanken, Betriebssysteme oder dergleichen sein. Es ist auch möglich, dass ein Einzelsystem durch einen Computer, bei- spielsweise einen Personalcomputer, repräsentiert ist. Eine andere Variante der Erfindung sieht vor, dass die Einzelsysteme beispielsweise auch einzelne Prozesse beziehungsweise Module sind, die unter der Verwaltung eines Betriebssystems oder verteilten Betriebssystems betrieben werden. Dasselbe gilt grundsätzlich auch für die Datenspeichereinrichtung, bei der es sich beispielsweise um ein Datenspeichermodul einer Datenbank, eines Betriebssystems oder dergleichen handeln kann. Das Datenspeichermodul verwaltet Speicher des Systems, das beispielsweise durch einen Computer repräsentiert ist.
Reservierungen, auch Locks genannt, führen jedes Mal zu einer Wartezeit durch die Kommunikations-Latenzen. Wenn man jedes Mal nur den gerade benötigten Daten- bzw. Adressenbereich durch einen Lock belegen würde, der gerade benötigt wird, entstünde jedes Mal wieder eine Wartezeit, wenn ein neuer Lock benötigt wird. Durch die Reservierung eines spekulativ vergrößerten Bereichs braucht man somit nicht jedes Mal zeitraubend einen neuen Zugriff vorzunehmen, sondern kann den bereits erhaltenen spekulativ vergrößerten Bereich ohne Wartezeit verwenden, beispielsweise an weitere Einzelsysteme als Unterbesitz weitergeben, sobald entsprechende Anforderungen gestellt werden. Falls der spekulativ vergrößerte Bereich nicht benötigt wird, kann er jederzeit wieder an andere Einzelsysteme abgegeben werden, die ihn benötigen. Insgesamt verringert sich dadurch die Datenzugriffszeit erheblich. Die erfindungsgemäße Vorgehensweise bewirkt eine spekulative Vor- ab-Verteilung der zur Verfügung stehenden Datenbereiche, die durch aktuelle Anforderungen nachträglich korrigiert werden kann. Die Rückgabe spekulativ angeforderter bzw. reservierter Bereiche kann dann durch verschiedene Strategien erfolgen.
Durch die in den Unteransprüchen aufgeführten Maßnahmen sind vorteilhafte Weiterbildungen und Verbesserungen des im An- spruch 1 angegebenen Verfahrens möglich.
Die Datenspeichereinrichtung dient vorzugsweise als eine Kommunikationsplattform für die Einzelsysteme.
Beispielsweise nutzen zwei oder mehr Einzelsysteme einen gemeinsamen Bereich der Datenspeichereinrichtung. In einen der- artigen Datenbereich tragen die Einzelsystem Informationen ein und/oder lesen Informationen aus. Durch die vorsorgliche spekulative Reservierung von Erweiterungsbereichen ist es dann auch möglich, dass die Einzelsysteme nicht nur die Informationen in dem direkt benötigten Bereich lesen und/oder ändern können bzw. dürfen, sondern auch in dem oder den Erweiterungsbereichen enthaltene Informationen.
Der Erfindung liegt die Erkenntnis zugrunde, dass üblicherweise zunächst nur die Informationen, die in direkt benötigten Bereichen enthalten sind, für ein Einzelsystem relevant sind. Häufig benötigt ein Einzelsystem später noch Informationen, die sich neben dem ursprünglich unmittelbar benötigten Bereich befinden.
Die Rückgabe spekulativ reservierter Bereiche, also Erweiterungsbereiche, kann bei einer entsprechenden Reservierungsan- forderung seitens eines anderen Einzelsystems oder einer Datenspeichereinrichtung wenigstens teilweise freigegeben werden. Die Datenspeichereinrichtung kann die Rückgabe ohne Rückfrage bei einem Einzelsystem vornehmen, dessen Erweiterungsbereich (e) verkleinert werden sollen. Allerdings ist es zweckmäßig, dass die Datenspeichereinrichtung ein Einzelsys- tem möglichst vor der Verkleinerung oder Rückgabe eines Erweiterungsbereiches über diese Maßnahmen informiert.
Besonders bevorzugt ist aber, dass die Datenspeichereinrichtung das Einzelsystem vorher z.B. mittels einer sogenannten Retract-Nachricht um seine Zustimmung zur Rückgabe eines Erweiterungsbereiches fragt. Das Einzelsystem kann dann der Rückgabe des gesamten oder auch nur eines Teils des zurückzugebenden Erweiterungsbereiches z.B. mittels einer sogenannten Retract-Grant-Nachricht zustimmen.
Eine vorteilhafte Möglichkeit besteht dabei darin, dass der Erweiterungsbereich bei einer Reservierungsanforderung nur dann freigegeben wird, wenn er vom anfordernden Einzelsystem als direkt benötigter Bereich angefordert wird. Als entgegengesetztes Extrem kann der Erweiterungsbereich bei einer Re- servierungsanforderung durch ein anderes Einzelsystem auch dann freigegeben werden, insbesondere auch vollständig freigegeben werden, auch wenn er von diesem anderen Einzelsystem nur als Erweiterungsbereich angefordert wird. Allerdings ist zu beachten, dass direkt benötigte Bereiche nicht zugunsten von Anforderungen nach Erweiterungsbereichen freigegeben werden. Zwischenstrategien sind ebenfalls möglich, das heißt, bei einer Reservierungsanforderung durch ein anderes Einzel- system wird der Erweiterungsbereich nur zu einem bestimmten Teil freigegeben, wenn er bei diesem anderen Einzelsystem e- benfalls nur den Erweiterungsbereich betrifft. Hierbei kann zum Beispiel die Hälfte des angeforderten Erweiterungsbereiches oder des für das erste Einzelsystem reservierten Erweiterungsbereiches freigegeben werden.
Die das System bildenden Einzelsysteme sind beispielsweise Datenbanken und/oder Betriebssysteme.
Die Einzelsysteme und die wenigstens eine Datenspeichereinrichtung werden zweckmäßigerweise mittels Buffer-Cache- Einheiten voneinander entkoppelt. Derartige Buffer-Bausteine sorgen für die Entkopplung von Aktivitäten, z.B. zwischen Eingängen und Ausgängen, und eignen sich zur Adaption des zeitlichen Zugriffsverhaltens zwischen langsamen und schnel- len Baustein-Instanzen.
Die Freigabe des direkt benötigten Bereichs bei einer Reservierungsanforderung seitens eines anderen Einzelsystems hängt zweckmäßigerweise von der Dringlichkeit der jeweiligen Reservierung ab. Im einfachsten Fall ist eine solche Freigabe grundsätzlich ausgeschlossen, jedoch können Dringlichkeits- Prioritäten eingeführt werden, sodass beispielsweise ein Zugriff durch ein Einzelsystem mit sehr hoher Priorität die Freigabe eines von einem anderen Einzelsystem reservierten Bereichs mit sehr geringer Dringlichkeit erzwingen kann.
Die Reservierungen können Lesezugriffe, Schreibzugriffe oder beides betreffen. Bei ausschließlichen Lesezugriffen sind auch Mehrfachreservierungen eines direkt benötigten Bereichs und/oder eines Erweiterungsbereichs möglich, z.B. sogenannte Read- oder Shared-Locks, während für Schreibzugriffe exklusi- ve Reservierungen zweckmäßig sind, sogenannte Write- oder Exclusive-Locks .
Insbesondere bei Erweiterungsbereichen ist es vorteilhaft, dass sie für ausschließliche Lesezugriffe (Read-Lock) auch mehrfach an verschiedene Einzelsysteme ganz oder teilweise, evtl. überlappend oder dergleichen, vergeben werden. Bei Schreibzugriffen (Write-Lock) sind Mehrfachzugriffe sowohl bei direkt benötigten Bereichen als auch bei Erweiterungsbereichen nicht zulässig.
Ausführungsbeispiele der Erfindung werden im Folgenden bei- spielhaft anhand der Zeichnungen erläutert. Es zeigen: Figur 1 eine schematische Darstellung eines ersten Ausführungsbeispiels der Erfindung mit einem aus drei Einzelsystemen und einer Datenspeichereinrichtung bestehenden System.
Figur 2 eine schematische Darstellung zur Erläuterung der Reservierung von Adressenbereichen,
Figur 3 eine schematische Darstellung eines zweiten Ausführungsbeispiels der Erfindung mit einem modulartig aufgebauten, aus zwei Einzelsystemen und einer Da- tenspeichereinrichtung bestehenden System,
Figur 4 eine schematische Darstellung einer Reservierungs- anforderung, und
Figur 5 eine schematische Darstellung einer Freigabenachricht .
Das in Figur 1 dargestellte verteilte System 9 besteht aus drei Einzelsystemen 10 - 12 und 10', bei denen es sich um Datenbanken und/oder Betriebssysteme handeln kann, sowie einer Datenspeichereinrichtung 13, die eine beliebige Datenquelle sein kann. Die Einzelsysteme 10 - 12 und die Datenspei- chereinrichtung 13 sind miteinander über Buffer-Bausteine 14 - 17 verbunden, bei denen es sich um Buffer-Cache-Einheiten handeln kann. Derartige Buffer-Bausteine dienen zur Entkopplung und zur Adaption des zeitlichen Zugriffsverhaltens zwischen langsamen und schnellen Bausteinen und können auch in der Art erfindungsgemäßer Einzelsysteme ausgestaltet sein.
Die Einzelsysteme 10 - 12 und die Datenspeichereinrichtung 13 können auch über andere Koppelglieder oder Verbindungsarten miteinander verbunden sein.
Die Zahl der Einzelsysteme 10 - 12 ist praktisch beliebig, wobei auch mehrere Datenspeichereinrichtungen vorgesehen sein können. Nicht nur die Einzelsysteme 10 - 12 können auf die Datenspeichereinrichtung 13 zugreifen, sondern es können auch - im Falle mehrerer Datenspeichereinrichtungen 13 - solche Datenspeichereinrichtungen, beispielsweise rekursiv, eben- falls aufeinander zugreifen. Derartige Datenspeichereinrichtungen 13 können auch Bestandteile von Einzelsystemen 10 - 12 sein oder solche bilden. Bei den Datenzugriffen kann es sich grundsätzlich um Schreibzugriffe und/oder Lesezugriffe handeln.
Die Reservierungen von Daten- oder Adressenbereichen, sogenannte Locks, auf der Datenspeichereinrichtung 13 oder weiteren Datenspeichereinrichtungen durch Einzelsysteme 10 - 12 werden im Folgenden anhand von Figur 2 erläutert .
Will ein Einzelsystem 10 - 12 auf Daten der Datenspeicherein- richtung 13 zugreifen, so fordert es für die von ihm durchzuführende Aktion nicht nur den direkt benötigten Adressenbereich 18 (mit dicker Linie dargestellt) , sondern einen um Erweiterungsbereiche 19, 19' spekulativ vergrößerten Bereich 20 an. Die Anforderung eines solchen Locks kann gewöhnlich erst dann wirksam werden, wenn die entsprechenden Bereiche frei sind. Nach der Reservierung, also dem Setzen des Locks, können andere Einzelsysteme nicht mehr ohne weiteres auf den reservierten Bereich, also den spekulativ vergrößerten Bereich 20, zugreifen. Der spekulativ vergrößerte Bereich 20 steht unmittelbar ohne Wartezeit für nachfolgende Aktionen des jeweiligen Einzelsystems 10 - 12 zur Verfügung, das heißt, falls beispielsweise Adressen in den Erweiterungsbereichen 19, 19' benötigt werden, so kann dies zeitsparend ohne weitere Lock-Anforderungen erfolgen.
Beispielsweise hat das Einzelsystem 10 den um Erweiterungsbereiche 19, 19"' spekulativ vergrößerten Bereich 20 bei der Datenspeichereinrichtung für sich reservieren lassen. Das Ein- zelsystem 10 kann nun nicht nur auf die in dem direkt benötigten Bereich 18 abgelegten Informationen b und c zugreifen, diese gegebenenfalls auch verändern, sondern auch auf die in den Erweiterungsbereichen 19, 19' abgelegten Informationen a, d, e und f. Im Unterschied zu bekannten Systemen, bei denen lediglich der direkt benötigte Bereich 18 reserviert wird, kann das Einzelsystem 10 ohne erneute Reservierungsanforderung auf die Erweiterungsbereiche 19, 19' zugreifen und die Informationen a, d, e und f lesen und/oder modifizieren.
Es ist auch möglich, dass anstelle des Einzelsystems 10 der Buffer-Baustein 14 in der Art eines erfindungsgemäßen Einzel- Systems funktioniert und erweiterte Speicherbereiche bei der Datenspeichereinrichtung 13 anfordert. In einem solchen Szenario könnte das Einzelsystem 10 bei dem Buffer-Baustein 14 jeweils nur direkt benötigte Bereiche anfordern, und der Buffer-Baustein 14 spekulativ erweiterte Bereiche verwalten, die er z.B. selbst angefordert hat oder ohne spezielle Anforde- rung von der Datenspeichereinrichtung 13 erhalten hat. Wenn das Einzelsystem 10 oder ein weiteres, an den Buffer-Baustein 14 angeschlossenes Einzelsystem 10' weitere Speicherbereiche bei dem Buffer-Baustein 14 anfordern, reserviert der Buffer- Baustein 14 diese Speicherbereiche nach Möglichkeit aus den erweiterten Bereichen. Eine weitere zeitraubende Reservierung bei der Datenspeichereinrichtung 13 ist dafür in der Regel nicht erforderlich.
In Figur 2 ist nun dargestellt, dass ein anderes Einzelsystem so auf Adressen der Datenspeichereinrichtung 13 zugreifen will, dass sich Überschneidungen ergeben würden. Im Ausführungsbeispiel ist eine Lock-Anforderung eines anderen Systems mit einem direkt benötigten Bereich 21 (in dicken Linien dargestellt) und Erweiterungsbereichen 22 und 24 dargestellt, das heißt, das andere Einzelsystem fordert einen spekulativ vergrößerten Bereich 23 an, der sich mit dem bereits reser- vierten spekulativ vergrößerten Bereich 20 des ersten Einzel- Systems überschneidet. Es sind nun folgende Lδsungsalternati- ven einstellbar:
1. Das erste Einzelsystem gibt den gesamten Erweiterungsbe- reich 19' frei.
2. Das erste Einzelsystem gibt den Erweiterungsbereich 19' nur insoweit frei, als er vom spekulativ vergrößerten Bereich 22 des zweiten Einzelsystems überlappt wird.
3. Das erste Einzelsystem gibt den Erweiterungsbereich 19' nur insoweit frei, als er vom direkt benötigten Adressenbereich 21 des zweiten Einzelsystems überlappt wird.
4. Das erste Einzelsystem gibt den Erweiterungsbereich 19' insoweit frei, als er vom direkt benötigten Adressenbereich 21 des zweiten Einzelsystems überlappt wird, und zu- sätzlich wird ein Teil des vom Erweiterungsbereich 22 des zweiten Systems überlappten Bereichs freigegeben.
Bei der vierten Alternative kann beispielsweise der von beiden Erweiterungsbereichen 19' und 22 beanspruchte Bereich hälftig aufgeteilt werden oder gemäß einem Dringlichkeits- Schlüssel aufgeteilt werden, wenn die Locks unterschiedlichen Dringlichkeitsstufen zugeordnet sind. Diese Dringlichkeitsstufen können auch dafür maßgeblich sein, nach welchen Alternativen vorgegangen wird.
Für den Fall, dass der direkt benötigte Adressenbereich 18 des ersten Einzelsystems vom Erweiterungsbereich 22 des zweiten Einzelsystems überlappt wird, erfolgt in der Regel keine Freigabe bzw. Rückgabe des direkt benötigten Adressenbereichs 18 des ersten Einzelsystems, auch nicht teilweise. Für den Fall, dass sich direkt benötigte Adressenbereiche 18 bzw. 21 überlappen, erfolgt im Allgemeinen keine Freigabe bzw. Rück- gäbe des zuerst reservierten Bereichs, wobei allerdings auch hier andere Rückgabekriterien in Abhängigkeit von Dringlichkeitsstufen der Locks, von statistischen Analysen früherer Lock-Operationen und/oder Speicherzugriffe oder von sonstigen Kriterien eingeführt werden können.
Mehrere unterschiedliche Adressenbereiche können auch gleichzeitig von einem Einzelsystem oder einer Datenspeichereinrichtung in einer atomaren Operation reserviert werden, wobei für die einzelnen Reservierungen die vorstehend erläuterten Kriterien gelten, sofern die angeforderten Bereiche nicht frei sind.
Im folgenden wird ein Szenario beschrieben, bei dem die Einzelsysteme 10 und 11 durch Schreiben und Lesen von Informationen auf gemeinsame Bereiche innerhalb der Datenspeicherein- richtung 13 miteinander kommunizieren. Ausgangssituation ist beispielsweise das obige Szenario, bei der das Einzelsystem 10 bei der Datenspeichereinrichtung 13 den vergrößerten Bereich 20 angefordert hat. Das Einzelsystem 10 hat beispielsweise in den Erweiterungsbereich 19' die Informationen e und f geschrieben. Nun fordert das Einzelsystem 11 den direkt benötigten Bereich 21, der vorzugsweise spekulativ auf den Bereich 23 vergrößert werden soll, bei der Datenspeichereinrichtung an. Dabei ist es möglich, dass das Einzelsystem 10 den Wunsch zur Vergrößerung des direkt benötigten Berei- ches 21 bei der Datenspeichereinrichtung 13 anmeldet. Es ist auch möglich, dass die Datenspeichereinrichtung 13 von sich aus den direkt benötigten Bereich 21 um die Erweiterungsbereiche 22 und 24 vergrößert. Jedenfalls kann das Einzelsystem 11, nachdem für es zumindest der direkt benötigte Bereich 21 reserviert worden ist, die Information f auslesen. Dies ist beispielsweise dann möglich, wenn die Datenspeichereinrichtung 13 die oben erläuterte dritte Variante realisiert. Wenn die Datenspeichereinrichtung 13 die zweite oben erläu- terte Variante realisiert, bei der sie auch den Erweiterungs- bereich 22 für das Einzelsystem 11 reserviert, kann das Einzelsystem 11 auch die Information e lesen. Der die Information e enthaltende Teil der Erweiterungsbereiche 19' und 22 bildet dann einen gemeinsamen Bereich, über den die Einzel- Systeme 10 und 11 kommunizieren. Jedenfalls dient bei beiden Szenarien die Datenspeichereinrichtung 13 als Kommunikations- plattform für die Einzelsysteme 10 und 11. Es versteht sich, dass auch weitere Daten- und Adressbereiche der Datenspei- chereinrichtung zur Kommunikation der Einzelsysteme 10, 11 und 12 dienen können.
Anhand der Figuren 3, 4 und 5 wird im Folgenden ein beispielhafter Ablauf der Reservierung und Freigabe von Daten- und Adressenbereichen bei einer erfindungsgemäßen Datenspei- chereinrichtung dargestellt, die bei dem zweiten Ausführungsbeispiel gemäß Figur 3 durch ein Datenspeichermodul 43 präsentiert ist.
Das Datenspeichermodul verwaltet Speicher 31 eines Computers 40 und stellt diesen Speicher 31 zumindest teilweise den Ein- zelmodulen 41, 42, bei denen es sich um erfindungsgemäße Einzelsysteme handelt, bereit. Die Module 41 bis 43 sind beispielsweise Programmmodule, deren Programmcode von einem oder mehreren Prozessoren 30, des Computers 40 ausgeführt wird. Die Module 41 bis 43 werden unter Kontrolle eines Betriebs- Systems 32 betrieben. Das Datenspeichermodul 43 kann z.B. einen Bestandteil des Betriebssystems 32 oder einer Datenbank bilden.
Bei den Einzelmodulen 41, 42 handelt es sich beispielsweise um Anwendungsprogramme. Der Computer 40 ist sehr schematisch dargestellt und kann weitere, nicht dargestellte Mittel aufweisen, beispielsweise Ein-/Ausgabemittel, Netzwerkschnittstellen oder dergleichen. Beispielsweise kann der Computer 40 einen Monitor, Lautsprecher, eine Tastatur oder dergleichen aufweisen.
Die Einzelmodule 41, 42 reservieren bei dem Datenspeichermodul 43 Daten- und Adressbereiche. Teilweise dienen die reser- vierten Daten- und Adressbereiche zur Inter- Prozesskommunikation der Einzelmodule 41, 42.
Beispielsweise kann eine Reservierung von Speicherbereich folgendermaßen ablaufen:
Beispielsweise beauftragen Kommunikationsmittel 45 Anforde- rungsmittel 44 mit der Anforderung eines direkt benötigten Adressbereichs 49 eines Speichermittels 47 des Speichers 31. Bei dem Speichermittel 47 handelt es sich beispielsweise um RAM (Random Access Memory) und/oder um Festplattenspeicher. Die Kommunikationsmittel 45 wollen beispielsweise an das Ein- zelmodul 42 gerichtete Informationen in einen über den Adressbereich 49 adressierbaren Bereich des Speichermittels 47 schreiben. Die Reservierungsmittel 44 senden eine Reservierungsanforderung 50 an das Datenspeichermodul 43. Die Reservierungsanforderung 50 ist beispielsweise ein Funktionsauf- ruf, eine Interprozessnachricht oder dergleichen und kann zum Beispiel den Namen "Lock_Address" oder "Get_Address" haben. Die Reservierungsanforderung 50 hat beispielsweise die folgenden Inhalte: Eine Adressangabe 51, die beispielsweise die erste Adresse innerhalb des Adressbereichs 49 definiert. Der Adressbereich 49 ist vorzugsweise linear. Ferner enthält die Reservierungsanforderung 50 eine Angabe 52 über die minimale Länge des gewünschten, zu reservierenden Adressbereichs sowie eine Angabe über die maximal benötigte Länge des Adressbereichs, der bei der Adressangabe 51 beginnt. Die Angaben 51, 52 definieren somit den direkt benötigten Adressbereich 49, die Angabe 53 einen oder mehrere spekulativ erweiterte Bereiche. Die Angabe 53 kann z.B. eine oder mehrere Längenangaben und/oder Adressangaben enthalten. Die Angaben 51, 52 könnten auch die erste und die letzte Adresse des Bereichs 49 angeben. Die Reservierungsmittel 44 fordern einen größeren Adressbereich bei der Datenspeichereinrichtung 43 an, als un- mittelbar benötigt. Die Reservierungsanforderung 50 kann optional auch eine Angabe 54 enthalten, die beispielsweise angibt, ob ein Schreiben und/oder Lesen im zu reservierenden Adressbereich geplant ist, ob der Adressbereich zum Beispiel durch Einschreiben von Startwerten initialisiert werden soll oder dergleichen. Eine optionale Sperrangabe 55 der Reservierungsanforderung 50 gibt an, ob der zu reservierende Adress- bereich gegenüber Schreib- und/oder Lesezugriffe anderer Einzelmodule gesperrt werden soll. Die Reservierungsanforderung 50 kann auch Absender- und Empfängerkennungen oder derglei- chen enthalten.
Anhand der Reservierungsanforderung 50 reservieren Reservierungsmittel 46 des Datenspeichermoduls 43 sowohl den direkt benötigten Adressbereich 49 als auch den Erweiterungsadress- bereich 48, der sich an den Adressbereich 49 anschließt, für das Einzelmodul 41. Das Einzelmodul 41 kann dann in die Adressbereiche 48, 49 Informationen einschreiben, Informationen dort auslesen oder dergleichen. Die interaktiven Zugriffe des Einzel-Moduls 41 auf die Adressbereich 48, 49 sind durch einen Pfeil 70 in der Zeichnung schematisch dargestellt.
Mittels einer Bestätigungsnachricht 65 bestätigt das Datenspeichermodul 43 dem Einzelmodul 41, dass der Adressbereich 48, 49 für das Einzelmodul 41 reserviert worden ist. Die Bestätigungsnachricht 65 enthält beispielsweise eine Adressangabe 66 sowie eine Längenangabe 67, die den Beginn und die Län- ge des tatsächlich reservierten Bereiches angeben, der vorliegend die Adressbereiche 48, 49 umfasst. Prinzipiell könnte auch ein kleinerer Bereich reserviert worden sein, z.B. nur der direkt benötigte Adressbereich 49. Die Bestätigungsnach- rieht 65 kann auch weitere, nicht dargestellte Informationen enthalten, z.B. in Analogie zur Reservierungsanforderung 50.
Nachdem das Einzelmodul 41 die Schreib- und/oder Lesezugriffe 70 auf die Adressbereich 48, 49 beendet hat, sendet das Ein- zelmodul 41 eine Freigabenachricht 60, die beispielsweise mit "Unlock_Adress" bezeichnet ist, an das Datenspeichermodul 43. Die Freigabenachricht 60 enthält beispielsweise eine Adress- angabe 61, die vorliegend der Adressangabe 51 entspricht. Die Adressangabe 61 könnte aber auch eine sonstige innerhalb der Bereiche 48, 49 liegende Adresse sein. Die Adressangabe 61 definiert den Ort des freizugebenden Daten- oder Adressbereichs. Die Adressangabe 61 enthält beispielsweise die erste freizugebende Adresse. Ferner enthält die Freigabenachricht eine Längenangabe über den freizugebenden Bereich, zum Bei- spiel die Länge der Adressbereiche 48, 49 insgesamt. Es ist auch möglich, dass die Freigabenachricht 60 nur einen Teil des Adressbereiches 48, 49 freigibt. Die Freigabenachricht 60 kann auch Absender- und Empfängerkennungen enthalten.
Sodann kann das Einzelmodul 42 mittels einer Reservierungsan- forderung 50' die Adressbereiche 48 und/oder 49 oder einen Teil davon reservieren und dort vom Einzelmodul 41 abgelegte Information lesen und/oder modifizieren.
Mit einer Freigabenachricht 60' gibt das Einzelmodul 42 die reservierten Speicherbereiche frei .
Es versteht sich, dass das Datenspeichermodul 43 bei konkurrierenden Reservierungsanforderungen der Einzelmodule 41, 42 oder sonstiger, nicht dargestellter Einzelmodule die im Zusammenhang mit Figur 2 erläuterten Varianten 1 bis 4 ausführen kann.
Ferner kann das Reservierungsmittel 46 bei Reservierungsanforderungen, die bereits anderweitig reservierte Adressberei- ehe betreffen, auch eine Rückforderungsnachricht (z.B. mit dem Namen πNotify_Lock" oder πRetract_Addressn) an ein Einzelsystem senden, für das ein Adressbereich bereits reserviert ist, wenn ein Teil dieses Adressbereichs für ein ande- res Einzelsystem reserviert werden soll. Bei dem zurückzufordernden Adressbereich handelt es sich vorzugsweise um einen Erweiterungsbereich. Es kann sich aber auch um einen direkt benötigten Bereich handeln.
In einer Antwort auf die Rückforderungsnachricht, z.B. mit der Bezeichnung nRetract_Grant", kann dann das Einzelsystem der ganzen oder teilweisen Rückgabe des reservierten Bereichs zustimmen. Es wird dann z.B. ein spekulativ erweiterter Bereich ganz, zur Hälfte oder einem sonstigen Bruchteil freigegeben. Die Bestätigung der Adressbereichs-Freigabe kann an die Datenspeichereinrichtung und/oder an das den Adressbereich konkurrierend anfordernde Einzelsystem gesendet werden.

Claims

Ansprüche
1. Verfahren zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen (10-12) bestehenden System (9) auf wenigstens eine Datenspeichereinrichtung (13; 43), bei dem die Einzelsysteme (10-12) sich freie Daten- oder Adressenbereiche der Datenspeichereinrichtung (13; 43) reservieren und die reservierten Bereiche für einen Zugriff durch andere Einzelsysteme (10-12) dann gesperrt sind, wobei gegenüber den direkt benötigten Bereichen (18, 21; 49) um Erweiterungsbereiche (19, 19') spekulativ vergrößerte Bereiche (20, 23; 48) reserviert werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Einzelsysteme einen direkt benötigten Bereich durch min- destens eine Adressangabe (51) identifizieren.
3. Verfahren nach Anspruch 1 oder 2 , dadurch gekennzeichnet, dass die Datenspeichereinrichtung (13; 43) zumindest teilweise als Kommunikationseinrichtung für die Einzelsysteme (10-12) vorgesehen ist.
4. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass mindestens zwei Einzelsysteme (10, 11) einen gemeinsamen Bereich (22) der Datenspeichereinrichtung (13; 43) nutzen.
5. Verfahren nach einem der vorhergehenden Ansprüche, da- durch gekennzeichnet, dass das aus mehreren Einzelsystemen
(10-12) bestehende System ein verteiltes System ist.
6. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass ein jeweils über den direkt benötigten Bereich (18) hinausgehender reservierter Erweiterungs- bereieh (19, 19') bei einer den reservierten Erweiterungsbereich (19, 19') zumindest teilweise betreffenden Reservie- rungsanforderung (50) seitens eines anderen Einzelsystems (10-12) oder einer Datenspeichereinrichtung (13; 43) wenigstens teilweise freigegeben wird.
7. Verfahren nach einem der vorhergehenden Ansprüche, da- durch gekennzeichnet, dass der Erweiterungsbereich (19, 19') bei einer durch ein anderes Einzelsystem (10-12) erfolgten Reservierungsanforderung (50) freigegeben wird, wenn er von diesem anderen Einzelsystem als direkt benötigter Bereich (21) angefordert wird.
8. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Erweiterungsbereich (19, 19') bei einer durch ein anderes Einzelsystem (10-12) erfolgten Reservierungsanforderung (50) auch dann freigegeben wird, wenn er von diesem anderen Einzelsystem als Erweiterungsbereich (22) angefordert wird.
9. Verfahren nach Anspruch 7, dadurch gekennzeichnet, dass der Erweiterungsbereich bei einer durch ein anderes Einzel- system (10-12) erfolgten Reservierungsanforderung (50) nur zu einem bestimmten Teil freigegeben wird, wenn er bei diesem anderen Einzelsystem ebenfalls nur den Erweiterungsbereich (22) betrifft.
10. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Einzelsysteme (10-12) Datenbanken und/oder Betriebssysteme und/oder Einzelmodule sind.
11. Verfahren nach einem der vorhergehenden Ansprüche, da- durch gekennzeichnet, dass die Einzelsysteme (10-12) und die wenigstens eine Datenspeichereinrichtung (13; 43) mittels Buffer-Cache-Einheiten (14-17) voneinander entkoppelt werden.
12. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass die Freigabe des direkt benötigten Bereichs (18) bei einer seitens eines anderen Einzelsystems (10-12) erfolgten Reservierungsanforderung (50) von der Dringlichkeit der jeweiligen Reservierung abhängt.
13. Verfahren nach einem der vorhergehenden Ansprüche, dadurch gekennzeichnet, dass Reservierungen den Lese- und/oder Schreibzugriff betreffen.
14. Datenspeichereinrichtung zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen (10-12) , insbesondere Einzelmodulen, bestehenden System (40, 9), mit Reservierungsmitteln (46) zum Reservieren von freien Daten- o- der Adressenbereichen (48, 49) der Datenspeichereinrichtung (13; 43) anhand von Reservierungsanforderungen (50) der Einzelsysteme (10-12) , wobei die Reservierungsmittel (46) die reservierten Bereiche für einen Zugriff durch andere Einzel- Systeme (10-12) sperren, und wobei die Reservierungsmittel (46) zu einer Reservierung von gegenüber den direkt benötigten Bereichen (18, 21) spekulativ vergrößerten Bereichen (20, 23; 48) ausgestaltet sind.
15. Datenspeichereinrichtung nach Anspruch 14, dadurch gekennzeichnet, dass die Reservierungsmittel (46) zum Ermitteln eines von einem Einzelsystem direkt benötigten Bereichs durch Auswertung mindestens einer Adressangabe (51) ausgestaltet sind, die in einer den Bereich anfordernden Reservierungsanforderung (50) enthalten ist.
16. Datenspeichereinrichtung nach Anspruch 14 oder 15, da- durch gekennzeichnet, dass die Reservierungsmittel (46) einen spekulativ vergrößerten Bereich (20, 23; 48), der für ein erstes Einzelsystem (10) reserviert ist, bei einer konkurrierenden Reservierungsanforderung (50) eines zweiten Einzelsystems (11) zumindest teilweise für das zweite Einzelsystem re- servieren.
17. Einzelsystem, insbesondere Einzelmodul, zur Kooperation mit einer Datenspeichereinrichtung (13; 43) nach einem der Ansprüche 14 bis 16 zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen (10-12) bestehenden System, mit Anforderungsmitteln (44) zum Reservieren von freien Daten- oder Adressenbereichen der Datenspeichereinrichtung (13; 43) anhand von Reservierungsanforderungen (50) , wobei die Datenspeichereinrichtung (13; 43) die reservierten Bereiche für einen Zugriff durch andere Einzelsysteme (10-12) sperrt, und wobei die Anforderungsmittel (44) zu einer Reservierung von gegenüber den direkt benötigten Bereichen (18, 21; 49) spekulativ vergrößerten Bereichen (20, 23; 48) ausgestaltet sind.
18. Einzelsystem, insbesondere Einzelmodul, nach Anspruch 17, dadurch gekennzeichnet, dass die Anforderungsmittel (44) zum Senden mindestens einer Adressangabe (51) zur Identifizierung mindestens eines direkt benötigten Bereichs in einer den Bereich bei der Datenspeichereinrichtung (13; 43) anfordernden Reservierύngsanforderung (50) ausgestaltet sind.
19. Einzelsystem, insbesondere Einzelmodul, nach Anspruch 17 oder 18, dadurch gekennzeichnet, dass es Kommunikationsmittel zur Kommunikation mit mindestens einem weiteren Einzelsystem über einen gemeinsamen, zumindest zeitweise bei der Datenspeichereinrichtung (13; 43) reservierten Bereich (18, 21; 49) aufweist, wobei die Einzelsysteme den gemeinsamen Speicherbereich jeweils durch mindestens eine Adressangabe (51) identifizieren.
20. Datenspeichereinrichtung nach einem der Ansprüche 14 bis 16 oder Einzelsystem, insbesondere Einzelmodul, nach einem der Ansprüche 17 bis 19, dadurch gekennzeichnet, dass sie bzw. es Programmcode enthält, der durch einen Prozessor (30) eines Computers (40) ausführbar ist.
21. Nachricht zur Kommunikation zwischen einer Datenspeichereinrichtung nach einem der Ansprüche 14 bis 16 und einem Einzelsystem, insbesondere Einzelmodul, nach einem der Ansprüche 17 bis 19, dadurch gekennzeichnet, dass sie eine Re- servierungsanforderung (50) oder eine Reservierungsbestätigung für mindestens einen spekulativ vergrößerten Bereich (20, 23; 48) enthält.
22. Speichermedium mit einer Datenspeichereinrichtung (13; 43) und/oder einem Einzelsystem, insbesondere Einzelmodul, nach Anspruch 20 und/oder einer Nachricht nach Anspruch 21.
PCT/EP2003/010794 2002-09-30 2003-09-29 Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung WO2004031955A2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
AU2003270288A AU2003270288A1 (en) 2002-09-30 2003-09-29 Method for regulating access to data in at least one data storage device in a system consisting of several individual systems
DE10393434T DE10393434D2 (de) 2002-09-30 2003-09-29 Verfahren zur Regulierung des Datenzugriffs bei einemaus mehreren Einzelsystemen bestehenden System auf wenigstens eine Datenspeichereinrichtung
US10/529,435 US20060168413A1 (en) 2002-09-30 2003-09-29 Method for regulating access to data in at least one data storage device in a system consisting of several individual systems

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
DE10246369A DE10246369A1 (de) 2002-09-30 2002-09-30 Verfahren zur Regelung des Datenzugriffs auf Daten wenigstens einer Datenspeichereinrichtung
DE2002146367 DE10246367A1 (de) 2002-09-30 2002-09-30 Verfahren zur Regulierung des Datenzugriffs bei einem aus mehreren Einzelsystemen bestehenden System auf wenigstens eine Datenspeichereinrichtung
DE10246367.0 2002-09-30
DE10246369.7 2002-09-30

Publications (2)

Publication Number Publication Date
WO2004031955A2 true WO2004031955A2 (de) 2004-04-15
WO2004031955A3 WO2004031955A3 (de) 2004-10-14

Family

ID=32070712

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2003/010792 WO2004031954A2 (de) 2002-09-30 2003-09-29 Verfahren und vorrichtungen zum zugriff eines einzelsystems auf einen speicherbereich einer datenspeichereinrichtung
PCT/EP2003/010794 WO2004031955A2 (de) 2002-09-30 2003-09-29 Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/010792 WO2004031954A2 (de) 2002-09-30 2003-09-29 Verfahren und vorrichtungen zum zugriff eines einzelsystems auf einen speicherbereich einer datenspeichereinrichtung

Country Status (4)

Country Link
US (1) US20060168413A1 (de)
AU (1) AU2003270288A1 (de)
DE (1) DE10393434D2 (de)
WO (2) WO2004031954A2 (de)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8103642B2 (en) * 2006-02-03 2012-01-24 Oracle International Corporation Adaptive region locking
US7786903B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7786907B2 (en) 2008-10-06 2010-08-31 Donald Martin Monro Combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems
US7864086B2 (en) 2008-10-06 2011-01-04 Donald Martin Monro Mode switched adaptive combinatorial coding/decoding for electrical computers and digital data processing systems
US7791513B2 (en) 2008-10-06 2010-09-07 Donald Martin Monro Adaptive combinatorial coding/decoding with specified occurrences for electrical computers and digital data processing systems

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817044A2 (de) * 1996-06-28 1998-01-07 Sun Microsystems, Inc. Speicherzuordnung in einer Mehrfachfädenumgebung
EP0817041A2 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Methode zum Reservieren von Betriebsmitteln

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69428881T2 (de) * 1994-01-12 2002-07-18 Sun Microsystems Inc Logisch adressierbarer physikalischer Speicher für ein Rechnersystem mit virtuellem Speicher, das mehrere Seitengrössen unterstützt

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0817044A2 (de) * 1996-06-28 1998-01-07 Sun Microsystems, Inc. Speicherzuordnung in einer Mehrfachfädenumgebung
EP0817041A2 (de) * 1996-07-01 1998-01-07 Sun Microsystems, Inc. Methode zum Reservieren von Betriebsmitteln

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
POUL-HENNING KAMP: " Malloc(3) in modern Virtual Memory environments." 4.4BSD DOCUMENTATION, [Online] 5. April 1996 (1996-04-05), Seiten 1-7, XP002283869 Gefunden im Internet: <URL:http://docs.freebsd.org/44doc/papers/malloc.pdf> [gefunden am 2004-06-08] *

Also Published As

Publication number Publication date
US20060168413A1 (en) 2006-07-27
DE10393434D2 (de) 2005-10-06
AU2003270288A1 (en) 2004-04-23
WO2004031954A2 (de) 2004-04-15
AU2003270288A8 (en) 2004-04-23
WO2004031954A3 (de) 2004-08-19
WO2004031955A3 (de) 2004-10-14

Similar Documents

Publication Publication Date Title
EP0762274B1 (de) Einrichtung und Verfahren zur Echtzeit-Verarbeitung einer Mehrzahl von Tasks
DE69822541T2 (de) Verfahren zum Verwalten eines geteilten Speichers
DE69819686T2 (de) Objekt und verfahren zum bereitstellen eines effizienten mehrbenutzerzugriff auf verteilten betriebssystemkernkode durch instanzierung
DE69834739T2 (de) Ausgleichen von daten die zwischen verschiedenen leitern fliessen die auf unterschiedlichen frequenzen operieren
DE3621321A1 (de) Cache-speicher- bzw. multiprozessor-system und betriebsverfahren
DE10219623A1 (de) System und Verfahren zur Speicherentscheidung unter Verwendung von mehreren Warteschlangen
DE69936257T2 (de) Erzeugen und uberprüfen von referenz-adresszeigern
EP1731999B1 (de) Mechanismus zum dynamischen Registrieren von Dateien in einer stapelverarbeitungsorientierten Umgebung
DE4207158A1 (de) Speicher-zugriffssteuerung
DE3046912C2 (de) Schaltungsanordnung zum selektiven Löschen von Cachespeichern in einer Multiprozessor-Datenverarbeitungsanlage
DE2641722A1 (de) Hierarchisch geordnetes speichersystem fuer eine datenverarbeitende anlage mit virtueller adressierung
DE112010005609T5 (de) Speichern von Daten in einem einer Mehrzahl von Puffern in einer Speichersteuerung
DE69726795T2 (de) Kodierungsverfahren des Verzeichnisstatus in einem gemeinsamen, verteilten Speichersystem mit koherenten Pufferspeichern
DE60009817T2 (de) Gemeinsamen Speicher verteilende Multiprozessorvorrichtung
DE602004008712T2 (de) Speicherbandbreiten-Steuereinrichtung
WO2004031955A2 (de) Verfahren zur regulierung des datenzugriffs bei einem aus mehreren einzelsystemen bestehenden system auf wenigstens eine datenspeichereinrichtung
EP2283402B1 (de) Verfahren zum steuern eines zugriffs auf bereiche eines speichers aus mehreren prozessen heraus und kommunikations-modul mit einem nachrichten-speicher zur realisierung des verfahrens
DE2507405A1 (de) Verfahren und anordnung zum synchronisieren der tasks in peripheriegeraeten in einer datenverarbeitungsanlage
EP0970426B1 (de) Abhängigkeitssteuerung für überlappende speicherzugriffe
EP0556430B1 (de) Verfahren zur Steuerung eines Peripheriesystems
DE102009061066A1 (de) Kommunikationsmedium für ein Mehrprozessor-Computersystem
DE102022003674A1 (de) Verfahren zum statischen Allozieren von lnformationen zu Speicherbereichen, informationstechnisches System und Fahrzeug
DE102019118757B4 (de) Verfahren zur Herstellung der Cachekohärenz in Mehrkernprozessoren
EP0651897B1 (de) Verfahren zur dynamischen verwaltung eines freien speichers einer rechenanlage, des freispeichers, für den eine unterteilung in wenigstens zwei logische speicherbereiche, die sich in ihren zugriffseigenschaften unterscheiden, vorgesehen ist
DE102022214054A1 (de) Verfahren zum Betrieb eines Datenverarbeitungssystems

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
ENP Entry into the national phase

Ref document number: 2006168413

Country of ref document: US

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 10529435

Country of ref document: US

REF Corresponds to

Ref document number: 10393434

Country of ref document: DE

Date of ref document: 20051006

Kind code of ref document: P

WWE Wipo information: entry into national phase

Ref document number: 10393434

Country of ref document: DE

122 Ep: pct application non-entry in european phase
WWP Wipo information: published in national office

Ref document number: 10529435

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: JP