WO2009141161A1 - Method for hosting a plurality of versions of memory pages in a storage system and accessing the same - Google Patents

Method for hosting a plurality of versions of memory pages in a storage system and accessing the same Download PDF

Info

Publication number
WO2009141161A1
WO2009141161A1 PCT/EP2009/003679 EP2009003679W WO2009141161A1 WO 2009141161 A1 WO2009141161 A1 WO 2009141161A1 EP 2009003679 W EP2009003679 W EP 2009003679W WO 2009141161 A1 WO2009141161 A1 WO 2009141161A1
Authority
WO
WIPO (PCT)
Prior art keywords
memory page
page
memory
cell
version
Prior art date
Application number
PCT/EP2009/003679
Other languages
German (de)
French (fr)
Inventor
Marc Yves Maria Kramis
Original Assignee
Universität Konstanz
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 Universität Konstanz filed Critical Universität Konstanz
Publication of WO2009141161A1 publication Critical patent/WO2009141161A1/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/83Querying
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/80Information retrieval; Database structures therefor; File system structures therefor of semi-structured data, e.g. markup language structured data such as SGML, XML or HTML
    • G06F16/81Indexing, e.g. XML tags; Data structures therefor; Storage structures

Definitions

  • the invention relates to a method for holding a plurality of versions of memory pages in one
  • a storage system and a method for accessing correspondingly preserved versions of memory pages in a storage system.
  • a memory page which is also referred to as a data page as an alternative, is to be understood, for example, as a file of a file system or a database page of a database system, depending on the respective storage system considered.
  • a database page in this case represents a unit in which a database system handles the data, wherein it comprises a definable maximum amount of data and / or data records that the database system can read from the storage medium with a single access and / or write to the storage medium.
  • the term data page is considered in the context of this application, the term data page.
  • revision is often used interchangeably with the term revision.
  • version refers to the respective retrievable processing status of a memory page
  • revision refers to the process of modifying a memory page, which may comprise a plurality of processing steps which, after being stored, ultimately lead to the new processing status of the memory page , That is a version of a
  • Memory page represents the result of a revision of the memory page. Modifications during a revision may be the insertion, deletion, or modification of data or a memory page.
  • the first creation of a memory page is the first revision.
  • Saving multiple versions of a memory page may be advantageous in a variety of situations, such as a malfunction of the computer system or user errors such as erasure or modification of data or entire memory pages, as well as analysis of temporal changes of a memory page to a particular state.
  • log-structured file systems (English: log-structured file system, LFS) called. They write data in a continuous stream to disk, so for example a disk, so that Modified memory pages are always written into a free memory space and thus no existing memory pages are overwritten.
  • LFS log-structured file system
  • Version management systems Software systems that provide the ability to version memory pages, i. H. of files, regardless of the underlying file system at the application level. Such systems are used primarily for the source code or program code version management in software development in order to log all changes made to the code and to be able to restore old development statuses if necessary. For this saves
  • Version management system all files belonging to a software project as well as the respective modifications made in a so-called repository. Version management systems are available both as a stand-alone software application and in an integrated form, for example for software development environments but also for word processing and
  • Version management systems write the versions of the memory pages to the same storage medium.
  • database systems which, for example by means of correspondingly implemented database management systems, offer the possibility of versioning data, so that the data is not only available in the current version but can also be restored as it was at a certain earlier point in time.
  • a relatively straightforward way of having multiple versions of a memory page available is to store the entire memory page, including the modifications for each revision.
  • This approach which is similar to the copy-on-write approach, may be advantageous to have, that the respective desired version of the memory page is immediately accessible.
  • it mainly leads to a considerable storage space consumption on the storage medium.
  • the so-called deltas stored For example, such a delta may consist of a binary difference between the newer and the previous version of a memory page. In this way, differential storage or delta encoding leads to a reduction of storage space usage in the
  • a so-called snapshot is now written at regular intervals after a revision of a memory page instead of a delta.
  • the entire memory page is written to the storage medium with a snapshot.
  • a snapshot covers all the data in a memory page, including the modifications of all previous revisions, as well as the revision to which it will be saved.
  • the respective closest snapshot can then serve as a new starting point in the reconstruction of respectively subsequent versions of a memory page for which only one delta has been written, so that only a relatively small number of deltas is to be evaluated.
  • the frequency at which a snapshot is saved instead of a delta can be defined automatically, for example, time-dependent, in particular for data backup systems, and also dynamically, for example, depending on the number of revisions or the size or size of the modifications since the last one snapshot.
  • German patent application 10 2008 024809.6-53 the applicant describes, inter alia, a further possibility for efficiently storing the modifications made to a data page during a revision. It is exploited there that the data in the data page as a node of an encoded tree, and thus the data content of the data page shows a unique structure.
  • each node modified during the revision is completely stored in its modified version in a new data page part for that version of the data page, so that the Processing status of a respective node directly from this data page part is recognizable.
  • the data page part stored after a revision is a snapshot, such a data page part also containing the nodes not modified during this revision, and thus all nodes of the data page.
  • reference pointers are also stored on the data page parts for previous versions of the data page as well as on the last previously stored data page part, which is a snapshot.
  • the respective referenced data page parts are to be considered, wherein the nodes contained in the referenced snapshot corresponding to the other referenced data page parts are either replaced by the modified node versions contained therein or to be deleted or supplemented with additional nodes.
  • German patent application 10 2008 024809.6-53 a certain version of a data page so to speak composed in a modular manner from the nodes contained in the referenced data page parts, while consuming calculations, such as Example delta calculations would be required.
  • the invention provides a method of maintaining a plurality of versions of memory pages in a memory system in which memory pages are divided into a number of memory page cells and a unique one of the memory page cells
  • Memory page cell identification information is assigned.
  • a counter for revisions applicable to the respective memory page is changed by one count, in particular always in the same way changed, such as up or down, so for example, incremented, and logically manages a memory page version of the storage system, but physically a memory page part stored in the storage system.
  • a memory page part contains at least one memory page cell modified during this revision.
  • a memory page will respond in response to each revision
  • Memory page version pointer managed by the memory system, said memory page version pointer in turn m memory page partial pointer to the corresponding memory page parts, where m is a definable parameter value of m> 0.
  • each memory page is preferably subdivided into a number of memory page cells.
  • each of the memory page cells is assigned unique memory page cell identification information.
  • revision counter provides both the revision revision number and the version number of the versions, by which the individual revisions and versions are clearly distinguishable, with a versinon representing a revision with a fixed number.
  • the invention also proposes a method according to claim 10 for accessing according to the method
  • Claim 1 held versions of memory pages in a storage system before, in which under
  • Memory page version of the memory system managed memory page version pointer and the m of this Memory page sub-pointers have the desired memory page version reconstructed and provided from the memory page cells contained in the referenced memory page parts by assembling these memory page cells. It is, if one
  • Memory page cell in several of the m referenced memory page parts is included, used that memory page cell, which was included in the newer of these memory page parts.
  • the invention provides a memory system which is prepared for carrying out the method according to claim 1 and / or 10 or the method according to one of the preferred embodiments described below, and a computer-readable medium with a computer program stored thereon, which defines instructions which control a computer or the memory system according to the invention such that it or this is suitable for carrying out a method according to claim 1 and / or 10 or a method according to one of the preferred embodiments described below.
  • Another aspect of the invention is to no longer store snapshots for entire pages of memory, due to the recognition that a memory page cell, which is completely stored in its modified version in response to a revision, so that the state of processing of the cell immediately it is recognizable, in a way already one
  • a memory page snapshot is decomposed into a number of memory page cell snapshots stored on the storage medium distributed over a number of m memory page portions.
  • an already resulting from the method according to claim 1 advantage is that after a revision in each case on the storage medium to be written data volume evenly distributed, since instead of a relatively large memory page snapshot after every third revision of a memory page now only some relatively small
  • Memory page cell snapshots are written to the storage medium after each revision of a memory page.
  • the number of accesses to the storage medium required during the method of claim 10 for reconstructing and providing a particular memory page version now varies less and the effort required is thus more predictable, since all for a particular memory page version required memory page cells in the m referenced memory page parts are included. It is additionally advantageous that, on the one hand, an inherently parallel read access to the referenced memory page parts and the contained memory page cells is possible, and, on the other hand, no deltas based on a snapshot are to be sequentially evaluated, but rather the respective memory page version can be modulated in a simple manner from the referenced memory page cells is composable, which accelerates the reconstruction again.
  • the memory page part contains each memory page cell modified during the revision. More preferably, the memory page part contains the copy of at least one, expediently, each memory page cell last contained in the memory page part previously stored in revisions.
  • Reduction of the required memory space can be achieved by up to one third, especially in the case when there are often alternately between two nodes of a memory page from revision to revision modifications. Because, provided that the parameter m is set to a value greater than or equal to 2 (two), a memory page portion containing only this memory page cell in the fully modified version is written in response to the revision of a single memory page cell an immediately following revision in which the other memory page cell has been modified
  • Memory page part is stored, which contains only this other memory page cell in the full modified version. So if the
  • Parameter value m is greater than 1 (one), so even after further revisions, which relate alternately to the modification of one or the other cell, no memory page part would be written to the storage medium, which in the form of a memory page snapshot both Memory page cells contains and thus redundant way again each unmodified memory page cell, as would otherwise be provided in one of the previously known procedures.
  • Memory page cells located in the memory page Pp in their immediate vicinity and each of a ranking information related to a respective one of these memory page cells are managed by the memory system, and that for each memory page cell in the memory page part both their own
  • Memory page cell identification information as well as each memory page cell identification information of the memory page cells located therein
  • Memory page version located in their immediate vicinity and each of a ranking information with respect to a respective one of these memory page cells are managed by the storage system.
  • another memory page sub-pointer to the memory page part, which contains the memory page cell in the respectively older modified version is managed by the memory system.
  • Memory page version pointer and the associated, anyway existing memory page sub-pointer to the respective required memory page part can be accessed.
  • parameter value m it is preferably provided that this applies as valid for the entire memory system and / or in each case valid for a number of specific memory pages and / or dynamically as a function of the current utilization of the memory system with regard to the read and / or write accesses can be stated on the storage medium.
  • each memory page cell of a memory page may contain a variable number of data bytes.
  • each memory page can contain a variable or, for better handling of the memory page for the memory system, a maximum of a definable number of memory page cells.
  • the reconstruction and provision of the desired memory page version taking into account the information managed by the memory system to the respective memory page cell about the reason for their storage during the respective revision, and / or taking into account the memory page cell identification information managed by the memory system to the respective memory page cell the memory page cells located in the respective memory page version in their immediate vicinity as well as the respectively managed ranking information with respect to a respective one of these memory page cells.
  • FIG. 1 shows an exemplary, schematic illustration of a plurality of versions of a memory page held in accordance with a preferred embodiment of the method according to the invention.
  • the advantageous aspect of the invention is very clearly shown, namely to subdivide a memory page from which several memory page versions are to be kept into a number of memory page cells.
  • FIG. 1 a total of six memory page versions PVp, r of PVi, i to PVi, 6 are kept in a memory system (not shown) from a memory page P1. Each of these seven
  • Memory page versions represents a state of processing and thus the result of a corresponding revision Rr, p from Ri, l to R7, i, wherein during each revision a number of specific modifications to the memory page Pi has been made.
  • the individual processes during each of the revisions Ri, i to R7, i will be described in detail below.
  • the method according to the invention is also applicable to essentially any other memory systems and in particular to data backup systems, Versioning systems and versioning file systems, such as log-structured file systems, are applicable.
  • Revision Ri, 1 First, the database page Pi is created with a lot of data contained. This represents the first revision Ri, i of the database page Pi, hereinafter also referred to as page Pi for short. The result of this first revision Ri, i logically forms the first database page version PVi, i of the database page Pi.
  • Database side Pi is divided into two database page cells PCp, c, each of the database page cells a unique database page cell identification information c, hereafter referred to as cell identification information c, so that the two memory page cells as PCi, i and PCi, 2, hereinafter also briefly only page cells or Cells PCi, l and PCi, 2 are identifiable.
  • Database page part PPp, r, ie PPi, i hereinafter also referred to briefly only side part PPi, i, which in the case of the first revision Ri, i contains the complete data content of the page Pi, so both side cells PCi, i and PCi, 2.
  • the database system manages the first database page version PVi, i, hereinafter also referred to simply as page version or version PVi, i, for example, in a database-internal, list, table or tree-structured directory Version pointer PVRi, i for the version PVi, i is recorded.
  • the parameter m is set to the value 2
  • the version pointer PVRi, i only includes a page sub pointer PPRi, i referencing the page part PPi, l, since it is the first version of the page Pi and consequently no further, the does not mean an older side part for the side Pi, which could be referenced with a second side part pointer.
  • a function of the parameter m is to indicate how many side part pointers PPRr, p include a version pointer PVRr, p.
  • a second function of the parameter m, for which a value, in particular an integer value, greater than 0 (zero) can be freely defined, will be discussed later.
  • the database system For each page cell PCp, r stored after a revision Rr, p, the database system also manages information as to why the cell is contained in the respective page part PPp, r, that is to say in particular as to which type of modification at the respective cell PCp, r during a revision Rr, p.
  • This information can, for example, also be recorded in a database-internal, list, table or tree-structured directory together with the unique cell identification information c of the respective memory page cell PCp, c.
  • Modification types and thus also as reasons for the storage of a page cell PCp, c can be distinguished in particular the insertion, modification and deletion of a cell, and preferably also a read access to a cell. Another reason why a side cell PCp, c may be included in a side part PPp, r will be discussed in more detail later.
  • the database system manages together with the cell identification information c and the Information regarding the storage reason also another page sub-pointer PPRr, p, which refers to that side part PPp, r, which contains the side cell PCp, c in the next older version.
  • PPRr page sub-pointer
  • FIG. 1 The information about the reason for storing the page cells PCi, i and PCi, 2 within the page part PPi, 1 is shown in FIG. 1 as 'I' for engl, 'inserted 1 ' in the respective one, to simplify the illustration Side cell shown.
  • the digit after I, C, or D symbolizes the further page sub-pointer, which each referenced that side part PPp, r, which contains the side cell PCp, c in the next older version.
  • no further page sub-pointers are used, but instead merely notes the difference between the version numbers of the two versions, to which the memory page parts belong, which the memory page cell in the current or in each next older modified version.
  • This version number difference is in By means of it, the correct version number can be determined at any time by a simple calculation and accessed via the en Jenkinsenden memory page version pointer and the associated, anyway existing memory page sub-pointer to the respective required memory page part.
  • each page cell PCp, c may contain a variable number of bytes of data, but is limited by the fact that each database page Pp should only contain a maximum of 128 memory page cells PCp, c to keep it manageable. In principle, however, another maximum value could also be defected or the number of side cells PCp, c could be left variable.
  • Revision R2 i At a later time, the first version PVi, i of the database page Pi is called again so that further modifications can be made to it during a second revision R2, i. Accessing the page version PVi, i via the page version pointer PVRi, i managed by the database system and the page sub pointer PPRI, i. Since only one side part PPi, i, which contains both existing side cells PCi, l and PCi, 2 and thus the complete data content of the first version PVi, 1 of the page Pi, is referenced, the page version PVi, 1 can be readily provided , As a further modification on the side Pi, a change takes place on the side cell PCi, 1, while the cell PCi, 2 remains unmodified.
  • Revision R3, i At a later time, the second version PVi, 2 of the database page Pi is called again so that again further modifications can be made during a third revision R3, i.
  • the page version PVi, 2 is accessed via the page version pointer PVR2, i managed by the database system, and the two page sub-pointers PPR2, i and PPRi, 1.
  • a further version pointer PVR3, i with the two page sub-pointers PPR3, i and PPR2, i is added to the side parts PPi, 3 and PPi, 2 in the above-mentioned internal directory of the database system.
  • the database system manages as information about the reason for storing the page cell PCi, 2, that it has been changed and as a replacement for another page sub-pointer on the page part, which contains the next older version of the page cell PC2, i, only one
  • Revision Ra, 1 At a later time, the third version PVi, 3 of the database page Pi is called again, so that a further modification can be made to it during a fourth revision R4, i.
  • a database page Pp includes nodes of a tree, each node comprising specific data from a set of tree-structured, hierarchically linked data, such as XML (extensible markup language) XML, and each Node such as a page cell PCp, c is manageable, then inserting a new node into the tree means inserting a new cell PCp, c into a database page Pp.
  • XML extensible markup language
  • one node may include an XML element and another node may include the textual content of the XML element or a first XML element in the tree structure hierarchically parent parent XML element or a hierarchically child child XML element.
  • nodes may also include other XML components such as attributes of an XML element or the value assignment of an attribute.
  • a page contains nodes as page cells PCp, c, where the nodes each comprise an XML component from an XML tree structure of hierarchically structured data
  • the nodes each comprise an XML component from an XML tree structure of hierarchically structured data
  • Each node becomes a unique one
  • the modification with respect to the cell PCi, 3 reflects the insertion a new node that includes a particular XML part into the XML tree.
  • the cell PCi, 1 is a node comprising an XML element
  • the cell PCi, 2 is a node containing the associated text content
  • the node corresponding to the cell PCi, 3 has another XML element comprises, in the XML structure to the XML element, which is comprised of the cell corresponding to the cell PCi, 1 parent should be parent as parent XML element, then the respective two nodes or cells PCi, 1 and PCi, 3 related ranking information adapted from the database system.
  • the newly inserted node or the cell PCi, 3 in the physically stored side part PPi, 4 need not be at the top.
  • This further revision of the page Pi is detected and in response thereto the revision counter r, which has hitherto had the value 3, for this memory page Pi by the count value 1, ie to 4, increased.
  • the result of this revision R4, i represents the page version PVi, 4. Since, during the revision R 4 , i, a modification on the side Pi took place merely in the form of an insertion of the cell PCi, 3, the physically stored side part PPi needed , 4 also contain only the cell PCi, 3.
  • the second function of the parameter value m is to indicate after how many revisions Rr, p of a page Pp during which a page cell PCp, c of that page has not been modified, a copy of this side cell PCp, c must be contained in a side part PPp, r.
  • the method according to the invention can be optimized in the direction of the data volume to be stored, the time required for storage and the required storage space on the storage medium or in the direction of the number of read accesses to the storage medium and the time required to reconstruct and provide the storage page in the desired version. Due to this importance of the parameter value m the memory system, it is particularly preferred that this is not only fixed once rigidly for the entire memory system, but dynamically depending on the prevailing load or load of the memory system in terms of read and / or read accesses the storage medium is definable and, additionally or alternatively, a value m can also be defined for specific individual or groups of storage pages, for example as a function of their size or their frequency or scope of updating.
  • Page cell less stored than logical to the version PVi, 4 belonging to the database page Pi.
  • a new version pointer PVR4, i with the two page sub-pointers PPR4, i and PPR3, i is added to the page sections PPi, 4 and PPi, 3 in the above-mentioned internal directory of the database system.
  • the database system as information about the reason for storing the page cell PCi, 1, manages that it is a copy without being changed, and a version number difference which leads to the side part PPi, 2, which contains the version of the side cell PCi, i, which serves as a copy sheet, so to speak. Since the cell PCi, 3 has been inserted for the first time in this version PVi, 4, there can therefore be no further, that is, no older,
  • FIG. 1 this is symbolized by an I and a 0 (zero) for the cell PCi, 3 according to the above-mentioned explanation.
  • the following symbolism applies to the copied cell PCi, i in FIG. 1:
  • the C and the 1 in parentheses were adopted from the version of the side cell PCi, i in the side part PPi, 2 which serves as the copy template.
  • the 2 outside the parenthesis represents the version number difference leading to the page part PPi, 2, which, so to speak, the as
  • Copy template serving side cell PCi, 1 contains.
  • Revision Rs, 1 At a later time, the fourth version PVi, 4 of the database page Pi is called again so that modifications can be made to it again during a fifth revision Rs, i.
  • each node manages the database system in addition to its own identification information c and the identification information c of the nodes, which comprise XML components that were in the XML tree hierarchically directly superordinate, subordinate or at the same level directly adjacent, respectively together with the corresponding ranking information.
  • Node comprises a further XML element which, in the XML tree structure, is superior to the XML element which is included in the node corresponding to the cell PCi, 1 as the parent XML element. Only the order of the nodes within the data page would be hierachical Structure was not apparent.
  • the revision counter r which has previously been the value 4, for this memory page Pi by the count value 1, ie, increased to 5.
  • the result of this revision Rs, 1 represents the page version PVi, 5.
  • a page portion PPi, 5 is stored, which contains only the modified cell PCi, 3 and the copied cell PCi, 2. Accordingly, physically one page cell is less stored than logical belong to the version PVi, 5 of the database page Pi.
  • a new version pointer PVRs, 1 with the two page sub-pointers PPR5, i and PPR4, i is added to the page sections PPi, 5 and PPi, 4 in the above-mentioned internal directory of the database system.
  • the database system manages, as information about the reason for storing the page cell PCi, 2, that it is a copy without being changed, and a version number difference to the page part
  • the database system manages as information about the reason of storing the page cell PCi, 3 that it has been changed, and a version number difference corresponding to that
  • Revision R6 i At a later time, the fifth version PVi, 5 of the database page Pi is called again so that once again modifications can be made during a sixth revision R ⁇ , i.
  • the access to the page version PVi, 5 takes place via the page version pointer PVRs, i managed for this purpose by the database system, as well as the two page sub-pointers PPRs, i and PPRs, 1.
  • each node manages the database system in addition to its own identification information c and the identification information c of the nodes, which comprise XML components that were in the XML tree hierarchically directly superordinate, subordinate or at the same level directly adjacent, respectively together with the corresponding ranking information.
  • Node comprises a further XML element which, in the XML tree structure, is superior to the XML element which is included in the node corresponding to the cell PCi, 1 as the parent XML element. Only from the arrangement of the nodes within the data page this hierarchical structure would not have been apparent.
  • the ranking between the nodes has changed only between PCi, 1 and PCi, 2 insofar as that
  • a new version pointer PVR6, i with the two page sub-pointers PPR6, i and PPR5, i is added to the page sections PPi, 6 and PPi, 5 in the above-mentioned internal directory of the database system.
  • the database system manages as information about the reason for storing the page cell PCi, 1 that it is a copy without being changed, and a version number difference leading to the page part PPi, 2, which serves as a copy template version of the page cell PCi , 1 contains. Further, the database system manages as information about the reason for storing the page cell PCi, 2 that it has been deleted, and a version number difference leading to the page part PPi, 3 containing the next older version of the cell PCi, 3.
  • An advantageous aspect of the invention is that it no longer stores snapshots for entire memory pages, but instead stores memory page cell snapshots.
  • a memory page snapshot is decomposed into a number of memory page cell snapshots stored on the storage medium distributed over a number of m memory page portions.

Abstract

A method for hosting a plurality of versions of memory pages in a storage system, wherein memory pages (Pp) are divided into memory page cells (PCp, c1,..., PCp, cn) and unique memory page cell identification information (c) is associated with each memory page cell, wherein in response to a revision (R) of a certain memory page (Pp), a counter (r) of revisions (Rp) and valid for the respective memory page is changed by a value and a memory page version (PVp, r) is logically managed by the storage system, and a memory page part (PPp, r) is physically stored in the storage system. The memory page part (PPp, r) comprises at lease one memory page cell (PCp, c) modified during the revision (Rr, p) and in response to the revision (Rr, p) of a memory page (Pp), a memory page version indicator (PVRr, p) is managed by the storage system, said indicator comprising m memory page part indicators (PPRrmax,p,..., PPRrmax-m+1,p) for the memory page parts (PPp,rmax,..., PPp, rmax-m+1), wherein m is a parameter value of m>0 that can be determined.

Description

Verfahren zur Vorhalten einer Mehrzahl von Versionen von SpeicherSeiten in einem SpeicherSystem sowie zum Zugreifen auf diese A method of maintaining and accessing a plurality of versions of memory pages in a memory system
Beschreibungdescription
Die Erfindung betrifft ein Verfahren zum Vorhalten einer Mehrzahl von Versionen von Speicherseiten in einemThe invention relates to a method for holding a plurality of versions of memory pages in one
Speichersystem, sowie ein Verfahren zum Zugreifen auf entsprechend vorgehaltene Versionen von Speicherseiten in einem Speichersystem.A storage system, and a method for accessing correspondingly preserved versions of memory pages in a storage system.
Aus dem Stand der Technik sind eine Vielzahl vonFrom the prior art are a variety of
Speichersystemen bekannt, zu denen etwa Dateisysteme ebenso wie Datenbanksysteme zählen. Unter einer Speicherseite, welche alternativ auch als Datenseite bezeichnet wird (engl.: page) , ist in Abhängigkeit von dem jeweils betrachteten Speichersystem zum Beispiel eine Datei eines Dateisystems oder eine Datenbankseite eines Datenbanksystems zu verstehen. Eine Datenbankseite stellt dabei eine Einheit dar, in der ein Datenbanksystem die Daten handhabt, wobei sie eine festlegbare maximale Menge an Daten und/oder Datensätzen umfasst, die das Datenbanksystem mit einem einzelnen Zugriff vom Speichermedium lesen und/oder auf das Speichermedium schreiben kann. Als gleichbedeutend mit dem Begriff Speicherseite wird im Rahmen dieser Anmeldung auch der Begriff Datenseite betrachtet.Storage systems known, which include file systems as well as database systems. A memory page, which is also referred to as a data page as an alternative, is to be understood, for example, as a file of a file system or a database page of a database system, depending on the respective storage system considered. A database page in this case represents a unit in which a database system handles the data, wherein it comprises a definable maximum amount of data and / or data records that the database system can read from the storage medium with a single access and / or write to the storage medium. As synonymous with the term memory page is considered in the context of this application, the term data page.
Es sind ferner Speichersysteme bekannt, mit denen es möglich ist, mehrere Bearbeitungsstände, d. h. Versionen, von jeweiligen Speicherseiten zu speichern und gleichzeitig zu verwalten. Dadurch bleiben frühere Versionen von Speicherseiten - zumindest bis auf Weiteres - erhalten und es besteht folglich die Möglichkeit, Speicherseiten mit einem Bearbeitungsstand wiederherstellen zu können, den sie zu einem bestimmten früheren Zeitpunkt hatten.There are also known memory systems with which it is possible to store several processing statuses, ie versions, of respective memory pages and at the same time manage. This preserves earlier versions of memory pages - at least for now - and thus provides the ability to restore pages with a history that they had at some point in the past.
In der Praxis wird für den Begriff Version oft der Begriff Revision synonym verwendet. Im Rahmen dieser Anmeldung bezieht sich der Begriff Version jedoch auf den jeweiligen abrufbaren Bearbeitungsstand einer Speicherseite, während der Begriff Revision sich auf den Vorgang des Modifizierens einer Speicherseite bezieht, wobei dieser mehrere Bearbeitungsschritte umfassen kann, die nach einem Abspeichern schließlich zum neuen Bearbeitungsstand der Speicherseite führen. Das heißt eine Version einerIn practice, the term revision is often used interchangeably with the term revision. In the context of this application, however, the term version refers to the respective retrievable processing status of a memory page, while the term revision refers to the process of modifying a memory page, which may comprise a plurality of processing steps which, after being stored, ultimately lead to the new processing status of the memory page , That is a version of a
Speicherseite stellt das Ergebnis einer Revision der Speicherseite dar. Modifikationen während einer Revision können das Einfügen, Löschen oder Ändern von Daten bzw. einer Speicherseite sein. Das erstmalige Erstellen einer Speicherseite gilt dabei als erste Revision.Memory page represents the result of a revision of the memory page. Modifications during a revision may be the insertion, deletion, or modification of data or a memory page. The first creation of a memory page is the first revision.
Das Speichern mehrerer Versionen einer Speicherseite kann in verschiedenen Situationen vorteilhaft sein, etwa nach einer Fehlfunktion des Computersystems oder nach Benutzerfehlern wie falschem Löschen oder Ändern von Daten oder ganzer Speicherseiten sowie zur Analyse der zeitlichen Veränderungen einer Speicherseite bis zu einem bestimmten Zustand.Saving multiple versions of a memory page may be advantageous in a variety of situations, such as a malfunction of the computer system or user errors such as erasure or modification of data or entire memory pages, as well as analysis of temporal changes of a memory page to a particular state.
Als Beispiel für Dateisysteme mit einer direkt eingebundenen und daher für den Anwender transparenten Versionierung, seien hier log-strukturierte Dateisysteme (engl.: log-structured file System, LFS) genannt. Sie schreiben Daten in einem fortlaufenden Strom auf den Datenträger, also zum Beispiel eine Festplatte, so dass modifizierte Speicherseiten stets in einen freien Speicherplatz geschrieben und somit keine existierenden Speicherseiten überschrieben werden. Mit diesem Ansatz ermöglichen log-strukturierte Dateisysteme zum Einen ein performantes Schreiben der Daten auf den Datenträger, da die Schreibzugriffe nur ein Minimum anAs an example of file systems with a directly integrated and therefore transparent for the user versioning, here log-structured file systems (English: log-structured file system, LFS) called. They write data in a continuous stream to disk, so for example a disk, so that Modified memory pages are always written into a free memory space and thus no existing memory pages are overwritten. With this approach, log-structured file systems on the one hand enable high-performance writing of the data to the data carrier, since the write accesses are only a minimum
Schreibkopfbewegungen erfordern. Zum Anderen bieten sie aber durch das kontinuierliche Fortschreiben der Daten einen Zugriff auf frühere Versionen von Speicherseiten.Require stylus movements. On the other hand, they provide access to earlier versions of memory pages by continuously updating the data.
Daneben gibt es mit den sogenanntenThere are also the so-called
Versionsverwaltungssystemen Softwaresysteme, die die Möglichkeit zur Versionierung von Speicherseiten, d. h. von Dateien, unabhängig vom zugrunde liegenden Dateisystem auf der Anwendungsebene implementieren. Derartige Systeme finden vor allem zur Versionsverwaltung von Quell- bzw. Programmcode bei der Softwareentwicklung Verwendung, um sämtliche am Code vorgenommenen Änderungen zu protokollieren und alte Entwicklungsstände bei Bedarf wiederherstellen zu können. Hierzu speichert einVersion management systems Software systems that provide the ability to version memory pages, i. H. of files, regardless of the underlying file system at the application level. Such systems are used primarily for the source code or program code version management in software development in order to log all changes made to the code and to be able to restore old development statuses if necessary. For this saves
Versionsverwaltungssystem alle zu einem Software-Projekt gehörenden Dateien sowie die jeweiligen vorgenommenen Modifikationen in einem sogenannten Repository. Versionsverwaltungssysteme gibt es sowohl als selbstständige Softwareapplikation als auch in integrierter Form, beispielsweise für Softwareentwicklungsumgebungen aber auch für Textverarbeitungs- undVersion management system all files belonging to a software project as well as the respective modifications made in a so-called repository. Version management systems are available both as a stand-alone software application and in an integrated form, for example for software development environments but also for word processing and
Tabellenkalkulationssoftware sowie für Content-Management- Systeme. Bekannte Beispiele für Versionsverwaltungssysteme sind CVS (Concurrent Versions System) oder Mercurial.Spreadsheet software and content management systems. Known examples of version management systems are CVS (Concurrent Versions System) or Mercurial.
Zudem findet neben den Dateisystemen mit Versionierung und den Versionsverwaltungssystem das Speichern mehrerer Versionen von Speicherseiten auch bei Datensicherungssystemen (engl: backup Systems) statt. Jedoch im Unterschied zu den zwei erstgenannten Systemen, bei denen die Versionen automatisch gespeichert werden, sobald eine Speicherseite, also eine Datei, modifiziert wurde, erfolgt das Speichern neuer Versionen bei Datensicherungssystemen zwar auch automatisch aber in der Regel abhängig von festgelegten, regelmäßigen Zeitpunkten und dann auch für mehrere Dateien eines Verzeichnisses, einer Partition oder gar eines ganzen Computersystems. Zudem werden die erstellten sogenannten Sicherheitskopien auf separate Speichermedien gespeichert, während Dateisysteme mit Versionierung undIn addition to the file systems with versioning and the version management system, storing multiple versions of memory pages also takes place in backup systems. However, unlike the first two systems in which the versions are automatically saved as soon as a memory page, ie a file, has been modified, saving new versions of backup systems is also automatic but usually dependent on fixed, regular times and then also for several files of a directory, a partition or even an entire computer system. In addition, the created so-called backup copies are stored on separate storage media, while file systems with versioning and
Versionsverwaltungssysteme die Versionen der Speicherseiten auf das selbe Speichermedium schreiben.Version management systems write the versions of the memory pages to the same storage medium.
Ferner existieren auch Datenbanksysteme, die, beispielsweise mittels entsprechend implementierter Datenbankmanagementsysteme, die Möglichkeit zur Versionierung von Daten bieten, so dass die Daten nicht nur in der aktuellen Version bereitstehen, sondern auch derart wiederherstellbar sind, wie sie zu einem bestimmten früheren Zeitpunkt waren.Furthermore, there are also database systems which, for example by means of correspondingly implemented database management systems, offer the possibility of versioning data, so that the data is not only available in the current version but can also be restored as it was at a certain earlier point in time.
In ihrer früheren deutschen Patentanmeldung 10 2008 024809.6-53, deren Offenbarung hiermit vollständig in Bezug genommen wird, beschreibt die Anmelderin ein Verfahren, welches es insbesondere im Zusammenhang mit nativen XML-Datenbanken ermöglicht, mehrere Versionen von baumstrukturartig verknüpften Datenfamilien zu speichern.In its earlier German Patent Application 10 2008 024809.6-53, the disclosure of which is hereby incorporated by reference, Applicant describes a method which, in particular in connection with native XML databases, makes it possible to store several versions of tree-structured data families.
Eine relativ einfache Möglichkeit zum Bereithalten mehrerer Versionen einer Speicherseite stellt das Speichern jeweils der gesamten Speicherseite einschließlich der Modifikationen für jede Revision dar. Dieses dem sogenannten Kopieren-beim-Schreiben-Prinzip (engl.: copy- on-write) entsprechende Vorgehen mag den Vorteil haben, dass die jeweilige gewünschte Version der Speicherseite unmittelbar aufrufbar ist. Es führt jedoch vor allem zu einem erheblichen Speicherplatzverbrauch auf dem Speichermedium.A relatively straightforward way of having multiple versions of a memory page available is to store the entire memory page, including the modifications for each revision. This approach, which is similar to the copy-on-write approach, may be advantageous to have, that the respective desired version of the memory page is immediately accessible. However, it mainly leads to a considerable storage space consumption on the storage medium.
Basierend auf der Erkenntnis, dass sich zwei aufeinander folgende Versionen einer Speicherseite üblicherweise jedoch nur geringfügig unterscheiden, so dass bei einer jeweils vollständigen Speicherung der Speicherseite nach jeder Revision ein Großteil an Daten redundant vorliegen würde, werden bei der sogenannten Differenzspeicherung nach jeder Revision nur noch die modifizierten und damit die im Vergleich zur vorherigen Version der Speicherseite unterschiedlichen Daten, die sogenannten Deltas, gespeichert. Ein derartiges Delta kann beispielsweise aus einer binären Differenz zwischen der neueren und der vorherigen Version einer Speicherseite bestehen. Auf diese Weise führt die Differenzspeicherung oder auch Delta- Speicherung bzw. Delta-Kodierung (engl.: delta encoding) zu einer Reduktion des Speicherplatzverbrauchs bei derBased on the knowledge that two successive versions of a memory page usually differ only slightly, so that would be redundant in a respective complete storage of the memory page after each revision a large amount of data, in the so-called difference storage after each revision only the modified and thus the different data compared to the previous version of the memory page, the so-called deltas stored. For example, such a delta may consist of a binary difference between the newer and the previous version of a memory page. In this way, differential storage or delta encoding leads to a reduction of storage space usage in the
Speicherung sequenzieller Daten, also von Daten, die in mehreren Versionen vorliegen, und kann somit auch als eine Art der Datenkompression betrachtet werden. Gegenüber der Speicherung von stets vollständigen Speicherseiten je Version reduziert sich bei der Differenzspeicherung neben dem Speicherplatzbedarf aber auch die benötigte Zeit zum Schreiben der Daten auf das Speichermedium. Dieses Verfahren der Delta-Speicherung kann beliebig oft angewendet werden und liefert schließlich eine komplette Historie der Versionen einer Speicherseite. Somit müsste nach dem dem Prinzip der Delta-Speicherung jede Speicherseite nur noch einmal vollständig gespeichert werden, nämlich bei ihrer erstmaligen Erstellung. Ein wesentlicher Nachteil dieser Art der Speicherung von Versionen einer Speicherseite besteht jedoch darin, dass zum Bereitstellen der jeweiligen gewünschten Version der Speicherseite ein erheblicher Aufwand erforderlich wird, wenn zwischen der ersten und der gewünschten Version bereits eine Reihe weiterer Versionen liegen. Denn ausgehend von der vollständig gespeicherten Speicherseite der ersten Revision müssen dann für alle weiteren Versionen bis zur gewünschten die nur noch jeweils als Delta hinterlegten Modifikationen nacheinander vollzogen werden, um die gewünschte Speicherseitenversion zu erhalten.Storage of sequential data, that is data that exists in several versions, and thus can also be considered as a form of data compression. In contrast to the storage of always complete memory pages per version, the differential storage not only reduces the storage space requirement but also the time required to write the data to the storage medium. This method of delta storage can be applied as often as desired and eventually provides a complete history of the versions of a memory page. Thus, according to the principle of delta storage, each memory page would only have to be completely stored once more, namely at its first creation. A major disadvantage of this type of storage of versions of a memory page, however, is that to provide the respective desired version of the memory page a considerable effort is required if there are already a number of other versions between the first and the desired version. Because starting from the completely stored memory page of the first revision must then be completed in succession for all other versions to the desired the only deposited as a delta modifications in order to obtain the desired memory page version.
Damit aber die Rekonstruktion jeder Version einer Speicherseite mit vertretbarem Aufwand und entsprechender Geschwindigkeit möglich ist, wird nunmehr in regelmäßigen Abständen nach einer Revision einer Speicherseite anstelle eines Deltas ein sogenannter Snapshot geschrieben. Wie bei der ersten Revision wird auch mit einem Snapshot die vollständige Speicherseite auf das Speichermedium geschrieben. Ein Snapshot umfasst die gesamten Daten einer Speicherseite einschließlich der Modifikationen aller vorherigen Revisionen sowie der Revision zu deren Abschluss er abgespeichert wird. Somit kann anstelle der ersten Version einer Speicherseite dann der jeweils nächstliegende Snapshot als neuer Ausgangspunkt bei der Rekonstruktion jeweils nachfolgender Versionen einer Speicherseite, für die wieder nur ein Delta geschrieben wurde, dienen, so dass stets nur eine relativ geringe Anzahl an Deltas auszuwerten ist. Die Häufigkeit in der anstatt eines Deltas ein Snapshot abgespeichert wird, kann automatisch, zum Beispiel zeitabhängig, wie insbesondere bei Datensicherungssystemen, und auch dynamisch festgelegt werden, etwa in Abhängigkeit von der Anzahl der Revisionen oder dem Umfang bzw. der Größe der Modifikationen seit dem letzten Snapshot. In ihrer oben genannten, früheren deutschen Patentanmeldung 10 2008 024809.6-53 beschreibt die Anmelderin unter anderem eine weitere Möglichkeit, um die während einer Revision vorgenommenen Modifikationen an einer Datenseite effizient zu speichern. Dabei wird es dort ausgenutzt, dass die Daten in der Datenseite als Knoten eines enkodierten Baumes vorliegen, und der Dateninhalt der Datenseite somit eine eindeutige Struktur aufzeigt. Werden während einer Revision Modifikationen an den Daten einer Datenseite vorgenommen, sind diese einem oder auch mehreren bestimmten Knoten zuordenbar und es wird sodann jeder während der Revision modifizierte Knoten vollständig in seiner modifizierten Fassung in ein neues Datenseitenteil für diese Version der Datenseite gespeichert, so dass der Bearbeitungsstand eines jeweiligen Knotens unmittelbar aus diesem Datenseitenteil erkennbar ist. In einer festlegbaren Häufigkeit handelt es es bei dem nach einer Revision gespeicherten Datenseitenteil um einen Snapshot, wobei ein solches Datenseitenteil auch die während dieser Revision nicht modifizierten Knoten und damit alle Knoten der Datenseite enthält. Zusammen mit einem Datenseitenteil, welches kein Snapshot ist, werden auch Referenzzeiger auf die Datenseitenteile für vorhergehende Versionen der Datenseite sowie auf das letzte zuvor gespeicherte Datenseitenteil, welches ein Snapshot ist, gespeichert. Zur Rekonstruktion einer bestimmten Datenseitenversoin sind die jeweils referenzierten Datenseitenteile zu berücksichtigen, wobei die in dem referenzierten Snapshot enthaltenen Knoten entsprechend der weiteren referenzierten Datenseitenteile entweder durch die darin gegebenenfalls enthaltenen modifizierten Knotenfassungen zu ersetzen sind oder aber zu löschen oder mit zusätzlichen Knoten zu ergänzen sind. Gegenüber dem Verfahren der Differenz- bzw. Delta- Speicherung kann bei der Vorgehensweise gemäß oben genannter deutscher Patentanmeldung 10 2008 024809.6-53 eine bestimmte Version einer Datenseite gewissermaßen modulartig aus den in den referenzierten Datenseitenteilen enthaltenen Knoten zusammengesetzt, ohne dass dabei aufwendige Berechnungen, wie zum Beispiel Delta- Berechnungen, erforderlich wären.However, to enable the reconstruction of each version of a memory page with reasonable effort and speed, a so-called snapshot is now written at regular intervals after a revision of a memory page instead of a delta. As with the first revision, the entire memory page is written to the storage medium with a snapshot. A snapshot covers all the data in a memory page, including the modifications of all previous revisions, as well as the revision to which it will be saved. Thus, instead of the first version of a memory page, the respective closest snapshot can then serve as a new starting point in the reconstruction of respectively subsequent versions of a memory page for which only one delta has been written, so that only a relatively small number of deltas is to be evaluated. The frequency at which a snapshot is saved instead of a delta can be defined automatically, for example, time-dependent, in particular for data backup systems, and also dynamically, for example, depending on the number of revisions or the size or size of the modifications since the last one snapshot. In its above-mentioned earlier German patent application 10 2008 024809.6-53, the applicant describes, inter alia, a further possibility for efficiently storing the modifications made to a data page during a revision. It is exploited there that the data in the data page as a node of an encoded tree, and thus the data content of the data page shows a unique structure. If modifications are made to the data of a data page during a revision, these can be assigned to one or more specific nodes and then each node modified during the revision is completely stored in its modified version in a new data page part for that version of the data page, so that the Processing status of a respective node directly from this data page part is recognizable. In a determinable frequency, the data page part stored after a revision is a snapshot, such a data page part also containing the nodes not modified during this revision, and thus all nodes of the data page. Along with a data page part which is not a snapshot, reference pointers are also stored on the data page parts for previous versions of the data page as well as on the last previously stored data page part, which is a snapshot. For reconstructing a particular data page verse, the respective referenced data page parts are to be considered, wherein the nodes contained in the referenced snapshot corresponding to the other referenced data page parts are either replaced by the modified node versions contained therein or to be deleted or supplemented with additional nodes. Compared to the method of differential or delta storage can in the approach according to the above-mentioned German patent application 10 2008 024809.6-53 a certain version of a data page so to speak composed in a modular manner from the nodes contained in the referenced data page parts, while consuming calculations, such as Example delta calculations would be required.
Ein Problem bei all diesen bekannten Verfahrensweisen besteht allerdings weiterhin darin, dass das nach einer Revision jeweils auf das Speichermedium zu schreibende Datenvolumen relativ stark variiert und bei Betrachtung mehrerer aufeinanderfolgender Speicherseitenversionen somit sehr ungleich verteilt ist, da entweder nur ein vergleichsweise kleines Delta bzw. Datenseitenteil oder aber ein vergleichsweise großer Snapshot zu schreiben ist.A problem with all these known methods, however, continues to be that the data volume to be written to the storage medium after a revision varies relatively widely and is therefore distributed very unevenly when viewing several successive memory page versions, since either only a comparatively small delta or data page part or but to write a comparatively large snapshot is.
Nachteilig ist bei den bekannten Verfahrensweisen auch, dass die Anzahl der Zugriffe auf das Speichermedium, die zur Rekonstruktion einer Speicherseite nötig sind, relativ stark variiert und der erforderliche Aufwand somit nicht vorhersagbar ist, da die Anzahl der nötigen Speicherzugriffe zunächst davon abhängt, ob für die gewünschte Version ein Snapshot abgespeichert wurde, so dass die Speicherseite direkt verfügbar ist, oder nur ein Delta, so dass zusätzlich noch der nächstliegende vorherige Snapshot sowie alle gegebenenfalls noch dazwischen liegenden Deltas auszulesen und zu verarbeiten sind. Zudem hängt die Varianz bezüglich der Anzahl der zurA disadvantage of the known procedures also that the number of accesses to the storage medium, which are necessary for the reconstruction of a memory page varies relatively widely and the required effort is therefore not predictable, since the number of memory accesses depends initially on whether for the desired version a snapshot was saved, so that the memory page is directly available, or only a delta, so that in addition still the closest previous snapshot and any deltas still intervening there are to read and process. In addition, the variance depends on the number of
Rekonstruktion einer Speicherseitenversion erforderlichen Speicherzugriffe natürlich direkt von der (dynamischen) Häufigkeit, in welcher Snapshots gespeichert wurden, ab. Mit Blick auf das Verfahren gemäß oben genannter deutscher Patentanmeldung 10 2008 024809.6-53 ist das Problem aufgefallen, dass noch zu viel Speicherplatz benötigt wird, und zwar insbesondere in dem Fall, wenn es häufig zwischen zwei Knoten einer Datenseite von Revision zu Revision alternierende Modifikationen gibt. Dieser Fall führt nämlich dazu, dass entsprechend oft Snapshots der Datenseite, einschließlich des jeweils nicht modifizierten Knotens, abgespeichert werden. Vor allem wurde dieses Verfahren bisher für Datenseiten mit eindeutig strukturiertem Dateninhalt, etwa in Form von Knoten eines Baumseingesetzt .Reconstruction of a memory page version of course requires memory accesses directly from the (dynamic) frequency in which snapshots were stored. With regard to the method according to the above-mentioned German patent application 10 2008 024809.6-53, the problem has been noticed that too much memory space is still needed, especially in the case when there are frequently alternating modifications between two nodes of a data page from revision to revision , This case leads to the fact that snapshots of the data page, including the respectively unmodified node, are stored correspondingly often. Above all, this method has hitherto been used for data pages with clearly structured data content, for example in the form of nodes of a tree.
Eine Aufgabe der Erfindung besteht somit darin, ein Verfahren zum Vorhalten einer Mehrzahl von Versionen von Speicherseiten in einem Speichersystem derart weiterzuentwickeln, dass es für Speicherseiten mit im Wesentlichen beliebigem Dateninhalt geeignet ist und dabei bevorzugt wenigstens einen der zuvor genannten Nachteile bisher bekannter Verfahren beseitigt.It is therefore an object of the invention to further develop a method for holding a plurality of versions of memory pages in a memory system such that it is suitable for memory pages with essentially any data content and thereby preferably eliminates at least one of the aforementioned disadvantages of previously known methods.
Die erfindungsgemäße Lösung der Aufgabe ist auf überraschende Weise bereits durch ein Verfahren gemäß Anspruch 1 gegeben.The inventive solution of the problem is given in a surprising way already by a method according to claim 1.
Demnach sieht die Erfindung ein Verfahren zum Vorhalten einer Mehrzahl von Versionen von Speicherseiten in einem Speichersystem vor, bei welchem Speicherseiten in eine Anzahl von Speicherseitenzellen unterteilt und den Speicherseitenzellen eine eindeutigeAccordingly, the invention provides a method of maintaining a plurality of versions of memory pages in a memory system in which memory pages are divided into a number of memory page cells and a unique one of the memory page cells
Speicherseitenzellenidentifikationsinformation zugeordnet wird. In Reaktion auf eine Revision einer bestimmten Speicherseite wird ferner ein für die jeweilige Speicherseite geltender Zähler für Revisionen um einen Zählwert verändert, insbesondere stets in gleicher Weise verändert, etwa herauf- oder herabgesetzt, also beispielsweise inkrementiert, und logisch eine Speicherseitenversion vom Speichersystem verwaltet, physisch jedoch ein Speicherseitenteil im Speichersystem gespeichert. Dabei enthält ein solches Speicherseitenteil zumindest eine während dieser Revision modifizierte Speicherseitenzelle. Ferner wird in Reaktion auf jede Revision einer Speicherseite einMemory page cell identification information is assigned. In addition, in response to a revision of a particular memory page, a counter for revisions applicable to the respective memory page is changed by one count, in particular always in the same way changed, such as up or down, so for example, incremented, and logically manages a memory page version of the storage system, but physically a memory page part stored in the storage system. In this case, such a memory page part contains at least one memory page cell modified during this revision. Further, a memory page will respond in response to each revision
Speicherseitenversionszeiger vom Speichersystem verwaltet, wobei dieser Speicherseitenversionszeiger wiederum m Speicherseitenteilzeiger auf die entsprechenden Speicherseitenteile umfasst, wobei m ein festlegbarer Parameterwert von m>0 ist.Memory page version pointer managed by the memory system, said memory page version pointer in turn m memory page partial pointer to the corresponding memory page parts, where m is a definable parameter value of m> 0.
Dabei wird bevorzugt jede Speicherseite in eine Anzahl von Speicherseitenzellen unterteilt.In this case, each memory page is preferably subdivided into a number of memory page cells.
Ebenso bevorzugt wird jeder der Speicherseitenzellen eine eindeutige Speicherseitenzellenidentifikationsinformation zugeordnet.Also preferably, each of the memory page cells is assigned unique memory page cell identification information.
Es versteht sich dabei, dass der Zähler für Revisionen sowohl die jeweilige Revisionsnummer der Revisionen als auch die jeweilige Versionsnummer der Versionen liefert, dank der die einzelnen Revisionen sowie Versionen eindeutig unterscheidbar sind, wobei eine Versinon das Ergibnis einer Revision mit gelicher Nummer darstellt.It should be understood that the revision counter provides both the revision revision number and the version number of the versions, by which the individual revisions and versions are clearly distinguishable, with a versinon representing a revision with a fixed number.
Daneben schlägt die Erfindung auch ein Verfahren nach Anspruch 10 zum Zugreifen auf gemäß dem Verfahren nachIn addition, the invention also proposes a method according to claim 10 for accessing according to the method
Anspruch 1 vorgehaltene Versionen von Speicherseiten in einem Speichersystem vor, bei welchem unterClaim 1 held versions of memory pages in a storage system before, in which under
Berücksichtigung des für die gewünschteConsideration of the desired
Speicherseitenversion vom Speichersystem verwalteten Speicherseitenversionszeigers und der m von diesem umfassten Speicherseitenteilzeiger die gewünschte Speicherseitenversion aus den in den referenzierten Speicherseitenteilen enthaltenen Speicherseitenzellen durch Zusammenfügen dieser Speicherseitenzellen rekonstruiert und bereitgestellt wird. Dabei wird, sofern eineMemory page version of the memory system managed memory page version pointer and the m of this Memory page sub-pointers have the desired memory page version reconstructed and provided from the memory page cells contained in the referenced memory page parts by assembling these memory page cells. It is, if one
Speicherseitenzelle in mehreren der m referenzierten Speicherseitenteile enthalten ist, jene Speicherseitenzelle herangezogen, welche in dem neueren dieser Speicherseitenteile enthalten war.Memory page cell in several of the m referenced memory page parts is included, used that memory page cell, which was included in the newer of these memory page parts.
Darüber hinaus sieht die Erfindung ein Speichersystem vor, welches zur Durchführung des Verfahrens nach Anspruch 1 und/oder 10 bzw. des Verfahrens nach einer der im Folgenden noch beschriebenen bevorzugten Ausführungsformen hergerichtet ist, sowie ein computerlesbares Medium mit einem darauf gespeicherten Computerprogramm, welches Anweisungen definiert, die einen Computer bzw. das erfindungsgemäße Speichersystem derart steuern, dass dieser bzw. dieses geeignet ist, ein Verfahren nach Anspruch 1 und/oder 10 bzw. ein Verfahrens nach einer der im Folgenden noch beschriebenen bevorzugten Ausführungsformen auszuführen.In addition, the invention provides a memory system which is prepared for carrying out the method according to claim 1 and / or 10 or the method according to one of the preferred embodiments described below, and a computer-readable medium with a computer program stored thereon, which defines instructions which control a computer or the memory system according to the invention such that it or this is suitable for carrying out a method according to claim 1 and / or 10 or a method according to one of the preferred embodiments described below.
Mittels des Verfahren gemäß Anspruch 1 und 10 bzw. einer der im Folgenden noch beschriebenen Ausführungsformen ist es nunmehr möglich, eine Mehrzahl von Versionen von Speicherseiten mit im Wesentlichen beliebigem Dateninhalt in einem Speichersystem bereit zu halten bzw. auf diese zuzugreifen. Ferner sind diese Verfahren im Wesentlichen für beliebige Speichersysteme, insbesondere aber für die eingangs dargestellten Speichersysteme, welche bisher gemäß einem der bekannten Verfahren zur Speicherung mehrerer Versionen von Speicherseiten arbeiteten, übertragbar und anwendbar . Ein vorteilhafter Aspekt der Erfindung war dabei unter anderem, die sich bei dem Verfahren gemäß oben genannten, früherer deutscher Patentanmeldung 10 2008 024809.6-53 der Anmelderin aus der Strukturiertheit der Daten einer Datenseite für die Speicherung von mehreren Versionen dieser Datenseite ergebenden Vorteile dadurch für beliebige andere Speicherseiten nutzen zu können, indem die Speicherseiten in Zellen unterteilt werden, wobei diese Zellen dann eine ähnliche Struktur wie die Knoten der zuvor erwähnten Datenseite bieten und in entsprechender vorteilhafter Weise handhabbar sind.By means of the method according to claims 1 and 10 or one of the embodiments described below, it is now possible to have a plurality of versions of memory pages with essentially any data content in a memory system ready to be accessed. Furthermore, these methods are essentially transferable and applicable for any storage systems, but especially for the storage systems described at the beginning, which hitherto worked according to one of the known methods for storing a plurality of versions of memory pages. An advantageous aspect of the invention was, inter alia, in the method according to the aforementioned German Patent Application 10 2008 024809.6-53 of the applicant from the structured nature of the data of a data page for the storage of multiple versions of this data page resulting advantages thereby for any other Memory pages can be used by the memory pages are divided into cells, these cells then offer a similar structure as the nodes of the aforementioned data page and are handled in a corresponding advantageous manner.
Ein anderer Aspekt der Erfindung liegt darin, keine Snapshots mehr für gesamte Speicherseiten abzuspeichern, wobei dies auf die Erkenntnis zurückzuführen ist, dass eine Speicherseitenzelle, welche in Reaktion auf eine Revision vollständig in ihrer modifizierten Fassung abgespeichert wird, so dass der Bearbeitungsstand der Zelle unmittelbar aus ihr erkennbar ist, gewissermaßen bereits einenAnother aspect of the invention is to no longer store snapshots for entire pages of memory, due to the recognition that a memory page cell, which is completely stored in its modified version in response to a revision, so that the state of processing of the cell immediately it is recognizable, in a way already one
Speicherseitenzellen-Snapshot darstellt. Somit wurde ferner deutlich, dass ein Snapshot einer gesamten Speicherseite, dessen Funktion es bisher war, die einzelnen als eine Anzahl von Deltas gespeicherten Modifikationen an einer Speicherseite zusammenzuführen und einen neuenRepresents memory page cell snapshot. Thus, it also became clear that a snapshot of an entire memory page whose function it was previously to merge the individual modifications stored as a number of deltas on one memory page and a new one
Ausgangspunkt für die Rekonstruktion nachfolgender Speicherseitenversionen zu schaffen, im Prinzip überflüssig geworden ist. Erfindungsgemäß ist daher ein Speicherseiten-Snapshot in eine Anzahl von Speicherseitenzellen-Snapshots zerfallen, die verteilt über eine Anzahl von m Speicherseitenteilen auf dem Speichermedium abgespeichert sind.Starting point for the reconstruction of subsequent memory page versions to create, in principle has become superfluous. In accordance with the invention, therefore, a memory page snapshot is decomposed into a number of memory page cell snapshots stored on the storage medium distributed over a number of m memory page portions.
Somit liegt ein sich bereits aus dem Verfahren nach Anspruch 1 ergebender Vorteil darin, dass sich das nach einer Revision jeweils auf das Speichermedium zu schreibende Datenvolumen gleichmäßiger verteilt, da anstelle eines relativ großen Speicherseiten-Snapshots nach beispielsweise jeder dritten Revision einer Speicherseite nunmehr lediglich einige relativ kleineThus, an already resulting from the method according to claim 1 advantage is that after a revision in each case on the storage medium to be written data volume evenly distributed, since instead of a relatively large memory page snapshot after every third revision of a memory page now only some relatively small
Speicherseitenzellen-Snapshots nach jeder Revision einer Speicherseite auf das Speichermedium geschrieben werden.Memory page cell snapshots are written to the storage medium after each revision of a memory page.
Zudem variiert dank des Verfahrens nach Anspruch 1, die Anzahl der Zugriffe auf das Speichermedium, die während des Verfahrens nach Anspruch 10, zum Rekonstruieren und Bereitstellen einer bestimmten Speicherseitenversion nötig sind, nun weniger stark und der erforderliche Aufwand ist somit besser vorhersagbar, da alle für eine bestimmte Speicherseitenversion erforderlichen Speicherseitenzellen in den m referenzierten Speicherseitenteilen enthalten sind. Dabei ist zusätzlich von Vorteil, dass zum Einen ein inhärent paralleler Lesezugriff auf die referenzierten Speicherseitenteile und die enthaltenen Speicherseitenzellen möglich ist, und dass zum Anderen keine Deltas basierend auf einem Snapshot sequenziell auszuwerten sind, sondern dass die jeweilige Speicherseitenversion vielmehr modulartig auf einfache Weise aus den referenzierten Speicherseitenzellen zusammensetzbar ist, was die Rekonstruktion nochmals beschleunigt .In addition, thanks to the method of claim 1, the number of accesses to the storage medium required during the method of claim 10 for reconstructing and providing a particular memory page version now varies less and the effort required is thus more predictable, since all for a particular memory page version required memory page cells in the m referenced memory page parts are included. It is additionally advantageous that, on the one hand, an inherently parallel read access to the referenced memory page parts and the contained memory page cells is possible, and, on the other hand, no deltas based on a snapshot are to be sequentially evaluated, but rather the respective memory page version can be modulated in a simple manner from the referenced memory page cells is composable, which accelerates the reconstruction again.
Weitere bevorzugte und/oder vorteilhafte Ausführungsformen des Verfahrens nach Anspruch 1 gehen aus den jeweiligen Unteransprüchen hervor.Further preferred and / or advantageous embodiments of the method according to claim 1 emerge from the respective subclaims.
Bevorzugt enthält das Speicherseitenteil jede während der Revision modifizierte Speicherseitenzelle. Besonders bevorzugt enthält das Speicherseitenteil die Kopie zumindest einer, zweckmäßiger Weise jeder Speicherseitenzelle, die zuletzt in dem Speicherseitenteil enthalten war, das m Revisionen zuvor gespeichert wurde.Preferably, the memory page part contains each memory page cell modified during the revision. More preferably, the memory page part contains the copy of at least one, expediently, each memory page cell last contained in the memory page part previously stored in revisions.
Dank einer solchen Kopie besteht für die entsprechende Speicherseitenzelle während einer späteren Rekonstruktion der Speicherseite über den Speicherseitenversionszeiger und dessen m Speicherseitenteilzeiger eine direkte Zugriffsmöglichkeit, ohne dass weitereThanks to such a copy, there is direct accessibility for the corresponding memory page cell during a later reconstruction of the memory page via the memory page version pointer and its m memory page sub-pointer, without any further access
Speicherseitenteilzeiger, Berechnungen oder Suchvorgänge erforderlich wären.Memory page sub-pointers, calculations or searches would be required.
Mittels dieser bevorzugten Ausführungsform des Verfahrens kann gegenüber den bisher bekannten Verfahren eineBy means of this preferred embodiment of the method can be compared to the previously known methods a
Reduktion des benötigten Speicherplatzes um bis zu einem Drittel erreicht werden, insbesondere in dem Fall, wenn es häufig zwischen zwei Knoten einer Speicherseite von Revision zu Revision alternierende Modifikationen gibt. Denn unter der Voraussetzung, dass für den Parameter m ein Wert von größer als oder gleich 2 (zwei) festgelegt ist, wird in Reaktion auf die Revision einer einzelnen Speicherseitenzelle ein Speicherseitenteil geschrieben, welches lediglich diese Speicherseitenzelle in der vollständigen modifizierten Fassung enthält, während nach einer unmittelbar folgenden Revision, bei der die andere Speicherseitenzelle modifiziert wurde, einReduction of the required memory space can be achieved by up to one third, especially in the case when there are often alternately between two nodes of a memory page from revision to revision modifications. Because, provided that the parameter m is set to a value greater than or equal to 2 (two), a memory page portion containing only this memory page cell in the fully modified version is written in response to the revision of a single memory page cell an immediately following revision in which the other memory page cell has been modified
Speicherseitenteil abgespeichert wird, das lediglich diese andere Speicherseitenzelle in der vollständigen modifizierten Fassung enthält. Sofern also derMemory page part is stored, which contains only this other memory page cell in the full modified version. So if the
Parameterwert m größer als 1 (eins) ist, würde somit auch nach weiteren Revisionen, die alternierend die Modifikation der einen oder der anderen Zelle betreffen, kein Speicherseitenteil mehr auf das Speichermedium geschrieben werden, welches in Form eines Speicherseiten-Snapshot beide Speicherseitenzellen enthält und damit redundanter Weise auch erneut die jeweils nicht modifizierte Speicherseitenzelle, wie es sonst bei einer der bisher bekannten Verfahrensweisen vorgesehen wäre.Parameter value m is greater than 1 (one), so even after further revisions, which relate alternately to the modification of one or the other cell, no memory page part would be written to the storage medium, which in the form of a memory page snapshot both Memory page cells contains and thus redundant way again each unmodified memory page cell, as would otherwise be provided in one of the previously known procedures.
Bevorzugt ist vorgesehen, dass für jede Speicherseitenzelle einer Speicherseite sowohl deren eigeneIt is preferably provided that for each memory page cell of a memory page both their own
Speicherseitenzellenidentifikationsinformation und auch jeweils die Speicherseitenzellenidentifikationsinformationen c derMemory page cell identification information and also each memory page cell identification information c of
Speicherseitenzellen, die sich in der Speicherseite Pp in ihrer unmittelbaren Umgebung befinden sowie jeweils eine Rangfolgeinformation in Bezug auf eine jeweilige dieser Speicherseitenzellen vom Speichersystem verwaltet werden, und dass für jede Speicherseitenzelle in dem Speicherseitenteil sowohl deren eigeneMemory page cells located in the memory page Pp in their immediate vicinity and each of a ranking information related to a respective one of these memory page cells are managed by the memory system, and that for each memory page cell in the memory page part both their own
Speicherseitenzellenidentifikationsinformation als auch jeweils die Speicherseitenzellenidentifikationsinformationen der Speicherseitenzellen, die sich in dieserMemory page cell identification information as well as each memory page cell identification information of the memory page cells located therein
Speicherseitenversion in ihrer unmittelbaren Umgebung befinden sowie jeweils eine Rangfolgeinformation in Bezug auf eine jeweilige dieser Speicherseitenzellen vom Speichersystem verwaltet werden.Memory page version located in their immediate vicinity and each of a ranking information with respect to a respective one of these memory page cells are managed by the storage system.
Von Vorteil ist es, wenn gemäß einer Ausführungsform des Verfahrens für jede Speicherseitenzelle in dem Speicherseitenteil eine Information über den Grund für ihre Speicherung während dieser Revision vom Speichersystem verwaltet wird.It is advantageous if, according to an embodiment of the method, for each memory page cell in the memory page part, information about the reason for its storage during this revision is managed by the memory system.
Zweckmäßiger Weise sind dabei als Gründe für die Speicherung einer Speicherseitenzelle innerhalb eines Speicherseitenteils zumindest deren Einfügung in die Speicherseite, deren Änderung und deren Löschung aus der Speicherseite sowie deren Modifikationsfreiheit seit einer Anzahl von m Revisionen der Speicherseite unterscheidbar. Als ein Grund für die Speicherung einer Speicherseitenzelle innerhalb eines Speicherseitenteils kann jedoch bevorzugt bereits ein Lesezugriff genügen.Appropriately, as reasons for the storage of a memory page cell within a memory page part at least their insertion into the memory page, their change and their deletion from the Memory page and their Modifikationsfreiheit distinguishable for a number of m revisions of the memory page. As a reason for storing a memory page cell within a memory page part, however, a read access may already preferably suffice.
Besonders bevorzugt wird für jede in einem Speicherseitenteil enthaltene Speicherseitenzelle ein weiterer Speicherseitenteilzeiger auf das Speicherseitenteil, welches die Speicherseitenzelle in der jeweils nächst älteren modifizierten Fassung enthält, vom Speichersystem verwaltet. Vorzugsweise genügt es bereits, insbesondere um den Speicherplatzbedarf gering zu halten, lediglich die Differenz aus den Versionsnummern der beiden Versionen zu vermerken, zu denen die Speicherseitenteile gehören, welche die jeweils betrachtete Speicherseitenzelle bzw. diese Speicherseitenzelle in der jeweils nächst älteren modifizierten Fassung enthalten, so dass jederzeit durch eine simple Berechnung die richtige Versionsnummer ermittelt und über den ensprechendenParticularly preferably, for each memory page cell contained in a memory page part, another memory page sub-pointer to the memory page part, which contains the memory page cell in the respectively older modified version, is managed by the memory system. Preferably, it is sufficient, in particular in order to keep the storage space requirement low, only to note the difference between the version numbers of the two versions, to which the memory page parts belong, which contain the respectively considered memory page cell or memory page cell in the next older modified version that at any time by a simple calculation determines the correct version number and the ensprechenden
Speicherseitenversionszeiger sowie den zugehörigen, ohnehin vorhandenen Speicherseitenteilzeiger auf das jeweils benötigte Speicherseitenteil zugegriffen weden kann.Memory page version pointer and the associated, anyway existing memory page sub-pointer to the respective required memory page part can be accessed.
Mit Blick auf den Parameterwert m ist bevorzugt vorgesehen, dass dieser als für das gesamte Speichersystem geltend und/oder jeweils mit Gültigkeit für eine Anzahl bestimmter Speicherseiten und/oder dynamisch in Abhängigkeit von der jeweils aktuellen Auslastung des Speichersystem hinsichtlich der Schreib- und/oder Lesezugriffe auf das Speichermedium geltend festlegbar ist.With regard to the parameter value m, it is preferably provided that this applies as valid for the entire memory system and / or in each case valid for a number of specific memory pages and / or dynamically as a function of the current utilization of the memory system with regard to the read and / or write accesses can be stated on the storage medium.
Gemäß einer weiteren bevorzugten Ausführungsform des Verfahrens kann jede Speicherseitenzelle einer Speicherseite eine variable Anzahl an Datenbytes enthalten. Vorteilhafter Weise ist ergänzend oder alternativ vorgesehen, dass jede Speicherseite eine variable oder zur besseren Handhabbarkeit der Speicherseite für das Speichersystem maximal eine festlegbare Anzahl an Speicherseitenzellen enthalten kann.According to another preferred embodiment of the method, each memory page cell of a memory page may contain a variable number of data bytes. Advantageously, it is additionally or alternatively provided that each memory page can contain a variable or, for better handling of the memory page for the memory system, a maximum of a definable number of memory page cells.
Auch mit Blick auf das Verfahren nach Anspruch 10 gehen weitere bevorzugte und/oder vorteilhafte Ausführungsformen aus den jeweiligen Unteransprüchen hervor.With regard to the method according to claim 10, further preferred and / or advantageous embodiments emerge from the respective subclaims.
So ist bevorzugt vorgesehen, dass das Rekonstruieren und Bereitstellen der gewünschten Speicherseitenversion unter Berücksichtigung der vom Speichersystem zu der jeweiliger Speicherseitenzelle verwalteten Information über den Grund für ihre Speicherung während der jeweiligen Revision erfolgt, und/oder unter Berücksichtigung der vom Speichersystem zu der jeweiligen Speicherseitenzelle verwalteten Speicherseitenzellenideήtifikationsinformationen der Speicherseitenzellen, die sich in der jeweiligen Speicherseitenversion in ihrer unmittelbaren Umgebung befinden sowie der jeweils verwalteten Rangfolgeinformation in Bezug auf eine jeweilige dieser Speicherseitenzellen.Thus, it is preferably provided that the reconstruction and provision of the desired memory page version taking into account the information managed by the memory system to the respective memory page cell about the reason for their storage during the respective revision, and / or taking into account the memory page cell identification information managed by the memory system to the respective memory page cell the memory page cells located in the respective memory page version in their immediate vicinity as well as the respectively managed ranking information with respect to a respective one of these memory page cells.
Diese und weitere Ausführungsformen der erfindungsgemäßen Verfahren sowie weitere damit einhergehende Vorteile werden nachfolgend an einem Ausführungsbeispiel unter Bezugnahme auf die Figur 1 erläutert, ohne jedoch die Erfindung hierauf zu beschränken. Es versteht sich dabei, dass die zeichnerische Darstellung lediglich als eine grob schematische Skizzierung der bei dem erfindungsgemäßen Verfahren benutzten Datenstrukturen zu betrachten ist. Die Figur 1 zeigt eine beispielhafte, schematische Darstellung mehrerer entsprechend einer bevorzugten Ausführungsform des erfindungsgemäßen Verfahrens vorgehaltener Versionen einer Speicherseite.These and other embodiments of the method according to the invention and further associated advantages are explained below with reference to an exemplary embodiment with reference to FIG. 1, without, however, restricting the invention thereto. It should be understood that the graphic representation is to be regarded merely as a roughly schematic sketch of the data structures used in the method according to the invention. FIG. 1 shows an exemplary, schematic illustration of a plurality of versions of a memory page held in accordance with a preferred embodiment of the method according to the invention.
Sehr deutlich geht aus der Figur 1 der vorteilhafter Aspekt der Erfindung hervor, eine Speicherseite, von der mehrere Speicherseitenversionen vorgehalten werden sollen, grundsätzlich in eine Anzahl von Speicherseitenzellen zu unterteilen.From FIG. 1, the advantageous aspect of the invention is very clearly shown, namely to subdivide a memory page from which several memory page versions are to be kept into a number of memory page cells.
Zudem ist aus der Figur 1 ersichtlich, dass von einer Speicherseite Pl insgesamt sechs Speicherseitenversionen PVp, r von PVi, i bis PVi, 6 in einem nicht näher gezeigten Speichersystem vorgehalten werden. Jede dieser siebenIn addition, it can be seen from FIG. 1 that a total of six memory page versions PVp, r of PVi, i to PVi, 6 are kept in a memory system (not shown) from a memory page P1. Each of these seven
Speicherseitenversionen stellt einen Bearbeitungsstand und somit das Ergebnis einer entsprechenden Revision Rr, p von Ri, l bis R7,i dar, wobei während jeder Revision eine Anzahl bestimmter Modifikationen an der Speicherseite Pi vorgenommen wurde. Die einzelnen Vorgänge während jeder der Revisionen Ri, i bis R7,i werden nachfolgend ausführlich beschrieben.Memory page versions represents a state of processing and thus the result of a corresponding revision Rr, p from Ri, l to R7, i, wherein during each revision a number of specific modifications to the memory page Pi has been made. The individual processes during each of the revisions Ri, i to R7, i will be described in detail below.
Zur einfacheren Nachvollziehbarkeit, jedoch ohne die Erfindung hierauf zu beschränken, wird bei den nachfolgenden Erläuterungen von einem Datenbanksystem als Speichersystem, in dem die Versionen PVi, i bis PVi, 6 der Speicherseite Pi vorgehalten werden, ausgegangen. Mit Bezug auf ein Datenbanksystem ist somit unter einer Speicherseite eine Datenbankseite gemäß der eingangs vorgenommenen Erläuterung zu verstehen.For ease of comprehension, but without limiting the invention thereto, the following explanations are based on a database system as a storage system in which the versions PVi, i to PVi, 6 of the memory page Pi are kept. With reference to a database system, a memory page is thus to be understood as a database page in accordance with the explanation given at the outset.
Grundsätzlich ist das erfindungsgemäße Verfahren jedoch ebenso für im Wesentlichen beliebige andere Speichersysteme und insbesondere für Datensicherungssysteme, Versionsverwaltungssysteme und Dateisysteme mit Versionierung, wie zum Beispiel log-strukturierte Dateisysteme, anwendbar.In principle, however, the method according to the invention is also applicable to essentially any other memory systems and in particular to data backup systems, Versioning systems and versioning file systems, such as log-structured file systems, are applicable.
Revision Ri,1: Als Erstes wird die Datenbankseite Pi mit einer Menge an enthaltenen Daten neu angelegt. Dies stellt die erste Revision Ri, i der Datenbankseite Pi, nachfolgend auch kurz nur Seite Pi genannt, dar. Das Ergebnis dieser ersten Revision Ri, i bildet logisch betrachtet die erste Datenbankseitenversion PVi, i der Datenbankseite Pi.Revision Ri, 1: First, the database page Pi is created with a lot of data contained. This represents the first revision Ri, i of the database page Pi, hereinafter also referred to as page Pi for short. The result of this first revision Ri, i logically forms the first database page version PVi, i of the database page Pi.
Im Vorfeld des physischen Abspeicherns der Seite Pi im Datenbanksystem bzw. auf einem im Zugriff des Datenbanksystems befindlichen Speichermedium, welches in Figur 1 ebenfalls nicht näher gezeigt ist, wird diePrior to the physical storage of the page Pi in the database system or on a storage medium located in the access of the database system, which is also not shown in detail in FIG
Datenbankseite Pi in zwei Datenbankseitenzellen PCp, c unterteilt, wobei jeder der Datenbankseitenzellen eine eindeutige DatenbankseitenzellenidentifikationsInformation c, nachfolgend auch kurz nur Zellenidentifikationsinformation c genannt, zugeordnet wird, so dass die zwei Speicherseitenzellen als PCi, i und PCi, 2, nachfolgend auch kurz nur Seitenzellen oder Zellen PCi, l und PCi, 2 genannt, identifizierbar sind.Database side Pi is divided into two database page cells PCp, c, each of the database page cells a unique database page cell identification information c, hereafter referred to as cell identification information c, so that the two memory page cells as PCi, i and PCi, 2, hereinafter also briefly only page cells or Cells PCi, l and PCi, 2 are identifiable.
Physisch abgespeichert wird ein sogenanntesPhysically stored is a so-called
Datenbankseitenteil PPp, r, also PPi, i, nachfolgend auch kurz nur Seitenteil PPi, i genannt, welches im Fall der ersten Revision Ri, i den vollständigen Dateninhalt der Seite Pi, also beide Seitenzellen PCi, i und PCi, 2, enthält.Database page part PPp, r, ie PPi, i, hereinafter also referred to briefly only side part PPi, i, which in the case of the first revision Ri, i contains the complete data content of the page Pi, so both side cells PCi, i and PCi, 2.
Logisch betrachtet verwaltet das Datenbanksystem die erste Datenbankseitenversion PVi, i, nachfolgend auch kurz nur Seitenversion oder Version PVi, i genannt, indem beispielsweise in einem Datenbank-internen, listen-, tabellen- oder baumartig aufgebauten Verzeichnis ein Versionszeiger PVRi, i für die Version PVi, i aufgenommen wird. Obwohl der Parameter m auf den Wert 2 festgelegt ist, gehört zu dem Versionszeiger PVRi, i nur ein den Seitenteil PPi, l referenzierender Seitenteilzeiger PPRi, i, da es sich um die erste Version der Seite Pi handelt und es folglich noch kein weiteres, das heißt kein älteres, Seitenteil für die Seite Pi gibt, welches mit einem zweiten Seitenteilzeiger referenziert werden könnte. Eine Funktion des Parameters m ist es nämlich, anzugeben, wie viele Seitenteilzeiger PPRr, p ein Versionszeiger PVRr, p umfasst. Auf eine zweite Funktion des Parameters m, für den ein Wert, insbesondere ein ganzzahliger Wert, größer als 0 (null) frei festlegbar ist, wird an späterer Stelle noch eingegangen.Logically, the database system manages the first database page version PVi, i, hereinafter also referred to simply as page version or version PVi, i, for example, in a database-internal, list, table or tree-structured directory Version pointer PVRi, i for the version PVi, i is recorded. Although the parameter m is set to the value 2, the version pointer PVRi, i only includes a page sub pointer PPRi, i referencing the page part PPi, l, since it is the first version of the page Pi and consequently no further, the does not mean an older side part for the side Pi, which could be referenced with a second side part pointer. Namely, a function of the parameter m is to indicate how many side part pointers PPRr, p include a version pointer PVRr, p. A second function of the parameter m, for which a value, in particular an integer value, greater than 0 (zero) can be freely defined, will be discussed later.
Das Datenbanksystem verwaltet zu jeder nach einer Revision Rr, p abgespeicherten Seitenzelle PCp, r auch jeweils eine Information darüber, warum die Zelle in dem jeweiligen Seitenteil PPp, r enthalten ist, das heißt insbesondere darüber, welche Art der Modifikation an der jeweiligen Zelle PCp, r während einer Revision Rr, p erfolgte. Diese Information kann beispielsweise ebenfalls in einem Datenbank-internen, listen-, tabellen- oder baumartig aufgebauten Verzeichnis zusammen mit der eindeutigen Zellenidentifikationsinformation c der jeweiligen Speicherseitenzelle PCp, c aufgenommen werden. AlsFor each page cell PCp, r stored after a revision Rr, p, the database system also manages information as to why the cell is contained in the respective page part PPp, r, that is to say in particular as to which type of modification at the respective cell PCp, r during a revision Rr, p. This information can, for example, also be recorded in a database-internal, list, table or tree-structured directory together with the unique cell identification information c of the respective memory page cell PCp, c. When
Modifikationsarten und damit auch als Gründe für die Speicherung einer Seitenzelle PCp, c können insbesondere das Einfügen, Ändern und Löschen einer Zelle sowie bevorzugter Weise auch ein Lesezugriff auf eine Zelle unterschieden werden. Auf einen weiteren Grund, warum eine Seitenzelle PCp, c in einem Seitenteil PPp, r enthalten sein kann, wird an späterer Stelle noch genauer eingegangen.Modification types and thus also as reasons for the storage of a page cell PCp, c can be distinguished in particular the insertion, modification and deletion of a cell, and preferably also a read access to a cell. Another reason why a side cell PCp, c may be included in a side part PPp, r will be discussed in more detail later.
Besonders bevorzugt verwaltet das Datenbanksystem zusammen mit der Zellenidentifikationsinformation c und der Information bezüglich des Speicherungsgrunds auch einen weiteren Seitenteilzeiger PPRr, p, der jenes Seitenteil PPp, r referenziert , welches die Seitenzelle PCp, c in der nächst älteren Fassung enthält. Auf einen Vorteil der sich daraus ergibt, wird an späterer Stelle noch genauer eingegangen.Particularly preferably, the database system manages together with the cell identification information c and the Information regarding the storage reason also another page sub-pointer PPRr, p, which refers to that side part PPp, r, which contains the side cell PCp, c in the next older version. On an advantage of this, will be discussed in more detail later.
Ebenso wie den zweiten Seitenteilzeiger des Versionszeigers PVRi, l kann es nach der Revision Ri, i jedoch auch den weiteren Seitenteilzeiger nicht geben, da es sich um die erste Version der Seite Pi handelt und es folglich noch kein weiteres, das heißt kein älteres, Seitenteil für die Seite Pi gibt, welches mit einem weiteren Seitenteilzeiger referenziert werden könnte.Like the second page sub-pointer of the version pointer PVRi, l, however, after the revision Ri, i also can not give the further page sub-pointer since this is the first version of the page Pi and consequently no further, ie no older, side part for the page Pi, which could be referenced with another page sub-pointer.
Die Information über den Grund der Speicherung der Seitenzellen PCi, i und PCi, 2 innerhalb des Seitenteils PPi, 1 ist in der Figur 1 zur Vereinfachung der Darstellung jeweils als 'I' für engl, 'inserted1 also 'eingefügt' unmittelbar in der jeweiligen Seitenzelle dargestellt. Analog hierzu findet sich in anderen dargestellten Seitenzellen, auf die im weiteren Verlauf noch genauer eingegangen wird, ein 'C für engl, 'changed' also 'geändert' oder ein 'D' für engl, 'deleted' also 'gelöscht'. Die Ziffer nach dem I, C, oder D symbolisiert den weiteren Seitenteilzeiger, der jeweils jenes Seitenteil PPp, r referenziert, welches die Seitenzelle PCp, c in der nächst älteren Fassung enthält. Vorzugsweise wird jedoch, insbesondere um den Speicherplatzbedarf gering zu halten, kein weiterer Seitenteilzeiger genutzt, sondern statt dessen lediglich die Differenz aus den Versionsnummern der beiden Versionen vermerkt, zu denen die Speicherseitenteile gehören, welche die Speicherseitenzelle in der aktuellen bzw. in der jeweils nächst älteren modifizierten Fassung enthalten. Eben diese Versionsnummerndifferenz stellt in der Figur 1 die Zahl jeweils nach dem I, C, oder D dar. Mittels ihr kann jederzeit durch eine simple Berechnung die richtige Versionsnummer ermittelt und über den ensprechenden Speicherseitenversionszeiger sowie den zugehörigen, ohnehin vorhandenen Speicherseitenteilzeiger auf das jeweils benötigte Speicherseitenteil zugegriffen werden.The information about the reason for storing the page cells PCi, i and PCi, 2 within the page part PPi, 1 is shown in FIG. 1 as 'I' for engl, 'inserted 1 ' in the respective one, to simplify the illustration Side cell shown. Analogously, in other illustrated side cells, which will be discussed in more detail later, a 'C for engl,' changed 'so' changed 'or a' D 'for engl,' deleted 'so' deleted '. The digit after I, C, or D symbolizes the further page sub-pointer, which each referenced that side part PPp, r, which contains the side cell PCp, c in the next older version. Preferably, however, especially in order to keep the storage space requirement low, no further page sub-pointers are used, but instead merely notes the difference between the version numbers of the two versions, to which the memory page parts belong, which the memory page cell in the current or in each next older modified version. This version number difference is in By means of it, the correct version number can be determined at any time by a simple calculation and accessed via the ensprechenden memory page version pointer and the associated, anyway existing memory page sub-pointer to the respective required memory page part.
Nach dem Abspeichern des Seitenteils PPi, i ist die erste Revision Ri,i der Datenbankseite Pi abgeschlossen und in dem Datenbanksystem wird nun eine erste Seitenversion PVi, i bereitgehalten.After saving the side part PPi, i, the first revision Ri, i of the database page Pi is completed and a first page version PVi, i is now kept in the database system.
Das Datenbanksystem ist derart konfiguriert, dass jede Seitenzelle PCp, c zwar eine variable Anzahl an Datenbytes enthalten kann, eine Begrenzung aber dadurch gegeben ist, dass jede Datenbankseite Pp nur maximal 128 Speicherseitenzellen PCp, c enthalten können soll, um sie handhabbar zu behalten. Grundsätzlich könnte aber auch ein anderer Maximalwert defieniert oder die Anzahl der Seitenzellen PCp, c variabel belassen werden.The database system is configured such that each page cell PCp, c may contain a variable number of bytes of data, but is limited by the fact that each database page Pp should only contain a maximum of 128 memory page cells PCp, c to keep it manageable. In principle, however, another maximum value could also be defected or the number of side cells PCp, c could be left variable.
Revision R2,i: Zu einem späteren Zeitpunkt wird die erste Version PVi, i der Datenbankseite Pi wieder aufgerufen, damit weitere Modifikationen daran während einer zweiten Revision R2,i vorgenommen werden können. Das Zugreifen auf die Seitenversion PVi, i erfolgt über den hierzu vom Datenbanksystem verwalteten Seitenversionszeiger PVRi, i sowie den Seitenteilzeiger PPRi, i. Da nur der eine Seitenteil PPi, i, der beide bisher vorhandenen Seitenzellen PCi, l und PCi, 2 und somit den vollständigen Dateninhalt der ersten Version PVi, 1 der Seite Pi enthält, referenziert wird, kann die Seitenversion PVi, 1 ohne weiteres bereitgestellt werden. Als weitere Modifikation an der Seite Pi erfolgt eine Änderung an der Seitenzelle PCi, 1, während die Zelle PCi, 2 unmodifiziert bleibt. Diese weitere Revision der Seite wird erkannt und in Reaktion darauf der Revisionszähler r, welcher bisher den Wert 1 hat, für diese Speicherseite Pi um den Zählwert 1, also auf 2, erhöht. Das Ergebnis dieser Revision R2,i stellt logisch betrachtet die Seitenversion PVi, 2 dar. Physisch wird ein Seitenteil PPi, 2 abgespeichert, welches im Gegensatz zur Revision Ri, 1 nach der Revision R2,i nicht beide Seitenzellen sondern nur die erneut modifizierte Seitenzelle PCi, 1 enthält. Demnach wird nun physisch eine Seitenzelle weniger abgespeichert als logisch zur Version PVi, 2 der Datenbankseite Pi gehören. Zur logischen Verwaltung der Seitenversion PVi, 2 wird in das oben erwähnte interne Verzeichnis des Datenbanksystems ein weiterer Versionszeiger PVR2,i mit den zweiRevision R2, i: At a later time, the first version PVi, i of the database page Pi is called again so that further modifications can be made to it during a second revision R2, i. Accessing the page version PVi, i via the page version pointer PVRi, i managed by the database system and the page sub pointer PPRI, i. Since only one side part PPi, i, which contains both existing side cells PCi, l and PCi, 2 and thus the complete data content of the first version PVi, 1 of the page Pi, is referenced, the page version PVi, 1 can be readily provided , As a further modification on the side Pi, a change takes place on the side cell PCi, 1, while the cell PCi, 2 remains unmodified. This further revision of the page is detected and, in response thereto, the revision counter r, which has hitherto had the value 1, for this memory page Pi increased by the count value 1, ie to 2. The result of this revision R2, i logically represents the page version PVi, 2. Physically, a side part PPi, 2 is stored which, in contrast to the revision Ri, 1 after the revision R2, i does not contain both side cells but only the again modified side cell PCi , 1 contains. Accordingly, physically one page cell is now less stored than logically associated with the version PVi, 2 of the database page Pi. For the logical management of the page version PVi, 2, in the above-mentioned internal directory of the database system, another version pointer PVR2, i with the two
Seitenteilzeigern PPR2,i und PPRi, 1 auf die Seitenteile PPi, 2 und PPi, 1 aufgenommen. Zudem verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 1, dass diese geändert wurde sowie als Ersatz für einen weiteren Seitenteilzeiger auf das Seitenteil, welches die nächst ältere Fassung der Seitenzelle PCi, 1 enthält, lediglich eine Versionsnummerndifferenz die zu dem Seitenteil PPi, 1 führt. In der Figur 1 ist dies entsprechend der oben erwähntenSide sub-pointers PPR2, i and PPRi, 1 on the side parts PPi, 2 and PPi, 1 added. In addition, the database system manages as information about the reason for storing the page cell PCi, 1, that this has been changed and as a replacement for another page sub-pointer on the page part, which contains the next older version of the page cell PCi, 1, only a version number difference to the Side part PPi, 1 leads. In FIG. 1, this is the same as that mentioned above
Erläuterung mit einem C und einer 1 in der Zelle PCi, 1, die im Seitenteil PPi, 2 enthalten ist, symbolisiert.Explanation with a C and a 1 in the cell PCi, 1, which is included in the side part PPi, 2, symbolizes.
Nach dem Abspeichern des Seitenteils PPi, 2 ist die zweite Revision R2,i der Datenbankseite Pi abgeschlossen und in dem Datenbanksystem wird nun neben der erste Seitenversion PVi, 1 auch eine zweite Version PVi, 2 bereitgehalten.After the storage of the side part PPi, 2, the second revision R2, i of the database page Pi is completed, and in the database system, besides the first page version PVi, 1, also a second version PVi, 2 is kept ready.
Revision R3,i: Zu einem späteren Zeitpunkt wird die zweite Version PVi, 2 der Datenbankseite Pi wieder aufgerufen, damit erneut weitere Modifikationen daran während einer dritten Revision R3,i vorgenommen werden können. Das Zugreifen auf die Seitenversion PVi, 2 erfolgt über den hierzu vom Datenbanksystem verwalteten Seitenversionszeiger PVR2,i sowie die zwei Seitenteilzeiger PPR2,i und PPRi, 1. Wie bereits erwähnt, beruht die Anzahl der Seitenteilzeiger auf dem für den Paramter m festgelegten Wert, der in diesem Beispiel mit m=2 definiert ist.Revision R3, i: At a later time, the second version PVi, 2 of the database page Pi is called again so that again further modifications can be made during a third revision R3, i. The page version PVi, 2 is accessed via the page version pointer PVR2, i managed by the database system, and the two page sub-pointers PPR2, i and PPRi, 1. As already mentioned, the number of page sub-pointers is based on the value defined for the parameter m, in this example with m = 2 is defined.
Da in dem einen referenzierten Seitenteil PPi, 2 nur dieSince in the one referenced side part PPi, 2 only the
Seitenzelle PCi, 1 enthalten ist, ergibt sich daraus, dass die Zelle PCi, 2, welche in dem anderen referenzierten Seitenteil PPi, 1 enthalten ist, auch für die zweite Seitenversion PVi, 2 noch Gültigkeit hat. Für die in dem Seitenteil PPi, 1 ebenfalls enthaltene Zelle PCi, 1 wird jedoch erkannt, dass sie gegenüber der in dem Seitenteil PPi, 2 enthaltenen Zelle PCi, 1 die ältere Fassung repräsentiert. Somit wird die Seitenversion PVi, 2 der Datenbankseite Pi aus der in dem Seitenteil PPi, 2 enthaltenen Seitenzelle PCi, 1 und der in dem Seitenteil PPi, 1 enthaltenen Seitenzelle PCi, 2 rekonstruiert und bereitgestellt.Side cell PCi, 1 contained, results from the fact that the cell PCi, 2, which is included in the other referenced page part PPi, 1, also for the second page version PVi, 2 is still valid. However, for the cell PCi, 1 likewise contained in the side part PPi, 1, it is recognized that it represents the older version in relation to the cell PCi, 1 contained in the side part PPi, 2. Thus, the page version PVi, 2 of the database page Pi is reconstructed and provided from the page cell PCi, 1 contained in the page part PPi, 2, and the page cell PCi, 2 contained in the page part PPi, 1.
Als weitere Modifikation an der Seite Pi erfolgt nunmehr eine Änderung an der Seitenzelle PCi,2, während die Zelle PCi, 1 diesmal unmodifiziert bleibt. Diese weitere Revision der Seite wird erkannt und in Reaktion darauf der Revisionszähler r, welcher bisher den Wert 2 hat, für diese Speicherseite Pi um den Zählwert 1, also auf 3, erhöht. Das Ergebnis dieser Revision R3,i stellt logisch betrachtet die Seitenversion PVi, 3 dar. Physisch wird ein Seitenteil PPi, 3 abgespeichert, welches wieder nur eine Zelle, nämlich diesmal die modifizierte Zelle PCi, 2, enthält. Demnach wird physisch wieder eine Seitenzelle weniger abgespeichert als logisch zur Version PVi, 3 der Datenbankseite Pi gehören. Zur logischen Verwaltung der Seitenversion PVi, 3 wird in das oben erwähnte interne Verzeichnis des Datenbanksystems ein weiterer Versionszeiger PVR3,i mit den zwei Seitenteilzeigern PPR3,i und PPR2,i auf die Seitenteile PPi, 3 und PPi, 2 aufgenommen. Zudem verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 2, dass diese geändert wurde sowie als Ersatz für einen weiteren Seitenteilzeiger auf das Seitenteil, welches die nächst ältere Fassung der Seitenzelle PC2,i enthält, lediglich eineAs a further modification on the side Pi now takes place a change to the side cell PCi, 2, while the cell PCi, 1 this time remains unmodified. This further revision of the page is detected and, in response thereto, the revision counter r, which has hitherto had the value 2, for this memory page Pi is increased by the count value 1, ie to 3. Logically, the result of this revision R3, i represents the page version PVi, 3. Physically, a side part PPi, 3 is stored, which again contains only one cell, namely the modified cell PCi, 2 this time. Accordingly, physically one page cell is less stored again than logically belonging to the version PVi, 3 of the database page Pi. For the logical management of the page version PVi, 3, a further version pointer PVR3, i with the two page sub-pointers PPR3, i and PPR2, i is added to the side parts PPi, 3 and PPi, 2 in the above-mentioned internal directory of the database system. In addition, the database system manages as information about the reason for storing the page cell PCi, 2, that it has been changed and as a replacement for another page sub-pointer on the page part, which contains the next older version of the page cell PC2, i, only one
Versionsnummerndifferenz die zu dem Seitenteil PPi, 2 führt. In der Figur 1 ist dies entsprechend der oben erwähnten Erläuterung mit einem C und einer 2 in der Zelle PCi, 2, die im Seitenteil.Version number difference leading to the side part PPi, 2. In the figure 1 this is according to the above-mentioned explanation with a C and a 2 in the cell PCi, 2, in the side part.
Nach dem Abspeichern des Seitenteils PPi, 3 ist die dritte Revision R3,i der Datenbankseite Pi abgeschlossen und in dem Datenbanksystem wird nunmehr bereits eine dritte Seitenversion PVi, 3 der Datenbankseite Pi bereitgehalten.After storing the side part PPi, 3, the third revision R3, i of the database page Pi is completed and in the database system, a third page version PVi, 3 of the database page Pi is now already available.
Revision Ra,1: Zu einem späteren Zeitpunkt wird die dritte Version PVi, 3 der Datenbankseite Pi wieder aufgerufen, damit eine weitere Modifikation daran während einer vierten Revision R4,i vorgenommen werden kann. Das Zugreifen auf die Seitenversion PVi, 3 erfolgt über den hierzu vom Datenbanksystem verwalteten Seitenversionszeiger PVR3,i sowie die zwei Seitenteilzeiger PPR3,i und PPR2,i.Revision Ra, 1: At a later time, the third version PVi, 3 of the database page Pi is called again, so that a further modification can be made to it during a fourth revision R4, i. The access to the page version PVi, 3 via the managed by the database system page version pointer PVR3, i and the two page sub-pointers PPR3, i and PPR2, i.
Da in dem referenzierten Seitenteil PPi, 3 nur dieSince in the referenced side part PPi, 3 only the
Seitenzelle PCi, 2 enthalten ist, ergibt sich daraus, dass die Zelle PCi, 1, welche in dem anderen referenzierten Seitenteil PPi, 2 enthalten ist, auch für die dritte Seitenversion PVi, 3 noch Gültigkeit hat. Die Seitenversion PVi, 3 der Datenbankseite Pi wird somit aus der in dem Seitenteil PPi, 2 enthaltenen Seitenzelle PCi, 1 und der in dem Seitenteil PPi, 3 enthaltenen Seitenzelle PCi, 2 rekonstruiert und bereitgestellt.Side cell PCi, 2, results from the fact that the cell PCi, 1, which is included in the other referenced page part PPi, 2, for the third page version PVi, 3 is still valid. The page version PVi, 3 of the database page Pi is thus made in the Side part PPi, 2 contained side cell PCi, 1 and contained in the side part PPi, 3 side cell PCi, 2 reconstructed and provided.
Wie aus der Figur 1 ersichtlich ist, besteht mittels der vom Datenbanksystem sowohl für die Seitenzelle PCi,2 in dem Seitenteil PPi, 3 als auch für die Seitenzelle PCi, 1 in dem Seitenteil PPi, 2 verwalteten zusätzlichen Versionsnummerndifferenzen, welche in beiden Fällen zu dem Seitenteil PPi, 1 führen, auf einfache Weise Zugriff auf die nächst ältere bzw. zweitaktuellste Fassung der jeweiligen Zelle, obwohl diese jeweils nicht in einem der durch die zwei Seitenteilzeiger PPR3,i und PPR2,i des verwalteten Seitenversionszeigers PVR3,i referenzierten Seitenteile PPi, 3 bzw. PPi, 2 enthalten sind.As can be seen from FIG. 1, the additional version number differences managed by the database system for both the side cell PCi, 2 in the side part PPi, 3 and for the side cell PCi, 1 in the side part PPi, 2, which in both cases to the Side part PPi, 1 lead, in a simple manner, access to the next older or second most up-to-date version of the respective cell, although these are not in one of the side parts PPi referenced by the two side part pointers PPR3, i and PPR2, i of the managed side version pointer PVR3, i 3 and PPi, 2 are included.
Hinsichtlich der weiteren Modifikation an der Seite Pi fällt zunächst auf, dass eine neue Zelle PCi, 3 in die Datenbankseite Pi eingefügt wird, während die Zelle PCi,2 unmodifiziert bleibt. Auf die Seitenzelle PCi, 1 imWith regard to the further modification on the side Pi, it is initially noticeable that a new cell PCi, 3 is inserted in the database page Pi, while the cell PCi, 2 remains unmodified. On the side cell PCi, 1 in
Seitenteil PPi, 4 wird im Folgenden noch eingegangen.Side part PPi, 4 will be discussed below.
Beinhaltet eine Datenbankseite Pp beispielsweise Knoten eines Baumes, wobei jeder Knoten bestimmte Daten aus einer Menge von baumstrukturartig, hierarchisch verknüpften Daten, etwa XML-Daten (XML ist eine erweiterbare Auszeichnungssprache für Daten; engl.: extensible markup language) , umfasst, und wobei jeder Knoten wie eine Seitenzelle PCp, c handhabbar ist, dann bedeutet das Einfügen eines neuen Knotens in den Baum das Einfügen einer neuen Zelle PCp, c in eine Datenbankseite Pp.For example, a database page Pp includes nodes of a tree, each node comprising specific data from a set of tree-structured, hierarchically linked data, such as XML (extensible markup language) XML, and each Node such as a page cell PCp, c is manageable, then inserting a new node into the tree means inserting a new cell PCp, c into a database page Pp.
Ein Knoten kann zum Beispiel ein XML-Element und ein anderer Knoten den Textinhalt des XML-Elements umfassen oder aber ein dem ersten XML-Element in der Baumstruktur hierarchisch übergeordnetes Eltern-XML-Element oder ein hierachisch untegeordnets Kind-XML-Element enthalten. Weiterhin können Knoten auch andere XML-Bestandteile wie Attribute eines XML-Elements oder die Wertzuweisung eines Attributs umfassen.For example, one node may include an XML element and another node may include the textual content of the XML element or a first XML element in the tree structure hierarchically parent parent XML element or a hierarchically child child XML element. Furthermore, nodes may also include other XML components such as attributes of an XML element or the value assignment of an attribute.
Beinhaltet eine Seite beispielsweise Knoten als Seitenzellen PCp, c, wobei die Knoten jeweils einen XML- Bestandteil aus einer XML-Baumstruktur hierarchisch strukturierter Daten umfassen, so kann es erforderlich sein, dass neben der Möglichkeit zum Einfügen neuer Zellen auch die Möglichkeit besteht, dass bereits ein Lesezugriff auf einen oder mehrere Knoten, das heißt auf die von diesem bzw. diesen jeweils umfassten Daten, zu einer neuen Revision und zu einer neuen Seitenversion PVp, r und damit zur Speicherung eines Seitenteils PPp, r führt, welches die Zellen auf ein Lesezugriff erfolgte enthält, so dass zu einem späteren Zeitpunkt jeder Lesezugriff auf eine Zelle nach nachvollziehbar ist.If, for example, a page contains nodes as page cells PCp, c, where the nodes each comprise an XML component from an XML tree structure of hierarchically structured data, then it may be necessary in addition to the possibility of inserting new cells that already exists a read access to one or more nodes, that is, to the data respectively covered by the latter, to a new revision and to a new page version PVp, r, and thus to storage of a page part PPp, r, which gives the cells read access is carried out, so that at a later time each read access to a cell is traceable.
Zudem ist darauf hinzuweisen, dass auch wenn es im Rahmen dieses Ausführungsbeispiels so beschrieben wird, es nicht zwingend erforderlich ist, dass vor jeder Modifikation einer Seitenzelle PCp, c zunächst die gesamte zugehörige Seite rekonstruiert wird. Vielmehr ist es ebenso möglich, auf eine bestimmte Zelle zuzugreifen und diese zu modifizieren, wobei die Modifikation oder allein der Lesezugriff auf diese Zelle eine Revision für die die Zelle beinhaltende Seite bedeutet.In addition, it should be noted that although it is described in the context of this embodiment, it is not absolutely necessary that before each modification of a page cell PCp, c, the entire associated page is first reconstructed. Rather, it is also possible to access and modify a particular cell, with the modification or only the read access to that cell meaning a revision for the page containing the cell.
Jedem Knoten wird jeweils eine eindeutigeEach node becomes a unique one
Identifikationsinformation c zugeordnet. Ferner verwaltet das Datenbanksystem für jeden Knoten neben dessen eigener Identifikationsinformation c auch die Identifikationsinformation c der Knoten, welche XML- Bestandteile umfassen, die in der der XML-Baumstruktur hierarchisch unmittelbar übergeordnet, untergeordnet oder auf gleicher Ebene unmittelbar nebengeordnet waren, jeweils zusammen mit der entsprechenden Rangfolgeinformation. Dies hat den Vorteil, dass die Knoten bzw. Seitenzellen PCp, c in der Datenbankseite Pp im Wesentlichen in beliebiger Ordnung gespeichert werden können, da sich die urspüngliche hierarchische Struktur der in den Knoten enthaltenen XML- Daten aus den verwalteten Identifikationsinformationen c und Rangfolgeinformationen rekonstruieren lässt.Identification information c assigned. Furthermore, for each node, the database system manages, in addition to its own identification information c, also the identification information c of the nodes, which XML Include constituents which were hierarchically directly superordinate, subordinate or directly adjacent to each other in the XML tree structure, in each case together with the corresponding ranking information. This has the advantage that the nodes or page cells PCp, c in the database page Pp can be stored in substantially any order, since the original hierarchical structure of the XML data contained in the nodes can be reconstructed from the managed identification information c and ranking information ,
Geht man also nunmehr für das in Figur 1 dargestellte Bespiel davon aus, dass die Seitenzellen PCi, i und PCi, 2 Knoten entsprechen, die bestimmte XML-Bestandteile einer XML-Baumstruktur umfassen, dann spiegelt die Modifikation bezüglich der Zelle PCi, 3 das Einfügen eines neuen einen bestimmten XML-Bestandteil umfassenden Knotens in die XML- Baumstruktur wider.Thus, assuming that for the example shown in FIG. 1, the page cells PCi, i and PCi correspond to 2 nodes that comprise certain XML components of an XML tree structure, then the modification with respect to the cell PCi, 3 reflects the insertion a new node that includes a particular XML part into the XML tree.
Geht man ferner davon aus, dass die Zelle PCi, 1 ein ein XML- Element umfassender Knoten ist, während die Zelle PCi, 2 ein den zughörigen Textinhalt umfassender Knoten ist, und dass der der Zelle PCi, 3 entsprechende Knoten ein weiteres XML- Elememt umfasst, das in der XML-Baustruktur dem XML- Element, welches von dem der Zelle PCi, 1 entsprechenden Knoten umfasst ist, als Eltern-XML-Element übergeordnet sein soll, dann werden jeweils die die beiden Knoten bzw. Zellen PCi, 1 und PCi, 3 betreffenden Rangordnungsinformationen vom Datenbanksystem angepasst.Assuming that the cell PCi, 1 is a node comprising an XML element, while the cell PCi, 2 is a node containing the associated text content, and that the node corresponding to the cell PCi, 3 has another XML element comprises, in the XML structure to the XML element, which is comprised of the cell corresponding to the cell PCi, 1 parent should be parent as parent XML element, then the respective two nodes or cells PCi, 1 and PCi, 3 related ranking information adapted from the database system.
Dank der verwalteten Identifikationsinformationen c und Rangfolgeinformationen für die einzelnen Knoten bzw. Zellen, muss der neu eingefügte Knoten bzw. die Zelle PCi, 3 im physisch abgespeicherten Seitenteil PPi, 4 nicht an oberster Stelle enthalten sein. Diese weitere Revision der Seite Pi wird erkannt und in Reaktion darauf der Revisionszähler r, welcher bisher den Wert 3 hat, für diese Speicherseite Pi um den Zählwert 1, also auf 4, erhöht. Das Ergebnis dieser Revision R4,i stellt logisch betrachtet die Seitenversion PVi, 4 dar. Da während der Revision R4, i eine Modifikation an der Seite Pi lediglich in Form eines Einfügens der Zelle PCi, 3 erfolgte, brauchte das physisch zu speichernde Seitenteil PPi,4 auch nur die Zelle PCi, 3 enthalten. Verfolgt man jedoch die zwei Seitenteilzeiger PPR4,i und PPR3,i die zu einem Versionszeiger PVR4, i gehören würden, so stellt man fest, dass weder in dem Seitenteil PCi, 5 noch in dem Seitenteil PCi, 4 die Seitenzelle PCi, i enthalten wäre.Thanks to the managed identification information c and ranking information for the individual nodes or cells, the newly inserted node or the cell PCi, 3 in the physically stored side part PPi, 4 need not be at the top. This further revision of the page Pi is detected and in response thereto the revision counter r, which has hitherto had the value 3, for this memory page Pi by the count value 1, ie to 4, increased. Logically speaking, the result of this revision R4, i represents the page version PVi, 4. Since, during the revision R 4 , i, a modification on the side Pi took place merely in the form of an insertion of the cell PCi, 3, the physically stored side part PPi needed , 4 also contain only the cell PCi, 3. If, however, one follows the two page sub-pointers PPR4, i and PPR3, i which would belong to a version pointer PVR 4 , i, then it is found that neither in the page section PCi, 5 nor in the page section PCi, 4 contain the page cell PCi, i would.
Daher soll an dieser Stelle noch einmal auf den Parameterwert m und insbesondere dessen zweite Funktion eingegangen werden.Therefore, the parameter value m and in particular its second function should be discussed again here.
Neben dem Angeben der Anzahl der Seitenteilzeiger PPRr, p, die ein Versionszeiger PVRr, p umfasst, besteht die zweite Funktion des Parameterwerts m darin, anzugeben, nach wie vielen Revisionen Rr, p einer Seite Pp, während denen eine Seitenzelle PCp, c dieser Seite nicht modifiziert wurde, eine Kopie dieser Seitenzelle PCp, c in einem Seitenteil PPp, r enthalten sein muss.In addition to specifying the number of page sub-pointers PPRr, p, which includes a version pointer PVRr, p, the second function of the parameter value m is to indicate after how many revisions Rr, p of a page Pp during which a page cell PCp, c of that page has not been modified, a copy of this side cell PCp, c must be contained in a side part PPp, r.
Auf diese Weise ist sicher gestellt, dass sich in einer Anzahl von m Seitenteilen PPp, r die durch eine Anzahl von m Seitenteilzeiger PPRr, p eines Versionszeiger PVRr, p referenziert werden, jede zu einer Speicherseite Pp gehörende Seitenzelle PCp, c zumindest einmal in einem der referenzierten Seitenteile PPp, r enthalten ist, und somit für eine Rekonstruktion der Speicherseite Pp in der durch den Versionszeiger PVRr, p referenzierten Seitenversion PVp, r zur Verfügung steht.In this way it is ensured that in a number of m side parts PPp, r referenced by a number of m side part pointers PPRr, p of a version pointer PVRr, p, each side cell PCp, c belonging to a memory page Pp at least once in one of the referenced page parts PPp, r, and thus for a reconstruction of the memory page Pp in the page version referenced by the version pointer PVRr, p PVp, r is available.
Somit stellt das Kopieren einer Seitenzelle PCp, c in ein Seitenteil PPp, r nach einer Anzahl von m Revisionen Rr, p einer Seite Pp, während denen die Seitenzelle PCp, c dieser Seite nicht modifiziert wurde, neben den Modifikationsarten Einfügen, Ändern und Löschen einer Seitenzelle, einen weiteren unterscheidbaren Grund dafür dar, warum eine Seitenzelle PCp, c während einer Revision Rr, p gespeichert wird.Thus, the copying of a page cell PCp, c into a page part PPp, r after a number of m revisions Rr, p of a page Pp during which the page cell PCp, c of this page has not been modified, constitutes one of the modification types insert, modify and delete Side cell, another distinguishable reason why a side cell PCp, c is stored during a revision Rr, p.
Durch geeignetes Festlegen des Parameterwerts m kann das erfindungsgemäße Verfahren in Richtung abzuspeichernde Datenmenge, benötigte Zeit zum Abspeichern sowie benötigter Speicherplatz auf dem Speichermedium oder in Richtung Anzahl der Lesezugriffe auf das Speichermedium und benötigte Zeit zum Rekonstruieren und Bereitstellen der Speicherseite in der gewünschten Version optimiert werden. Aufgrund dieser Bedeutung des Parameterwerts m das Speichersystem ist es besonders bevorzugt vorgesehen, dass dieser nicht nur einmalig starr für das gesamte Speichersystem festlegbar ist, sondern dynamisch in Abhängigkeit von der jeweils herrschenden Auslastung bzw. Belastung des Speichersystems hinsichtlich der Schreib- und/oder Lesezugriffe auf das Speichermedium definierbar ist und ergänzend oder alternativ ein Wert m auch für bestimmte einzelne oder Gruppen von Speicherseiten, etwa in Abhängigkeit von deren Größe oder deren Aktualisierungshäufigkeit bzw. -umfang, definierbar ist.By suitably specifying the parameter value m, the method according to the invention can be optimized in the direction of the data volume to be stored, the time required for storage and the required storage space on the storage medium or in the direction of the number of read accesses to the storage medium and the time required to reconstruct and provide the storage page in the desired version. Due to this importance of the parameter value m the memory system, it is particularly preferred that this is not only fixed once rigidly for the entire memory system, but dynamically depending on the prevailing load or load of the memory system in terms of read and / or read accesses the storage medium is definable and, additionally or alternatively, a value m can also be defined for specific individual or groups of storage pages, for example as a function of their size or their frequency or scope of updating.
Mit einem Blick zurück auf die Revision R3,i ist anzumerken, dass dort der Fall vorliegt, bei dem mittels des Verfahrens nach einem der Ansprüche 1 bis 9 eine Reduktion des benötigten Speicherplatzes um bis zu einem Drittel gegenüber den bisher bekannten Verfahren erreicht wird. Denn dort gibt es eine alternierende Modifikation zwischen zwei Zellen einer Speicherseite von Revision R2,i zu Revision R3,i, wobei auch bei einem Parameterwert von m=2 die Seitenteile aus den Revisionen R2,l und R3,l jeweils nur die modifizierte Seitenzelle enthalten. Mittels dem Verfahren gemäß einem der Ansprüche 1 bis 9 würden sogar nach weiteren Revisionen, die alternierend die Modifikation der einen oder der anderen Zelle betreffen, die Seitenteile aus den Revisionen R2,l und R3,l jeweils nur die modifizierte Seitenzelle enthalten. Im Gegensatz hierzu würde mittel eines der bisher bekannten Verfahren bei einem Parameterwert von m=2, das Seitenteil PPl, 3 aus der Revision R3,i ein sogenannter Snapshot sein und die vollständige Speicherseite, das heißt beide Seitenzellen und nicht nur die modifizierte Seitenzelle PCi, 2 enthalten.With a view back to the revision R3, i it should be noted that there is the case in which by means of the method according to one of claims 1 to 9, a reduction of the required memory space by up to one third compared to the previously known methods is achieved. Because there is an alternating modification between two cells of a memory page from revision R2, i to revision R3, i, wherein even with a parameter value of m = 2, the side parts of the revisions R2, l and R3, l each contain only the modified side cell , By means of the method according to one of claims 1 to 9, even after further revisions, which relate alternately to the modification of one or the other cell, the side parts from the revisions R2, l and R3, l would each contain only the modified side cell. In contrast to this, by means of one of the previously known methods with a parameter value of m = 2, the side part PP1, 3 from the revision R3, i would be a so-called snapshot and the complete memory page, ie both side cells and not just the modified side cell PCi, 2 included.
Für die Revision R4,i bedeutet ein Parameter von m=2, dass von der Seitenzelle PCi, 1, wie sie noch über den zweiten Seitenteilzeiger PPR2,i des Versionszeiger PVR3,i in dem Seitenteil PPi,2 verfügbar war, eine Kopie im Seitenteil PPi, 4 enthalten ist.For the revision R4, i, a parameter of m = 2 means that from the side cell PCi, 1, as it was still available via the second side part pointer PPR2, i of the version pointer PVR3, i in the side part PPi, 2, a copy in the side part PPi, 4 is included.
Physisch wird somit ein Seitenteil PPi, 4 abgespeichert, welches die neu eingefügte Zelle PCi, 3 und die kopierte Zelle PCi, 1 enthält. Demnach wird physisch wieder einePhysically, therefore, a side part PPi, 4 is stored, which contains the newly inserted cell PCi, 3 and the copied cell PCi, 1. Thus, physically one again
Seitenzelle weniger abgespeichert als logisch zur Version PVi, 4 der Datenbankseite Pi gehören.Page cell less stored than logical to the version PVi, 4 belonging to the database page Pi.
Zur logischen Verwaltung der Seitenversion PVi, 4 wird in das oben erwähnte interne Verzeichnis des Datenbanksystems ein neuer Versionszeiger PVR4,i mit den zwei Seitenteilzeigern PPR4,i und PPR3,i auf die Seitenteile PPi, 4 und PPi, 3 aufgenommen. Zudem verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 1, dass diese eine Kopie ist ohne geändert worden sein, sowie eine Versionsnummerndifferenz die zu dem Seitenteil PPi, 2 führt, welches die sozusagen als Kopiervolage dienende Fassung der Seitenzelle PCi, i enthält. Da die Zelle PCi, 3 in dieser Version PVi, 4 erstmalig eingefügt wurde, kann es folglich noch kein weiteres, das heißt kein älteres,For logically managing the page version PVi, 4, a new version pointer PVR4, i with the two page sub-pointers PPR4, i and PPR3, i is added to the page sections PPi, 4 and PPi, 3 in the above-mentioned internal directory of the database system. In addition, the database system, as information about the reason for storing the page cell PCi, 1, manages that it is a copy without being changed, and a version number difference which leads to the side part PPi, 2, which contains the version of the side cell PCi, i, which serves as a copy sheet, so to speak. Since the cell PCi, 3 has been inserted for the first time in this version PVi, 4, there can therefore be no further, that is, no older,
Seitenteil geben. In der Figur 1 ist dies entsprechend der oben erwähnten Erläuterung mit einem I und einer 0 (null) für die Zelle PCi, 3 symbolisiert.Give side part. In FIG. 1, this is symbolized by an I and a 0 (zero) for the cell PCi, 3 according to the above-mentioned explanation.
Für die kopierte Zelle PCi, i gilt in der Figur 1 folgende Symbolik: Das C und die 1 in Klammern wurden von der als Kopiervorlage dienende Fassung der Seitenzelle PCi, i in dem Seitenteil PPi, 2 übernommen. Die 2 außerhalb der Klammer stellt die Versionsnummerndifferenz dar, die zu dem Seitenteil PPi, 2 führt, welches sozusagen die alsThe following symbolism applies to the copied cell PCi, i in FIG. 1: The C and the 1 in parentheses were adopted from the version of the side cell PCi, i in the side part PPi, 2 which serves as the copy template. The 2 outside the parenthesis represents the version number difference leading to the page part PPi, 2, which, so to speak, the as
Kopiervorlage dienende Fassung der Seitenzelle PCi, 1 enthält.Copy template serving side cell PCi, 1 contains.
Nach dem Abspeichern des Seitenteils PPi, 4 ist die vierte Revision R4,i der Datenbankseite Pi abgeschlossen und in dem Datenbanksyst.em wird nun bereits eine vierte Seitenversion PVi, 4 bereitgehalten.After storing the page part PPi, 4, the fourth revision R4, i of the database page Pi is completed and stored in the database system . em already has a fourth page version PVi, 4 ready.
Revision Rs,1: Zu einem späteren Zeitpunkt wird die vierte Version PVi, 4 der Datenbankseite Pi wieder aufgerufen, damit nochmals Modifikationen daran während einer fünften Revision Rs,i vorgenommen werden können. Das Zugreifen auf die Seitenversion PVi, 4 erfolgt über den hierzu vom Datenbanksystem verwalteten Seitenversionszeiger PVR4,i sowie die zwei Seitenteilzeiger PPR4,i und PPR3,i.Revision Rs, 1: At a later time, the fourth version PVi, 4 of the database page Pi is called again so that modifications can be made to it again during a fifth revision Rs, i. The accessing to the page version PVi, 4 via the managed by the database system page version pointer PVR4, i and the two page sub-pointers PPR4, i and PPR3, i.
Da in dem referenzierten Seitenteil PPi, 4 nur die Seitenzellen PCi, 1 und PCi, 3 enthalten sind, ergibt sich daraus, dass die Zelle PCi, 2, welche in dem anderen referenzierten Seitenteil PP3,i enthalten ist, auch für die vierte Seitenversion PVi, 4 noch Gültigkeit hat. Somit wird die Seitenversion PVi, 4 der Datenbankseite Pi aus den in dem Seitenteil PPi, 4 enthaltenen Seitenzellen PCi, 1 und PCi, 3 sowie der in dem Seitenteil PP3,i enthaltenen Seitenzelle PCi,2 rekonstruiert und bereitgestellt.Since only the page cells PCi, 1 and PCi, 3 are contained in the referenced page part PPi, 4, it follows that the cell PCi, 2 contained in the other referenced page part PP3, i, for the fourth page version PVi, 4 is still valid. Thus, the page version PVi, 4 of the database page Pi is reconstructed and provided from the page cells PCi, 1 and PCi, 3 contained in the page part PPi, 4 and the page cell PCi, 2 contained in the page part PP3, i.
Geht man jedoch weiterhin davon aus, dass die Seitenzellen PCi, 1, PCi, 2 und PCi,3 Knoten entsprechen, die bestimmte XML- Bestandteile einer XML-Baumstruktur umfassen, dann sind beim Rekonstruieren und Bereitstellen der SeitenversionHowever, assuming that the page cells PCi, 1, PCi, 2, and PCi correspond to 3 nodes that comprise certain XML components of an XML tree, then when reconstructing and providing the page version
PVi, 4 der Datenbankseite Pi aus den Seitenzellen PCi, 1, PCi, 2 und PCi, 3 vor allem die weiteren vom Datenbanksystem zu der jeweiliger Zelle, das heißt dem jeweilgen Knoten verwalteneten Informationen zur brücksichtigen. Denn für jeden Knoten verwaltet das Datenbanksystem neben dessen eigener Identifikationsinformation c auch die Identifikationsinformation c der Knoten, welche XML- Bestandteile umfassen, die in der der XML-Baumstruktur hierarchisch unmittelbar übergeordnet, untergeordnet oder auf gleicher Ebene unmittelbar nebengeordnet waren, jeweils zusammen mit der entsprechenden Rangfolgeinformation.PVi, 4 of the database page Pi from the page cells PCi, 1, PCi, 2 and PCi, 3 above all the other from the database system to the respective cell, that is, the jeweilgen knot managed information for brights. For each node manages the database system in addition to its own identification information c and the identification information c of the nodes, which comprise XML components that were in the XML tree hierarchically directly superordinate, subordinate or at the same level directly adjacent, respectively together with the corresponding ranking information.
So wird unter Berücksichtigung dieser weiteren vom Datenbanksystem verwalteten Indentifikationsinformationen c und Rangfolgeinformationen während der Rekonstruktion der Seitenversion PVi, 4 der Datenbankseite Pi aus den Seitenzellen PCi, 1, PCi,2 und PCi, 3, deutlich, dass die Zelle PCi, 1 ein ein XML-Element umfassender Knoten ist, während die Zelle PCi, 2 ein den zughörigen Textinhalt umfassender Knoten ist, und dass der der Zelle PCi, 3 entsprechendeThus, taking into account these further identification information c managed by the database system and ranking information during the reconstruction of the page version PVi, 4 of the database page Pi from the page cells PCi, 1, PCi, 2 and PCi, 3, it becomes clear that the cell PCi, 1 is an XML Element, while the cell PCi, 2 is a node containing the corresponding textual content, and that corresponding to the cell PCi, 3
Knoten ein weiteres XML-Elememt umfasst, das in der XML- Baumstruktur dem XML-Element, welches von dem der Zelle PCi, 1 entsprechenden Knoten umfasst ist, als Eltern-XML- Element übergeordnet ist. Lediglich aus der Anrdnung der Knoten innerhalb der Datenseite wäre diese hierachische Struktur nicht ersichtlich gewesen.Node comprises a further XML element which, in the XML tree structure, is superior to the XML element which is included in the node corresponding to the cell PCi, 1 as the parent XML element. Only the order of the nodes within the data page would be hierachical Structure was not apparent.
Als Modifikation an der Seite Pi erfolgt eine Änderung an der während der Revision FU, i neu eingefügten Zelle PCl, 3 beziehungsweise dem entsprechenden Knoten. An der Rangfolge der Knoten wurde aber nichts geändert, so dass die vom Datenbanksystem verwalteten Rangfolgeinformationen für die Version PVi, 5 der Seite Pi beibehalten werden können.As a modification on the side Pi, there is a change to the newly inserted during the revision FU, i cell PCl, 3 or the corresponding node. Nothing has been changed in the ranking of the nodes, however, so that the ranking information managed by the database system for the version PVi, 5 of the page Pi can be retained.
Diese weitere Revision der Seite wird erkannt und inThis further revision of the page is recognized and incorporated in
Reaktion darauf der Revisionszähler r, welcher bisher den Wert 4 hat, für diese Speicherseite Pi um den Zählwert 1, also auf 5, erhöht.Reaction thereon, the revision counter r, which has previously been the value 4, for this memory page Pi by the count value 1, ie, increased to 5.
Da während der Revision Rs, i eine Modifikation an der Seite Pi lediglich in Form einer Änderung an der Zelle PCi, 3 erfolgte, brauchte das physisch zu speichernde Seitenteil PPi, 5 auch nur die modifizierte Fassung der Zelle PCi, 3 enthalten. Verfolgt man jedoch die zwei Seitenteilzeiger PPR5,i und PPR4, i die zu einem Versionszeiger PVRs, i gehören würden, so stellt man fest, dass weder in dem Seitenteil PCi, 5 noch in dem Seitenteil PCi, 4 die Seitenzelle PCi, 2 enthalten wäre.Since during the revision Rs, i a modification on the side Pi took place only in the form of a change to the cell PCi, 3, the physically stored side part PPi, 5 also needed to contain only the modified version of the cell PCi, 3. If, however, one follows the two page sub-pointers PPR5, i and PPR 4 , i which would belong to a version pointer PVRs, i, then it is noted that neither in the page section PCi, 5 nor in the page section PCi, 4 contain the page cell PCi, 2 would.
Für die Revision Rs, i bedeutet jedoch ein Parameter von m=2, dass von der Seitenzelle PCi, 2, wie sie noch über den zweiten Seitenteilzeiger PPR3,i des Versionszeiger PVR4, 1 in dem Seitenteil PPi, 3 verfügbar war, eine Kopie im Seitenteil PPl, 5 enthalten ist.However, for the revision Rs, i, a parameter of m = 2 means that one copy is available from the page cell PCi, 2, which was still available via the second page sub-pointer PPR3, i of the version pointer PVR 4 , 1 in the page part PPi, 3 in the side part PPl, 5 is included.
Das Ergebnis dieser Revision Rs, 1 stellt logisch betrachtet die Seitenversion PVi, 5 dar. Physisch wird ein Seitenteil PPi, 5 abgespeichert, welches nur die modifizierte Zelle PCi, 3 und die kopierte Zelle PCi, 2 enthält. Demnach wird physisch wieder eine Seitenzelle weniger abgespeichert als logisch zur Version PVi, 5 der Datenbankseite Pi gehören.Logically, the result of this revision Rs, 1 represents the page version PVi, 5. Physically, a page portion PPi, 5 is stored, which contains only the modified cell PCi, 3 and the copied cell PCi, 2. Accordingly, physically one page cell is less stored than logical belong to the version PVi, 5 of the database page Pi.
Zur logischen Verwaltung der Seitenversion PVi, 5 wird in das oben erwähnte interne Verzeichnis des Datenbanksystems ein neuer Versionszeiger PVRs, 1 mit den zwei Seitenteilzeigern PPR5,i und PPR4,i auf die Seitenteile PPi, 5 und PPi, 4 aufgenommen. Zudem verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 2, dass diese eine Kopie ist ohne geändert worden sein, sowie eine Versionsnummerndifferenz die zu dem SeitenteilFor the logical management of the page version PVi, 5, a new version pointer PVRs, 1 with the two page sub-pointers PPR5, i and PPR4, i is added to the page sections PPi, 5 and PPi, 4 in the above-mentioned internal directory of the database system. In addition, the database system manages, as information about the reason for storing the page cell PCi, 2, that it is a copy without being changed, and a version number difference to the page part
PPi, 3 führt, welches die sozusagen als Kopiervolage dienende Fassung der Seitenzelle PCi,2 enthält. Ferner verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 3, dass diese geändert wurde, sowie eine Versionsnummerndifferenz die zu demPPi, 3, which contains the version of the side cell PCi, 2, which serves as a copy sheet, so to speak. Further, the database system manages as information about the reason of storing the page cell PCi, 3 that it has been changed, and a version number difference corresponding to that
Seitenteil PPi, 4 führt, welches die nächst ältere Fassung der Zelle PCl, 3 enthält.Side part PPi, 4 leads, which contains the next older version of the cell PCl, 3.
In der Figur 1 ist dies entsprechend der oben erwähnten Erläuterung mit einem C und einer 1 für die Zelle PCi, 3 symbolisiert. Für die kopierte Zelle PCl, 2 gilt hingegen folgende Symbolik: Das C und die 1 in Klammern wurden von der als Kopiervorlage dienende Fassung der Seitenzelle PCl, 2 übernommen. Die 2 außerhalb der Klammer stellt die Versionsnummerndifferenz dar, die zu dem Seitenteil PPl, 3 führt, welchen sozusagen als Kopiervorlage dienende Fassung der Seitenzelle PCi, 2 enthält.In FIG. 1, this is symbolized by a C and a 1 for the cell PCi, 3 in accordance with the above-mentioned explanation. For the copied cell PCl, 2, however, the following symbolism applies: The C and the 1 in parentheses were taken from the version of the side cell PCl, 2 serving as a copy template. The 2 outside the parenthesis represents the version number difference leading to the side part PP1, 3, which contains, as it were, a copy template version of the side cell PCi, 2.
Nach dem Abspeichern des Seitenteils PPi, 5 ist die fünfte Revision Rs, 1 der Datenbankseite Pi abgeschlossen und in dem Datenbanksystem wird eine fünfte Seitenversion PVi, 5 bereitgehalten.After saving the side part PPi, 5, the fifth revision Rs, 1 of the database page Pi is completed and a fifth page version PVi, 5 is kept in the database system.
Revision R6,i: Zu einem späteren Zeitpunkt wird die fünfte Version PVi, 5 der Datenbankseite Pi wieder aufgerufen, damit nochmals Modifikationen daran während einer sechsten Revision Rε,i vorgenommen werden können. Das Zugreifen auf die Seitenversion PVi,5 erfolgt über den hierzu vom Datenbanksystem verwalteten Seitenversionszeiger PVRs, i sowie die zwei Seitenteilzeiger PPRs, i und PPRs, 1.Revision R6, i: At a later time, the fifth version PVi, 5 of the database page Pi is called again so that once again modifications can be made during a sixth revision Rε, i. The access to the page version PVi, 5 takes place via the page version pointer PVRs, i managed for this purpose by the database system, as well as the two page sub-pointers PPRs, i and PPRs, 1.
Da in dem referenzierten Seitenteil PPi, 5 nur die Seitenzellen PCi, 2 und PCi, 3 enthalten sind, ergibt sich daraus, dass die Zelle PCi, 1, welche in dem anderen referenzierten Seitenteil PPi, 4 enthalten ist, auch für die fünfte Seitenversion PVi, 5 noch Gültigkeit hat. Somit wird die Seitenversion PVi, 5 der Seite Pi aus den in dem Seitenteil PPi, 5 enthaltenen Seitenzellen PCi, 2 und PCi, 3 sowie der in dem Seitenteil PPi, 4 enthaltenen Seitenzelle PCi, 1 rekonstruiert und bereitgestellt.Since only the page cells PCi, 2 and PCi, 3 are contained in the referenced page part PPi, 5, it follows that the cell PCi, 1 contained in the other referenced page part PPi, 4, also for the fifth page version PVi , 5 is still valid. Thus, the side version PVi, 5 of the side Pi is reconstructed and provided from the side cells PCi, 2 and PCi, 3 contained in the side part PPi, 5 and the side cell PCi, 1 contained in the side part PPi, 4.
Geht man jedoch weiterhin davon aus, dass die Seitenzellen PCi, 1, PCi,2 und PCi, 3 Knoten entsprechen, die bestimmte XML- Bestandteile einer XML-Baumstruktur umfassen, dann sind beim Rekonstruieren und Bereitstellen der SeitenversionHowever, assuming that the page cells PCi, 1, PCi, 2, and PCi correspond to 3 nodes that comprise certain XML components of an XML tree, then when reconstructing and providing the page version
PVi, 5 der Datenbankseite Pi aus den Seitenzellen PCi, 1, PCi, 2 und PCi, 3 vor allem die weiteren vom Datenbanksystem zu der jeweiliger Zelle, das heißt dem jeweiligen Knoten verwalteten Informationen zur berücksichtigen. Denn für jeden Knoten verwaltet das Datenbanksystem neben dessen eigener Identifikationsinformation c auch die Identifikationsinformation c der Knoten, welche XML- Bestandteile umfassen, die in der der XML-Baumstruktur hierarchisch unmittelbar übergeordnet, untergeordnet oder auf gleicher Ebene unmittelbar nebengeordnet waren, jeweils zusammen mit der entsprechenden Rangfolgeinformation.PVi, 5 of the database page Pi from the page cells PCi, 1, PCi, 2 and PCi, 3 above all the other from the database system to the respective cell, that is, the respective node managed information considered. For each node manages the database system in addition to its own identification information c and the identification information c of the nodes, which comprise XML components that were in the XML tree hierarchically directly superordinate, subordinate or at the same level directly adjacent, respectively together with the corresponding ranking information.
So wird unter Berücksichtigung dieser weiteren vom Datenbanksystem verwalteten Indentifikationsinformationen c und Rangfolgeinformationen währen der Rekonstruktion der Seitenversion PVi, 4 der Datenbankseite Pi aus den Seitenzellen PCi, 1, PCi, 2 und PCi, 3, deutlich, dass die Zelle PCi, 1 ein ein XML-Element umfassender Knoten ist, während die Zelle PCi, 2 ein den zugehörigen Textinhalt umfassender Knoten ist, und dass der der Zelle PCi, 3 entsprechendeThus, taking into account these other identification information managed by the database system, c and ranking information during the reconstruction of the Page version PVi, 4 of the database page Pi from the page cells PCi, 1, PCi, 2 and PCi, 3, it is clear that the cell PCi, 1 is a node comprising an XML element, while the cell PCi, 2 a more comprehensive text content Node, and that corresponding to the cell PCi, 3
Knoten ein weiteres XML-Elememt umfasst, das in der XML- Baumstruktur dem XML-Element, welches von dem der Zelle PCi, 1 entsprechenden Knoten umfasst ist, als Eltern-XML- Element übergeordnet ist. Lediglich aus der Anordnung der Knoten innerhalb der Datenseite wäre diese hierarchische Struktur nicht ersichtlich gewesen.Node comprises a further XML element which, in the XML tree structure, is superior to the XML element which is included in the node corresponding to the cell PCi, 1 as the parent XML element. Only from the arrangement of the nodes within the data page this hierarchical structure would not have been apparent.
Als Modifikation an der Seite Pi erfolgt eine Löschung der Zelle PCi, 2 beziehungsweise des entsprechenden Knotens. Das heißt, dass zu dem ein XML-Element umfassenden Knoten bzw. der Zelle PCi, 1 der zugehörige Textinhalt, der vom Knoten bzw. der Zelle PCi, 2 umfasst war, gelöscht wurde.As a modification on the side Pi deletion of the cell PCi, 2 or the corresponding node takes place. That is, for the node comprising an XML element or the cell PCi, 1, the corresponding text content included in the node or cell PCi, 2 has been deleted.
An der Rangfolge zwischen den Knoten hat sich nur zwischen PCi, 1 und PCi, 2 insofern etwas geändert, als dass dieseThe ranking between the nodes has changed only between PCi, 1 and PCi, 2 insofar as that
Beziehung nicht mehr existiert. An der Rangfolge zwischen PCi, 1 und PCi, 3 hat sich hingegen nichts geändert. Die von der Datenbank verwalteten Rangodnungsinformationen sind demnach zu aktualisieren.Relationship no longer exists. The ranking between PCi, 1 and PCi, 3 has not changed. The ranking information managed by the database should therefore be updated.
Da während der Revision Rβ,i eine Modifikation an der Seite Pi lediglich in Form einer Löschung der Zelle PCi, 2 erfolgt, brauchte das physisch zu speichernde Seitenteil PPi, 6 auch nur die Modifizierte Fassung der Zelle PCi, 2 enthalten, wobei die Zelle PCi,2 im geleerten Zustand trotzdem abgespeichert wird.Since during the revision Rβ, i a modification on the side Pi takes place only in the form of a deletion of the cell PCi, 2, the physically stored side part PPi, 6 only needed to contain the modified version of the cell PCi, 2, the cell PCi , 2 is still stored in the emptied state.
Es bestünde dann aber für die Seitenversion R6,i über deren Seitenzeiger PPRδ,i und PPRs,i des Seitenversionszeigers PVRδ,i kein direkter Zugriff mehr auf die Seitenzelle PCi, 1, wie sie noch über den zweiten Seitenteilzeiger PPR4,i des Versionszeigers PVRs, i in dem Seitenteil PPi, 4 verfügbar war, so dass eine Kopie der Seitenzelle PCi, 1 im Seitenteil PPi, 6 enthalten ist.However, there would then be no longer direct access to the page cell PCi, 1 for the page version R6, i via its page pointer PPRδ, i and PPRs, i of the page version pointer PVRδ, i, as it was still available via the second page sub-pointer PPR4, i of the version pointer PVRs, i in the side part PPi, 4, so that a copy of the side cell PCi, 1 in the side part PPi, 6 is included.
Diese weitere Revision der Seite wird erkannt und in Reaktion darauf der Revisionszähler r, welcher bisher den Wert 5 hat, für diese Speicherseite Pi um den Zählwert 1, also auf 6, erhöht.This further revision of the page is detected and, in response thereto, the revision counter r, which has hitherto had the value 5, for this memory page Pi is increased by the count value 1, ie to 6.
Das Ergebnis dieser Revision Rβ,i stellt logisch betrachtet die Seitenversion PVi, 6 dar. Physisch wird ein Seitenteil PPi, 6 abgespeichert, welches nur die gelöschte Zelle PCi, 2 und die kopierte Zelle PCi, 1 enthält. Demnach wird physisch abermals eine Seitenzelle weniger abgespeichert als logisch zur Version PVi, 6 der Datenbankseite Pi gehören.Logically, the result of this revision Rβ, i represents the page version PVi, 6. Physically, a side part PPi, 6 is stored, which contains only the deleted cell PCi, 2 and the copied cell PCi, 1. Accordingly, once again physically one page cell is stored less than logically belonging to the version PVi, 6 of the database page Pi.
Zur logischen Verwaltung der Seitenversion PVi, 6 wird in das oben erwähnte interne Verzeichnis des Datenbanksystems ein neuer Versionszeiger PVR6,i mit den zwei Seitenteilzeigern PPR6,i und PPR5,i auf die Seitenteile PPi, 6 und PPi, 5 aufgenommen. Zudem verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 1, dass diese eine Kopie ist ohne geändert worden sein, sowie eine Versionsnummerndifferenz, die zu dem Seitenteil PPi, 2 führt, welches die sozusagen als Kopiervorlage dienende Fassung der Seitenzelle PCi, 1 enthält. Ferner verwaltet das Datenbanksystem als Information über den Grund der Speicherung der Seitenzelle PCi, 2, dass diese gelöscht wurde, sowie eine Versionsnummerndifferenz, die zu dem Seitenteil PPi, 3 führt, welches die nächst ältere Fassung der Zelle PCi, 3 enthält.For the logical management of the page version PVi, 6, a new version pointer PVR6, i with the two page sub-pointers PPR6, i and PPR5, i is added to the page sections PPi, 6 and PPi, 5 in the above-mentioned internal directory of the database system. In addition, the database system manages as information about the reason for storing the page cell PCi, 1 that it is a copy without being changed, and a version number difference leading to the page part PPi, 2, which serves as a copy template version of the page cell PCi , 1 contains. Further, the database system manages as information about the reason for storing the page cell PCi, 2 that it has been deleted, and a version number difference leading to the page part PPi, 3 containing the next older version of the cell PCi, 3.
In der Figur 1 ist dies entsprechend der oben erwähnten Erläuterung mit einem D und einer 3 für die Zelle PCi, 2 symbolisiert. Für die zum wiederholten Mal kopierte Zelle PCi, l gilt die folgende Symbolik: Das C und die 1 in Klammern wurden von der als Kopiervorlage dienende Fassung der Seitenzelle PCi, i übernommen. Die 4 außerhalb der Klammer stellt die Versionsnummerndifferenz dar, die zu dem Seitenteil PPi, 2 führt, welcher sozusagen die als Kopiervorlage dienende Fassung der Seitenzelle PCi, 1 enthält.In FIG. 1 this is according to the above-mentioned explanation with a D and a 3 for the cell PCi, 2 symbolizes. For the repeatedly copied cell PCi, l, the following symbolism applies: The C and the 1 in parentheses were taken from the version of the side cell PCi, i serving as a copy template. The 4 outside the parenthesis represents the version number difference leading to the side part PPi, 2, which contains, so to speak, the version of the side cell PCi, 1 serving as a copy template.
Somit wird deutlich, dass für die Kopie einer Seitenzelle PCp, c bevorzugt ein Seitenteilzeiger PPRr, p bzw. eine Versionsnummerndifferenz vom Datenbanksystem verwaltet wird, der bzw. die zu dem Seitenteil PPp, r führt, welches in Reaktion auf jene Revision Rr, p, während der die letzte Modifikation der Zelle bzw. der letzte Lesezugriff auf die Zelle PCp, c erfolgte, gespeichert wurde.Thus, it becomes clear that for the copy of a page cell PCp, c, preferably a page sub-pointer PPRr, p or a version number difference is managed by the database system leading to the page part PPp, r, which responds to that revision Rr, p, during which the last modification of the cell or the last read access to the cell PCp, c took place.
Nach dem Abspeichern des Seitenteils PPi, 6 ist die sechste Revision R6,i der Datenbankseite Pi abgeschlossen und in dem Datenbanksystem wird neben den vorherigen 5 schließlich noch eine sechste Seitenversion PVi, 5 bereitgehalten.After the storage of the side part PPi, 6, the sixth revision R6, i of the database page Pi is completed and in the database system, besides the previous 5, a sixth page version PVi, 5 is finally kept ready.
Ein vorteilhafter Aspekt der Erfindung liegt darin, keine Snapshots mehr für gesamte Speicherseiten, sondern vielmehr Speicherseitenzellen-Snapshots abzuspeichern.An advantageous aspect of the invention is that it no longer stores snapshots for entire memory pages, but instead stores memory page cell snapshots.
Erfindungsgemäß ist somit ein Speicherseiten-Snapshot in eine Anzahl von Speicherseitenzellen-Snapshots zerfallen, die verteilt über eine Anzahl von m Speicherseitenteilen auf dem Speichermedium abgespeichert sind.Thus, in accordance with the present invention, a memory page snapshot is decomposed into a number of memory page cell snapshots stored on the storage medium distributed over a number of m memory page portions.
Das erfindungsgemäße Verfahren wird daher auch als „Sliding Snapshot" bezeichnet. The method according to the invention is therefore also referred to as "sliding snapshot".

Claims

Patentansprüche claims
1. Verfahren zum Vorhalten einer Mehrzahl von Versionen von Speicherseiten in einem Speichersystem, wobei Speicherseiten (Pp) in Speicherseitenzellen (PCp, C1, ..., PCp, Cn) unterteilt werden und den Speicherseitenzellen jeweils eine eindeutige Speicherseitenzellenidentifikationsinformation (c) zugeordnet wird, wobei in Reaktion auf eine Revision (R) einer bestimmten Speicherseite (Pp) ein für die jeweilige Speicherseite geltender Zähler (r) für Revisionen (Rp) um einen Zählwert verändert und logisch eine Speicherseitenversion (PVp, r) vom Speichersystem verwaltet wird, sowie physisch ein Speicherseitenteil (PPp, r) im Speichersystem gespeichert wird, wobei das Speicherseitenteil (PPp, r) zumindest eine während der Revision (Rr, p) modifizierte Speicherseitenzelle (PCp, c) enthält, und wobei in Reaktion auf die Revision (Rr, p) einer Speicherseite (Pp) ein Speicherseitenversionszeiger (PVRr,p) vom Speichersystem verwaltet wird, welcher m Speicherseitenteilzeiger (PPRrmax,p, ..., PPRrmax_m+1, p) auf die Speicherseitenteile (PPp, rmax, ..., PPp, rmax.m+1) umfasst, wobei m ein festlegbarer Parameterwert von m>0 ist.A method of maintaining a plurality of versions of memory pages in a memory system, wherein memory pages (Pp) are subdivided into memory page cells (PCp, C 1 , ..., PCp, C n ) and each of the memory page cells is assigned unique memory page cell identification information (c) in which, in response to a revision (R) of a particular memory page (Pp), a revision counter (r) for the respective memory page is changed by one count and logically a memory page version (PVp, r) is managed by the memory system, and physically storing a memory page portion (PPp, r) in the memory system, the memory page portion (PPp, r) including at least one memory page cell (PCp, c) modified during revision (Rr, p), and wherein in response to the revision (Rr , p) a memory page (Pp) a memory page version pointer (PVRr, p) is managed by the memory system, which m memory side part pointer (PPRr max , p , ..., PPRr max _ m + 1 , p) to the memory side parts (PPp, r max , ..., PPp, r max . m + 1 ), where m is a definable parameter value of m> 0.
2. Verfahren nach Anspruch 1, wobei das Speicherseitenteil (PPp, r) eine Kopie zumindest einer Speicherseitenzelle (PCp, c), die zuletzt in dem Speicherseitenteil (PPp, r-m) enthalten war, enthält.The method of claim 1, wherein the memory page part (PPp, r) includes a copy of at least one memory page cell (PCp, c) that was last contained in the memory page part (PPp, r-m).
3. Verfahren nach einem der Ansprüche 1 oder 2, wobei für jede Speicherseitenzelle (PCp, c) einer3. The method according to any one of claims 1 or 2, wherein for each memory page cell (PCp, c) a
Speicherseite (Pp) sowohl deren eigene Speicherseitenzellenidentifikationsinformation (c) und auch jeweils dieMemory page (Pp) both their own Memory page cell identification information (c) and also the respective ones
Speicherseitenzellenidentifikationsinformationen (c) derMemory page cell identification information (c) of
Speicherseitenzellen, die sich in der Speicherseite (Pp) in ihrer unmittelbaren Umgebung befinden sowie jeweils eineMemory page cells located in the memory page (Pp) in their immediate vicinity and one each
Rangfolgeinformation in Bezug auf eine jeweilige dieserRanking information relating to a respective one of these
Speicherseitenzellen vom Speichersystem verwaltet werden, und wobei für jede Speicherseitenzelle (PCp, c) in demMemory page cells are managed by the memory system, and wherein for each memory page cell (PCp, c) in the
Speicherseitenteil (PPp, r) sowohl deren eigene Speicherseitenzellenidentifikationsinformation (c) als auch jeweils dieMemory page part (PPp, r) both their own memory page cell identification information (c) and the respective
Speicherseitenzellenidentifikationsinformationen (c) derMemory page cell identification information (c) of
Speicherseitenzellen, die sich in dieserMemory page cells that are in this
Speicherseitenversion (PVp, r) in ihrer unmittelbaren Umgebung befinden sowie jeweils eine Rangfolgeinformation in Bezug auf eine jeweilige dieser Speicherseitenzellen vomMemory page version (PVp, r) are in their immediate vicinity and each of a ranking information with respect to a respective one of these memory page cells from the
Speichersystem verwaltet werden.Be managed storage system.
4. Verfahren nach einem der Ansprüche 1 bis 3, wobei für jede Speicherseitenzelle (PCp, c) in dem4. The method according to any one of claims 1 to 3, wherein for each memory page cell (PCp, c) in the
Speicherseitenteil (PPp, r) eine Information über den Grund für ihre Speicherung während dieser Revision (Rr, p) vom Speichersystem verwaltet wird.Memory page part (PPp, r) information about the reason for their storage during this revision (Rr, p) is managed by the storage system.
5. Verfahren nach Anspruch 4, wobei als Gründe für die Speicherung einer Speicherseitenzelle (PCp, c) innerhalb eines Speicherseitenteils (PPp, r) zumindest ein Lesezugriff auf die Speicherseitenzelle (PCp, c), deren Einfügung in die Speicherseite (Pp), deren Änderung und deren Löschung aus der Speicherseite sowie deren Modifikationsfreiheit seit einer Anzahl von m Revisionen (R) der Speicherseite (Pp) unterscheidbar sind. 5. Method according to claim 4, wherein the reasons for storing a memory page cell (PCp, c) within a memory page part (PPp, r) are at least one read access to the memory page cell (PCp, c) whose insertion into the memory page (Pp) Change and its deletion from the memory side and their freedom of modification since a number of m revisions (R) the memory side (Pp) are distinguishable.
6. Verfahren nach einem der Ansprüche 1 bis 5, wobei für jede in einem Speicherseitenteil (PPp, r) enthaltene Speicherseitenzelle (PCp, c) ein weiterer Speicherseitenteilzeiger (PPRr, p) auf das Speicherseitenteil, welches die Speicherseitenzelle (PCp, c) in der jeweils nächst älteren modifizierten Fassung enthält, vom Speichersystem verwaltet wird.6. Method according to one of claims 1 to 5, wherein for each memory page cell (PCp, c) contained in a memory page part (PPp, r) another memory page sub-pointer (PPRr, p) refers to the memory page part containing the memory page cell (PCp, c) in the next older modified version is managed by the storage system.
7. Verfahren nach einem der Ansprüche 1 bis 6, wobei der Parameterwert m als für das gesamte7. The method according to any one of claims 1 to 6, wherein the parameter value m than for the entire
Speichersystem geltend und/oder für jeweils eine Anzahl bestimmter Speicherseiten geltend und/oder dynamisch in Abhängigkeit der jeweils aktuellen Auslastung des Speichersystem hinsichtlich der Schreib- und/oder Lesezugriffe auf das Speichermedium geltend festlegbar ist.Memory system and / or valid for each of a number of specific memory pages and / or dynamic as a function of the current utilization of the storage system with respect to the read and write accesses to the storage medium assertable.
8. Verfahren nach einem der Ansprüche 1 bis 7, wobei jede Speicherseitenzelle (PCp, C1, ..., PCp, Cn) eine variable Anzahl an Datenbytes enthalten kann.The method of any one of claims 1 to 7, wherein each memory page cell (PCp, C 1 , ..., PCp, C n ) may contain a variable number of data bytes.
9. Verfahren nach einem der Ansprüche 1 bis 8, wobei jede Speicherseite (Pp) eine variable oder zur besseren Handhabbarkeit der Speicherseite für das Speichersystem maximal eine festlegbare Anzahl an Speicherseitenzellen (PCp, c) enthalten kann.9. Method according to one of claims 1 to 8, wherein each memory page (Pp) can contain a variable or, for better handling of the memory page for the memory system, a maximum of a definable number of memory page cells (PCp, c).
10. Verfahren zum Zugreifen auf gemäß dem Verfahren nach einem der Ansprüche 1 bis 9 vorgehaltene Versionen von Speicherseiten in einem Speichersystem, wobei unter Berücksichtigung des für die gewünschte Speicherseitenversion (PVp, r) vom Speichersystem verwalteten Speicherseitenversionszeigers (PVRr, p) und der m von diesem umfassten Speicherseitenteilzeiger (PPRrmax,p, ..., PPRrmax_m+1, p) die gewünschte Speicherseitenversion (PVp, r) aus den in den referenzierten Speicherseitenteilen (PPp, rmax, ..., PPp, rmax_m+1) enthaltenen Speicherseitenzellen (PCp, C1, ..., PCp, cn) rekonstruiert und bereitgestellt wird, wobei, sofern eine Speicherseitenzelle (PCp, c) in mehreren der m referenzierten Speicherseitenteilen (PPP. rmax, ..., PPp,rmax_m+1) enthalten ist, jene Speicherseitenzelle (PCp, c) aus dem neueren dieser Speicherseitenteile herangezogen wird.A method of accessing versions of memory pages maintained in accordance with the method of any one of claims 1 to 9 in a memory system, taking into account the memory page version pointer (PVRr, p) managed by the memory system for the desired memory page version (PVp, r) and the m of this memory page sub-pointers included (PPRr max , p, ..., PPRr max _ m + 1 , p) the desired memory page version (PVp, r) from the memory page cells (PCp, C 1 , ..., PCp, c n ) contained in the referenced memory page parts (PPp, r max , ..., PPp, r max _ m + 1 ) and provided where, if a memory page cell (PCp, c) is included in a plurality of the m referenced memory page parts (PPP.r max ,..., PPp, r max _m + 1 ), that memory page cell (PCp, c) is the newer one This memory side parts is used.
11. Verfahren nach Anspruch 10, wobei das Rekonstruieren und Bereitstellen der gewünschten Speicherseitenversion (PVp, r) unter11. The method of claim 10, wherein reconstructing and providing the desired memory page version (PVp, r) under
Berücksichtigung der vom Speichersystem zu der jeweiligerConsideration of the memory system to the respective
Speicherseitenzelle (PCp,c) verwalteten Information über den Grund für ihre Speicherung während der jeweiligenMemory page cell (PCp, c) managed information about the reason for its storage during each
Revision (Rr, p) erfolgt, und/oder unter Berücksichtigung der vom Speichersystem zu der jeweiligenRevision (Rr, p) takes place, and / or taking into account the memory system to the respective
Speicherseitenzelle (PCp, c) verwaltetenMemory page cell (PCp, c) managed
Speicherseitenzellenidentifikationsinformationen (c) der Speicherseitenzellen, die sich in der jeweiligenMemory page cell identification information (c) of the memory page cells located in the respective
Speicherseitenversion (PVp, r) in ihrer unmittelbarenMemory page version (PVp, r) in their immediate
Umgebung befinden sowie der jeweils verwaltetenEnvironment as well as the respectively administered
Rangfolgeinformation in Bezug auf eine jeweilige dieserRanking information relating to a respective one of these
Speicherseitenzellen.Memory page cells.
12. Speichersystem, hergerichtet zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 11.12. Storage system, prepared for carrying out the method according to one of claims 1 to 11.
13. Computerlesbares Medium mit einem darauf gespeicherten Computerprogramm, welches Anweisungen definiert, die einen Computer oder das Speichersystem nach Anspruch 12 derart steuern, dass dieser oder dieses geeignet ist, ein Verfahren nach einem der Ansprüche 1 bis 11 auszuführen. 13. A computer-readable medium having a computer program stored thereon and defining instructions controlling a computer or the storage system of claim 12 such that it is suitable for performing a method according to any one of Claims 1 to 11 execute.
PCT/EP2009/003679 2008-05-23 2009-05-25 Method for hosting a plurality of versions of memory pages in a storage system and accessing the same WO2009141161A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102008024809.6 2008-05-23
DE102008024809A DE102008024809B3 (en) 2008-05-23 2008-05-23 A method of storing a plurality of revisions of tree-structured data family parts

Publications (1)

Publication Number Publication Date
WO2009141161A1 true WO2009141161A1 (en) 2009-11-26

Family

ID=40996734

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/EP2009/003680 WO2009141162A1 (en) 2008-05-23 2009-05-25 Method for storing a plurality of revisions of data families linked tree structure-like
PCT/EP2009/003679 WO2009141161A1 (en) 2008-05-23 2009-05-25 Method for hosting a plurality of versions of memory pages in a storage system and accessing the same

Family Applications Before (1)

Application Number Title Priority Date Filing Date
PCT/EP2009/003680 WO2009141162A1 (en) 2008-05-23 2009-05-25 Method for storing a plurality of revisions of data families linked tree structure-like

Country Status (2)

Country Link
DE (1) DE102008024809B3 (en)
WO (2) WO2009141162A1 (en)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559991A (en) * 1991-11-04 1996-09-24 Lucent Technologies Inc. Incremental computer file backup using check words
WO2002048919A1 (en) * 2000-12-12 2002-06-20 Fresher Information Corporation Non-log based information storage and retrieval system with intrinsic versioning
US6460052B1 (en) * 1999-08-20 2002-10-01 Oracle Corporation Method and system for performing fine grain versioning
EP1482422A2 (en) * 2003-05-30 2004-12-01 Microsoft Corporation Shadow paging for database access
US20060004792A1 (en) * 2004-06-21 2006-01-05 Lyle Robert W Hierarchical storage architecture using node ID ranges
US20070043743A1 (en) * 2005-08-22 2007-02-22 Chen Yao-Ching S Packing nodes into records to store XML XQuery data model and other hierarchically structured data
US20070043686A1 (en) * 2005-08-22 2007-02-22 International Business Machines Corporation Xml sub-document versioning method in xml databases using record storages

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6061697A (en) * 1996-09-11 2000-05-09 Fujitsu Limited SGML type document managing apparatus and managing method
US6938075B1 (en) * 1998-12-24 2005-08-30 Computer Associates Think, Inc. Method and apparatus for hierarchical software distribution packages including composite packages
US7111233B1 (en) * 2000-03-09 2006-09-19 Electronic Data Systems Corporation Method and system for applying XML schema
JP4227931B2 (en) * 2004-04-15 2009-02-18 株式会社日立製作所 Information storage device, information storage method, and information storage processing program
US20060218160A1 (en) * 2005-03-24 2006-09-28 Computer Associates Think, Inc. Change control management of XML documents
US7636739B2 (en) * 2005-06-30 2009-12-22 Microsoft Corporation Method for efficient maintenance of XML indexes

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5559991A (en) * 1991-11-04 1996-09-24 Lucent Technologies Inc. Incremental computer file backup using check words
US6460052B1 (en) * 1999-08-20 2002-10-01 Oracle Corporation Method and system for performing fine grain versioning
WO2002048919A1 (en) * 2000-12-12 2002-06-20 Fresher Information Corporation Non-log based information storage and retrieval system with intrinsic versioning
EP1482422A2 (en) * 2003-05-30 2004-12-01 Microsoft Corporation Shadow paging for database access
US20060004792A1 (en) * 2004-06-21 2006-01-05 Lyle Robert W Hierarchical storage architecture using node ID ranges
US20070043743A1 (en) * 2005-08-22 2007-02-22 Chen Yao-Ching S Packing nodes into records to store XML XQuery data model and other hierarchically structured data
US20070043686A1 (en) * 2005-08-22 2007-02-22 International Business Machines Corporation Xml sub-document versioning method in xml databases using record storages

Also Published As

Publication number Publication date
WO2009141162A1 (en) 2009-11-26
DE102008024809B3 (en) 2009-11-19

Similar Documents

Publication Publication Date Title
DE10211606B4 (en) Data processing device with a metadata backup management
DE19740525C1 (en) Method of data storage and recovery in control system, esp. in motor vehicle, such as taxi
DE69920713T2 (en) FILE SYSTEM IMAGE TRANSFER
DE69906488T2 (en) Procedure for synchronizing a database schema with its representation in an object-oriented repository
DE60304677T2 (en) METHOD AND DEVICE FOR PROVIDING INCREMENTAL RECOVERY OF A STORAGE MEDIUM IN LOSS OF DATA
DE60030872T2 (en) METHOD AND ARRANGEMENT TO CARRY OUT ATOMIC UPDATES BY USING A LOGICAL FLASH MEMORY DEVICE
EP0855062A2 (en) Information system and process for storing data therein
DE102007006307A1 (en) Non volatile memory unit i.e. flash memory unit, operating method, involves determining log-block as reusable log block, without deleting updated version of data, and fulfilling pre-determined condition depending on determination
DE112007003693T5 (en) Data processing device and method for data processing
WO2015090668A1 (en) Posix-compatible file system, method for producing a file list and memory apparatus
DE19937423C2 (en) Process for fast data backup and data transmission
DE2934344A1 (en) DATA PROCESSING SYSTEM WITH A DATABASE MANAGEMENT SYSTEM
EP1031100A1 (en) Method for managing documents
DE10048478C2 (en) Method of accessing a storage unit when searching for substrings
EP0265636A1 (en) Multiprocessor with several processors provided with cache memories and a shared memory
WO2009141161A1 (en) Method for hosting a plurality of versions of memory pages in a storage system and accessing the same
EP3885957A1 (en) Device for storing data in a non-volatile memory
DE19819205A1 (en) Data retention system for persistent data
DE102016005519A1 (en) Method for creating a metadata data model for a BI infrastructure
DE10048479A1 (en) Method for accessing a storage unit in which memo sequences are stored, associated storage unit and associated program
EP2037375B1 (en) Method for operating databases
EP1276116B1 (en) Method for storing related data
WO2006074869A1 (en) Data storage system and method for operation thereof
EP2136303B1 (en) Method for controlling an automatic update of data views in a computer system
DE10218460A1 (en) Determination of key figures for database recovery processes

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09749651

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 09749651

Country of ref document: EP

Kind code of ref document: A1