WO2003085554A1 - Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d'un systeme informatique - Google Patents

Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d'un systeme informatique Download PDF

Info

Publication number
WO2003085554A1
WO2003085554A1 PCT/FR2003/001076 FR0301076W WO03085554A1 WO 2003085554 A1 WO2003085554 A1 WO 2003085554A1 FR 0301076 W FR0301076 W FR 0301076W WO 03085554 A1 WO03085554 A1 WO 03085554A1
Authority
WO
WIPO (PCT)
Prior art keywords
reorganization
copy
region
time
current
Prior art date
Application number
PCT/FR2003/001076
Other languages
English (en)
Inventor
Bernard Lafforet
Original Assignee
Infotel
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 Infotel filed Critical Infotel
Priority to US10/510,635 priority Critical patent/US20050165713A1/en
Priority to EP03745825A priority patent/EP1493109B1/fr
Priority to DE60310699T priority patent/DE60310699D1/de
Priority to AU2003246781A priority patent/AU2003246781A1/en
Publication of WO2003085554A1 publication Critical patent/WO2003085554A1/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Definitions

  • the present invention relates to the reorganization of databases managed using a computer system, more particularly indexed databases in which an index, most often in the form of an index table, is used to access a object sought, for example a row from the database.
  • databases can be very large. To fix ideas and without limiting the presentation of the invention, the size of these very large databases can range from a million to a few billion lines. These databases are generally stored in large capacity memories, for example disk memories, each line of data being addressed appropriately. The considerable sizes that databases can have often require the exploitation of the latter by partitions with which are associated specific partition indexes and / or complete database indexes.
  • the reorganization is done offline (generally off line) during the maintenance window (“batch” window) and consists of unloading the database, arranging its information lines in a desired order, for example alphabetical order , then reload the rows once stored in the database by updating the indexes, if possible in a reorganized manner.
  • object to reorganize OR an object capable of reorganizing an information system, in particular the database alone, its index (s), the association database and index , the partitions of the database, their associated indexes (specific or not) and the partition associations and their indexes.
  • a computerized information system or information system will be called a complete computer system (hardware and software) suitable for database management and comprising at least one database.
  • Such systems are encountered in particular as internal or external online servers to which users connect to consult the corresponding databases by means of queries and other data search requests.
  • the “machine” capacities of the information system (central units, possibly networked) are generally divided into separate processing regions controlled in a unitary fashion by a control region. Each processing region is assigned a certain number of ordered tasks (programs or subroutines to be executed) and the necessary hardware resources are allocated in virtual memories and peripherals (hard disks, printers, memories on external media, etc.).
  • tasks of the same type are assigned to each processing region if possible, such as for tasks generally executable in the maintenance window called the "batch" window.
  • Tasks of the same type are assigned to each processing region if possible, such as for tasks generally executable in the maintenance window called the "batch" window.
  • database reorganizations are necessary to prevent the performance of transactions (reading and / or updating) accessing the databases from deteriorating.
  • it is not possible to keep all the objects of an information system in a state of perfect organization because: i) reorganizations consume system time and resources (processors, random access memory and memories on disks); ii) too frequent reorganizations would entail higher construction costs than the additional costs generated by operating weakly disorganized databases.
  • a first step in the work of managing the reorganization of a set of databases consists in developing an execution schedule for the reorganizations. This schedule is used to launch reorganizations of offline databases (off line) during the daily maintenance period of a few hours provided for the information system (“batch” window or window of grouped executions).
  • the object of the invention is to manage the reorganization of a set of indexed databases of an information computer system making it possible to improve the performance of a given configuration of the information system by seeking optimization. continual, in particular from the point of view of costs and / or reorganization times of reorganizations of databases (and / or their partitions) and their indexes
  • the invention proposes a method for managing reorganizations in a set of indexed databases of an information computer system suitable for “offline” reorganization in at least one system reorganization processing region and with the following operational phases (see Figure 1) •
  • (21) Establishment of a rapid PRR reorganization schedule using the PRIOREORG list and the available residual operational time TRR in all reorganization regions and a SELECT / OR selection list of objects to reorganize OR ordered by decreasing priorities optimized as a function of the gain of the reorganization of each OR object, said gain being defined as the product of a factor representative of the rate of disorganization of an OR object by the time of reorganization of this object;
  • the introduction into the management method according to the invention of the very principle of the rapid PRR reorganization planning (whose machine time is minimal to allow frequent updates without real penalty) and of the principle of permanent updating of the rapid reorganization planning PRR makes it possible to immediately take into account the evolution of the complete information system and its main parameters (instantaneous rate of disorganization of the objects to be reorganized, lengthening of the duration of a reorganization compared to the estimated duration, release of a processing region, end of a reorganization task, etc.) to modify the priorities of the reorganizations and optimize the launching thereof.
  • copies of the modified files constitute a security imperative in the field of the operation of computer systems. Indeed for reasons of computer security, certain information systems used for the management of a set of databases incorporate into their set of operating software a device for locking the return to service of a reorganized database before taking the corresponding backup copy.
  • the optimal order of reorganizations is coordinated with the order of the backup copies of objects of the information system taking into account the reorganizations in progress or just carried out.
  • the order of the backup copies is modified by execution in first priority, for at least one object to reorganize OR, of the copy of said OR object at the earliest at the end of reorganization processing
  • the method of managing reorganizations according to the invention is globalized to manage on the one hand the reorganizations, on the other hand the copies knowing that for reasons of optimization we have the ability to split the objects to be treated into partitions to the smallest possible parts of objects to be treated for each type of treatment.
  • the list and the objects to be copied can be different from the list and the objects to be reorganized.
  • the method of managing reorganizations and copies includes a phase of creating and maintaining a PRIOCOPY priority list of objects to be copied (as a function of time passed since the last copy of each object to copy OC) and the establishment of a quick copy schedule, knowing that some OR objects just reorganized (for example a database) are unlocked before being brought back online by taking a copy picture; to do this, we choose in the context of the present invention to copy these objects as first priority. II results in a double interaction between the rapid PPC copy schedule and the rapid PRR * reorganization schedule (close to the PRR schedule but modified accordingly.
  • the invention proposes a global method for managing the reorganizations of a set of indexed databases of an information computer system adapted to the "offline" reorganization integrating the management of copies and comprising the operational phases following (see Figure 2): (40) - Creation and maintenance by continuous update:
  • - RAZC 1 for which the selection of the first or next object to copy POC must be called into question, in particular an end of a copy task in a copy processing region, a priority copy at the end of reorganization and / or the release of a processing area for reorganization or copying, with any RAZR ⁇ l event, launching of the execution of the IDPOR process of identification of the first object to be reorganized POR or, if the IDPOR process is in progress execution, interruption and re-launch of the IDPOR process; and / or for any RAZC ⁇ l event, launching of the execution of the IDPOC process for identifying the first object to copy POC or, if the IDPOC process is running, interruption and re-launching of the IDPOC process; • the IDPOR process comprising the following operations
  • the management method according to the invention in one of its variants integrates into the final phases of the IDPOR process of an OR object a phase of searching for one or more objects to be reorganized OR without copying OR in the SELECT / OR list or, failing that, in the PRIOREORG list which can be reorganized in the corresponding RTR processing region during the interval of the waiting time for the copy of the OR object after reorganization
  • the phase (51 ) of Establishing a rapid reorganization schedule PRR * includes the following operations (see Figure 3): (51 1) - Initialization: in which the selection indicators for OR objects are canceled, combined with the discount counter-limiter in question, the residual TRC copy and TRR reorganization times and the minimum duration E of reorganization and Coptic of an OR object; (512) - Loop on objects: in which in particular for any real object OR from the PRIOREORG list taken in descending order until TRR ⁇ E, a mark of
  • said phase (516) of establishing a rapid PRC copy schedule comprises the following operations (see FIG. 4): (521) - Initialization: upon leaving a PRR * reorganization schedule and in which the PSC1 and PSC2 copy selection stacks are emptied, combined with the questioning counter-limiter, the residual copy time TRC and the minimum duration EC of copying an object to be copied OC;
  • step (53) for establishment of a copy of rodiaplannmg in the process IDPOR comprises the following operations • (531) Initialization of the copy regions: in which, when leaving a reorganization schedule for all the copy regions, the time consumed in the DCRC region is set to zero,
  • the retroplannmg phase of reorganization (54) in the IDPOR process comprises the following operations: (541) - Initialization: in which for any region of reorganization,
  • phase of identification of the reorganization region RTR (55) comprises the following operations: Depending on the type of current object to be reorganized OR
  • the phase (53 ′) of establishing a copy retroplannmg in the IDPOC process comprises the following operations: (531 ′) Initialization of the copy regions: in which for all the regions, the duration of the DRCOP region is valued at the “batch” window duration DFB minus the estimated relative time of end of copy processing in progress HRFC, -the duration consumed in the DCRCOP region is set to zero, the pointer of the first object to copy POC of the current region is set to zero (532 ') Unstacking and identification of the next object to copy POC: In which, -For any object in the stack PSC1 / PSC2 traversed from top to bottom a current object to copy OC is extracted when the copy time from the longest running object TCOC ⁇ DRCOP;
  • the invention proposes a method for managing reorganizations in a set of indexed databases of an information system adapted to “online” reorganization and characterized in that it comprises at least the phases following operational:
  • the “online” reorganization management method is characterized in that the launch of the “online” reorganization is delayed to await a time window of reduced activity of the database. concerned.
  • the management method incorporates a phase for calculating the optimal time for launching an "online” reorganization according to the actual or expected activity of the information system. corresponding. More generally, the "online” and “offline” reorganization methods are combined so that for an OR object selected as the next object to be reorganized POR priority is given for the "offline” reorganization, l intervention of the “online” reorganization being required only after exceeding the Ds II threshold is thus possible to relieve the “offline” reorganization by “online” reorganizations when these are not too penalizing at the level of the quality of online services
  • the invention also relates to a method for managing "online" and "offline” reorganizations in a set of indexed databases, characterized in that for the same POR object priority is given for the "offline" reorganization, l 'online' reorganization intervention only required after exceeding the threshold Ds for the POR object under consideration.
  • Co * designates the hourly additional cost when the object is completely disorganized
  • c designates a machine parameter, the ratio of I / O access time by the size of the object Nbp
  • Ts denotes the arm movement time
  • Tl the latency time (1/2 arm turn) c (Ts + 3.TI) / Nbp
  • Ts in I / O designates the displacement time of the disk arm
  • Tl the latency time (1/2 turn of the arm)
  • V Ts / TI t * designates the Object re-reading rate, ie the average number of times an entry will be re-read
  • L denotes the proportion of lines accessed by sequential browsing over the number of lines created
  • S represents the mathematical sign Sigma (sum of the expressions f (x ⁇ ) for i index ranging from 1 to n)
  • bi represent the instantaneous values of D (rate of disorganization of the monotable space) during the last reorganizations of the n indexes
  • t * i represent the direct access rates through each index i.
  • the invention also relates to the application of the method of managing reorganizations in a set of indexed databases of an information computer system presented above in all of its variants to the reorganization of indexed databases of the space type. tables defined in the description below.
  • the invention also relates to computer systems of the information systems type comprising a set of indexed databases and the means suitable for implementing the method of managing the reorganizations presented above, of indexed databases, in particular of tablespace and / or index type databases
  • computer systems of the information systems type comprising a set of indexed databases and the means suitable for implementing the method of managing the reorganizations presented above, of indexed databases, in particular of tablespace and / or index type databases
  • FIG. 1 represents a flowchart corresponding to the method for managing the reorganizations of a set of indexed databases, in particular of the tablespace type, according to the invention
  • FIG. 2 represents a flowchart corresponding to the method for managing reorganizations and copies of a set of indexed databases, in particular of the table space type, according to the invention
  • FIG. 3 represents a flowchart detailing the operations of the phase of establishing a rapid planning reorganization of the method of FIG.
  • FIG. 4 represents a flowchart detailing the operations of the phase of establishing a rapid schedule for copying the method of FIG. 2;
  • FIG. 5A represents a flowchart corresponding to a method for reading an indexed database, in particular with a view to reorganizing the database, usable in the context of the invention;
  • FIG. 5B represents a flowchart corresponding to a method of reading the index of the indexed database, in particular with a view to reorganizing the index, usable in the context of the invention;
  • FIG. 6A represents a flowchart corresponding to a partial variant of the method of FIG.
  • FIG. 5A applied to the reading and unloading of the index of an indexed database of the table space type, in particular with a view to reorganizing the indexed database, usable in the context of the invention
  • FIG. 6B represents a flowchart corresponding to a partial variant of the method of FIG. 5B applied to the reading and unloading of the index of an indexed database of the tablespace type, in particular with a view to reorganizing the 'index of the indexed database, usable in the context of the invention
  • FIG. 7 represents a flowchart corresponding to a partial variant of the method applied to the reading and unloading of the indexed database of the table space type object of FIG. 6A, usable within the framework of the invention
  • FIG. 6B represents a flowchart corresponding to a partial variant of the method applied to the reading and unloading of the indexed database of the table space type object of FIG. 6A, usable within the framework of the invention
  • FIG. 6B represents a flowchart corresponding to a
  • FIG. 8A represents a flowchart corresponding to a method of reorganizing an indexed database of the table space type using the reading and unloading methods object of FIGS. 6A and 7, usable within the framework of the invention
  • FIG. 8B represents a flowchart corresponding to a method of reorganizing the index of the indexed database of the tablespace type object of FIG. 8A, method using the reading and unloading method object of FIG. 6B, usable within the framework of the invention
  • each line is made up of data fields called columns.
  • a key is a list of columns with ascending or descending order.
  • Each key is associated with an index.
  • a tablespace can contain one or more tables, each with specific columns.
  • multi-table table spaces can be treated like single-table table spaces provided that the tables and their indexes are processed in sequence.
  • Table spaces can be partitioned (divided into several parts or partitions) Each partition then being identical to the physical file bearing its number
  • a free data space and a free index space are provided, each consisting of empty pages distributed in the table space and in the index; the purpose of this distribution of empty pages between certain data pages and indexes is to allow additions and other updates of data lines or index keys near the corresponding pages and thus limit excessive disorganization.
  • each table space row is associated with a key-page RID pair index sheet
  • Each sheet page contains a contiguous set of key-RID pairs, that is to say that there is no couple outside the page which is between two pairs of the page.
  • the sheet pages are thus logically ordered by one any of their elements
  • the unitary reorganization of a database (and its index) consists in unloading the database, arranging its information lines in a desired order, for example alphabetical order, then reloading the rows once stored in the database by updating the indexes, if possible in a reorganized manner
  • Example of “offline” reorganization of indexed databases. in particular of the table space type Still by way of nonlimiting example, for the unitary reorganization of the indexed databases structured in rows and in particular the databases of the table space type, a reading (unloading) mode and a reorganization making it possible to significantly reduce the time necessary for the orderly reading of the indexed database (reading and possible continuous or discontinuous ordering) and / or for the reorganization of the indexed database
  • the LEC / BD / REORG / BD method is generally used as the method for reading indexed databases in which the data appears in the form of data lines: comprising the following operations (see FIG. 5A): [101 ] - Simultaneous and sequential reading of the index and rows of the database, BDD, with the loading of the indexes in a first buffer MX and the loading of the rows in a second buffer MT, [102] - Reading of indexes from buffer MX to buffer MT in an orderly fashion,
  • the LEC / BD / REORG / BD reading method allows, after sorting the FT2 file to give FT'2, to combine the two ordered files FT1 and FT'2 into a virtual file FTV serving as input to the reloading phase of the reorganization of the database
  • virtual file is meant a file which has no real existence, because this file is the theoretical product of the virtual fusion of two files, but which can be used on reloading as a real file in since the reloading program t both on the FT1 file and at the sorting FT'2 output (itself a virtual file generally called "sorting exit”) and operates the line-by-line merge instead of reading a single file
  • the expression virtual file more generally designates an entity on which one can operate the same functions as on a conventional sequential file (opening, reading or writing of a recording, closing) and which from the point of view of these functions behaves just like a classic batch file.
  • the method of reading databases LEC / BD / REORG / BD allows from a sequential type reading of the database to obtain an ordered virtual file of the data lines while minimizing the sorting step carried out on a partial intermediate file
  • the indexed database index reading method is used in which the data appears in the form of rows of data, the LEC / IND / REORG / IND method comprising the following operations (see Figure 5B).
  • the orderly reading operation of the index allows the direct extraction of a logically ordered index file FXl and a file of index to sort FX2.
  • the two ordered files FXl and FX'2 are merged into a virtual file FXV serving as input to the reloading phase of the reorganization of the index.
  • the duration of a sorting is more than proportional to the amount of information input, it is divided by at least 10. As regards the reading time, it remains brief because the operation of reading is carried out sequentially and simultaneously on the database and on the index
  • operation 208B constitutes a simplified unloading of indexes, in which only the RIDs of the pages extracted in logical sequences are transmitted and used for the reorganization of the table space.
  • the LEC / TABLE / REORG / TABLE reading and unloading method of the table space using the buffer MT is carried out by the following operations (see FIG. 7):
  • the REORG / TABLE method comprising the following operations (see FIG. 8A) is used as the unitary reorganization method of an indexed database organized in table space.
  • the global strategy includes the “online” and “offline” reorganizations.
  • the disorganization threshold is determined from which an “online” reorganization is profitable. If this threshold is reached without it being possible to reorganize the "offline” object (lack of availability in the "batch” window) the "online” reorganization is launched as soon as the update activity is low enough for this reorganization to be valid.
  • This "online” reorganization is done in a single operation on a copy of the object in service. Any updates that occurred during the reorganization operation are saved to an intermediate file processed at the end of the reorganization (the modified pages are identified by the time of the modification), the process being repeated for any new updates until 'to exhaustion.
  • the object once reorganized and updated can then be put back into service.
  • table spaces it is the use of sequential index scans (in English index scans) by the primary index (index determining the sorting criterion of the reorganization) which determines the reorganization of the spaces of tables.
  • a table space used only for direct access does not need to be reorganized because the space maps (in English space maps), the only ones used to determine the possibility of an insertion, are sufficiently few to be keep in the buffer pool.
  • indexes direct access (by vertical pointers) to the index is used both for reading and for updating (ie modification of the data field unless otherwise indicated). Its Entry / Exit time is determined by the fact that the pages representing the last two levels and which in most of the time must be read physically, are or are not close to each other on the disc. It is the positioning time for reading the page “c sheet” which determines the difference between a well or badly organized index.
  • Sequential browsing represents only a marginal cost compared to the concomitant reading of the table space, while having the same performance criterion as direct access since if two pages are close to a third they are relatively close to each other. The sequential route therefore does not intervene in determining the need for reorganization.
  • Dl the percentage of leaf pages located far from the non-leaf page which points to it.
  • the useful size of a Cl is close to 4 K for a table space and depends on the type of index and the number of sub-pages and the length of the keys for a type 1 index.
  • the typical size is the geometric mean (nth root of the product of n numbers) between the maximum size and the minimum size (tmg 2 : --- tmax.tmin)
  • the size of the RID is the minimum, the size of a single entry maximum.
  • the characteristics of the units to be taken into account are those which influence the Entry / Exit time for treatments and utilities:
  • the application profile must also be taken into account (this is the average number of an application event per unit of time, for example the time).
  • index scan sequential scanning of the index
  • S is the number of pages or size of the object, index included
  • D is the rate of disorganization;
  • c, d, e are machine constants (computer system);
  • q 1 if the object is an index, otherwise
  • q number of index +1;
  • U is the hourly average of the number of updates on the object, the updates being essentially modifications of fields in existing lines (without any real disorganization effect).
  • duration of an online reorganization can be very long (several hours for a first continuous reorganization phase of duration to) resulting in the provisional storage, during the first reorganization phase, of a first packet of the object updates.
  • Tr to + tl + t2
  • C Co + k.Co + k .Co + .. + k n .Co +
  • S denotes the size of the whole object in pages
  • r is the average number of lines per page of the whole
  • I denotes the number of insertions per hour, and t the time since the last reorganization.
  • each insertion costs n reads and 1 write if n is the number of index levels and each replay costs n reads. Assuming 3 index levels the access time corresponding to the last two levels will be:
  • Ts designating the arm movement time
  • Tl the latency time (1/2 arm turn).
  • Ts the additional access time cost per transaction
  • t * is the object's read rate, i.e. the average number of times an entry will be read. It is then possible to know the number of transactions as a function of I (number of insertions per hour), ie: (t * + 1) I.
  • the reorganization of an “offline” file consumes machine time which it is generally desirable to minimize in order to reduce the total cost of the operation.
  • the invention also proposes a management or scheduling method prepared in advance for the real-time execution of utility programs for reorganization (and / or copy images) so as to make the best use of the resources of the IT system including the “batch” window (maintenance window).
  • an information computer system comprising a set of indexed files or databases distributed in various objects real tables consisting of table space, table space partitions and indexes.
  • the “machine” capacities of the information system are divided into separate processing regions controlled in a unitary fashion by a control region.
  • a number of ordered tasks are assigned to each processing region and the necessary resources are allocated in virtual memories and peripherals (hard disks, printers, memories on external media, etc.).
  • assigns if possible to each processing region tasks of the same type such as for example for tasks generally executable in the "batch" window of reorganizations of files or databases (requiring lots of disk space) or image copies of files (requesting external output devices, tape drives, CD-ROM drives / writers, etc.).
  • operating systems quite often include a locking software device preventing the database from being put back into service before taking an image copy. This creates an interaction between the reorganization and copy schedules.
  • the schedules
  • the reorganization and copy schedules are made from priority lists of objects to be reorganized or copied, which will be processed in different processing regions reserved either for reorganization or for copying.
  • the scheduling method consists in generating in advance the real objects susceptible of reorganization instead of making combinations of objects in real time. The number of objects is greater for partitioned objects, but the priorities and therefore the logical order of reorganization sequences are calculated initially and rarely questioned. Therefore, the objects to be reorganized can be chained by decreasing priority. even if some are mutually exclusive
  • the copy uses other regions and can work on elementary objects.
  • the list of objects to be copied is therefore distinct from that of the objects to be reorganized with a possible link to establish whether an object to be copied is also to be reorganized or is part of an object to be reorganized
  • the process of scheduling or creating schedules can be summarized as follows, whether for copies or reorganizations: - determination or preselection of the objects to be treated as a priority by carrying out a rapid planning. - attempt to create an execution order list of treatments by placement in "retro-planning" of the preselected objects by increasing priorities in available treatment regions, which makes it possible to ensure the maximum time of start of treatment. Thus the last object selected in a region with success to complete the list becomes the next object to be treated as POC or POR. Otherwise, a new attempt to create a list will be made on other hypotheses of placements or assignments of processing regions.
  • This process is repeated at each end of corresponding processing (copying or reorganization) taking into account the real state of the objects at this time.
  • the reorganization planning algorithm searches for the real object whose priority is maximum (quick planning), the preselection and continues the allocation attempts on the same principle by examining the consequences on its initial selection (first object to reorganize).
  • the process will be partially re-executed each time the object selected first is modified (initial selection). Therefore if many tablespaces of the information system are partitioned, the number of questioning can become significant.
  • the copying planning algorithm searches for the elementary object with the highest priority (fast planning), and redoes a reorganization planning to check whether this object is planned or not for a reorganization in the "batch" window. If yes, the object is temporarily removed from the copy schedule
  • Quick planning consists of determining the objects to be treated by limiting the overall time (the load) to the sum of the durations available in the treatment regions.
  • the rapid planning of the copy consists in taking the objects in decreasing order of priorities so it is as simple to carry out as sorting an object. It provides a quick assessment of the remaining window time depending on the priority.
  • the rapid reorganization schedule takes into account the links between real objects:
  • the rapid reorganization schedule also works in descending order but it is able to question the elimination of large objects at the end of windows
  • the speed of fast schedules is due to the fact that they are limited in their backtracking and do not call into question the priorities of the objects.
  • the innermost loop is the one that accumulates the copy times by testing whether an object is both copied and reorganized. It is possible to introduce a cursor on the object to be copied, knowing that the complete path is only necessary if incompatibilities or questioning have been detected Priorities
  • Elementary objects are the smallest objects capable of processing (reorganization and / or copy) and for which we are able to measure a rate of disorganization These objects are used for the copy image and as intermediaries to generate reorganization objects
  • the elementary objects for which a copy image is to be made are chained (PRIOCOPY list) between them by decreasing priorities and increasing sizes
  • PRIOCOPIE All the elementary objects copied (including, subsequently, after their reorganization) have a stack pointer in increasing order of priorities which is valued by the copy schedule.
  • Real objects are those which can be reorganized without entailing the reorganization of other objects (eg tablespaces + index not taken in isolation).
  • Real objects are created from elementary objects (tablespaces, indexes and partitions).
  • the priority of each real object is the barycenter of the rates of disorganization of the components with their sizes for coefficients. It is recalled that the rate of disorganization of an object is given by the ratio number of insertions (lines or RID) on the size of the object. Real objects are ranked in the reorganization priority list (PRIOREORG list) by decreasing priorities
  • the priority being defined as the gain / cost ratio
  • the gain of an object is calculated as the product of its priority by the time of its reorganization.
  • the quick planning also uses a deletion list (SUPP list) allowing to postpone the deletion of objects until the confirmation of the necessity of these deletions by the selection of the current object incompatible with the deleted objects.
  • SUPP list a deletion list
  • the temporary information used by the quick planner is:
  • - a pointer to a list of its selected real sub-objects, a non-zero value indicating that part of the object is to be reorganized; - an indicator of reorganization of the entire table space; • an indicator for copying part of the table space;
  • Processing regions Each processing region is assigned to either copying or reorganization.
  • the search for the next object to reorganize or copy takes place when a region is freed by the end of the reorganization or the previous copy.
  • the planning therefore consists of valuing a pointer from the processing region to the next object to be processed. In order to allow anticipation, the estimated relative time for the end of the treatment in progress in the region is kept for each region, which is initially zero.
  • the rapid planning has the sole purpose of determining the objects that can be reorganized in the residual duration of the "batch" window and not of calculate the start time of reorganizations.
  • the only usable information is the selection indicator for each real object and the allocation indicators (planned part and pointers)
  • the PRR * rapid reorganization schedule includes the following six operational phases: Initialization Loop on objects
  • the operational phase of Initialization includes the following operations:
  • This Initialization phase beginning the PRR * process is notably launched at the end of a reorganization task (reorg + copy) in a corresponding processing region.
  • TRC "Batch” window duration x Nb of copy regions
  • TRR "Batch” window duration x Nb of reorganization regions.
  • the operational phase of questioning the previous choices includes the following operations: If selection possible
  • time remaining duration of reorganization of the current object - residual duration of reorganization
  • Place B in the SUPP deletion list Decrease the disputed event editor If the time to be saved is> 0
  • the operational phase of Checking the adequacy of the copy time includes the following operations: If selection possible
  • the operational phase of Selection of the current object comprises the following operations: If selection possible
  • the search for the next object to be copied is carried out each time a region is freed by a finished copy image or a region is available and a new object has been introduced following a reorganization.
  • Objects must be sorted by decreasing priorities and increasing sizes, objects from reorganizations being placed at the top of the list
  • the schedule is carried out from the lowest priority to the highest priority and it is possible that a large object (long copy) overflows from the copy region which has been allocated to it. This is acceptable as long as it has been ascertained that the object is in the region from the Residual Copy Time point of view and the fact that a valid planning technique would consist in removing from this region an object less priority already selected and place it in another region, which would not change the selection for that region
  • the pointer next object to copy is valued for each region, but for the reason mentioned above, it is recommended to redo the schedule each time, even initially when all the regions are available.
  • the Next Object to Copy process includes the following two operational phases: Selection of objects to copy Copy back-planning
  • the operational phase of Selecting objects to copy includes the following operations: Make a quick schedule for PPR * reorganization; Initialize the empty copy selection stacks;
  • Subtract the copying time of the sub-object from the remaining copying time Place the current sub-object at the top of the first copy selection stack.
  • the object to copy OC is not already in the first stack (the OC object is a sub-object; verification possible by testing the reorganized part of the global object in the event of partition), Subtract the time from copy of the sub-object of the remaining copy duration
  • the operational phase of Copy back-planning includes the following operations:
  • Duration of the region Duration of the window - estimated relative time of end of treatment in progress in the region
  • the search for the next object to be reorganized is carried out each time a region is freed by a completed reorganization. Priorities had to be calculated or corrected and the real objects sorted in descending order of priorities
  • the planning is carried out from the least priority to the highest priority
  • the available time of each reorganization region is divided into three parts:
  • the Next Object to Reorganize processing includes the following four operational phases: Copy back-planning Reorganization back-planning
  • the operational phase of Copy backplanning includes the following operations: Make a quick schedule
  • the operational phase of re-planning of reorganization includes the following operations: reorganization area:
  • the operational phase of Processing region identification includes the following operations: Search for a region with the minimum delay, If last delay for the current region> duration of the current region, Search for a region for which: [duration of the current region - last delay of the current region] is minimal and positive or zero, Otherwise, if no region is suitable,
  • the IDPOR and / or IDPOC identification process will resume, the PRIOREORG and PRIOCOPIE lists being continuously updated, until the reorganization and / or copy time allotted to the various reorganization and corresponding copy regions in the "Batch" window has been used up.
  • the management method according to the invention used for the “offline” reorganization of databases is also applicable to the reorganization of “real time” or “online” databases. ) according to a mixed method, the “offline” reorganization and the “online” reorganization not being mutually exclusive.

Landscapes

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

Abstract

La méthode de gestion des réorganisations ' hors ligne ' dans un ensemble de bases de données indexées, notamment de type espace de tables, d'un système informatique d'information comporte les opérations suivantes :(10) - Maintien en continu d'une liste PRIOREORG des objets à réorganiser par priorité décroissante; (20) - Exécution du processus IDPOR d'identification du prochain objet à réorganiser POR en l'absence d'événement de remise en cause RAZ et comportant les étapes suivantes : (21) - Etablissement d'un planning rapide de réorganisation PRR à l'aide de PRIOREORG et du temps opérationnel résiduel TRR et d'une liste de sélection SELECT d'objets OR;(22) - Etablissement d'un rétroplanning de réorganisation avec placement en mémoire LIFO des objets extraits de la liste SELECT ; (23) - Identification de la région de traitement RTR disponible pour réorganiser l'objet POR ; (24) - Inscription de POR au planning de la région identifiée ;(30) - Lancement réorganisation de POR dès libération de la région RTR en l'absence de tout évènement RAZ; et re-exécution du processus IDPOR.

Description

METHODE DE GESTION DES REORGANISATIONS DANS
UN ENSEMBLE DE BASES DE DONNEES INDEXEES
D'UN SYSTEME INFORMATIQUE
La présente invention concerne la réorganisation de bases de données gérées à l'aide d'un système informatique, plus particulièrement les bases de données indexées dans lesquelles un index, le plus souvent sous forme de table d'index, est utilisé pour accéder à un objet recherché, par exemple une ligne de la base de données. Ces bases de données peuvent être de très grande taille. Pour fixer les idées et sans caractère limitatif pour la présentation de l'invention la taille de ces bases de données de très grandes tailles peut aller de un million à quelques milliards de lignes. Ces bases de données sont en général enregistrées dans des mémoires de grande capacité, par exemple des mémoires à disque, chaque ligne de données étant adressée de façon appropriée. Les tailles considérables que peuvent avoir les bases de données requièrent souvent l'exploitation de ces dernières par partitions auxquelles sont associés des index de partitions spécifiques et/ou les index de bases de données complètes.
Il est capital, pour maintenir la capacité d'une base de données à être consultée par une connexion en ligne (on line) avec un temps d'accès aux données raisonnable, malgré l'effet retardateur du aux mises à jour pratiquées sur la base, de procéder à des réorganisations périodiques de cette base de données. La réorganisation est une étape essentielle dans l'entretien des bases de données
(et de leurs index). La réorganisation est faite hors ligne (off line) en général pendant la fenêtre de maintenance (fenêtre « batch ») et consiste à décharger la base de données, à ranger ses lignes d'information dans un ordre souhaité, par exemple l'ordre alphabétique, puis à recharger les lignes une fois rangées dans la base de données en mettant à jour les index, si possible de façon réorganisée.
Pour la suite de l'exposé on appellera indistinctement « objet à réorganiser » OR un objet susceptible de réorganisation d'un système d'information, en particulier la base de donnée seule, son ou ses index, l'association base de données et index, les partitions de la bases de données, leurs index associés (spécifiques ou non) et les associations partitions et leurs index.
De même pour la suite de l'exposé, on appellera système informatique d'information ou système d'information un système informatique complet (matériels et logiciels) adapté pour la gestion de bases de données et comportant au moins une base de données. On rencontre de tels systèmes notamment comme serveurs en ligne (on line) internes ou externes auxquels des utilisateurs se connectent pour consulter les bases de données correspondantes par l'intermédiaire de requêtes et autres demandes de recherche de données. Les capacités « machine » du système d'information (unités centrales éventuellement mises en réseau) sont en général divisées en régions de traitement distinctes pilotées de façon unitaire par une région de contrôle. A chaque région de traitement sont affectées un certain nombre de tâches ordonnées (programmes ou sous-programmes à exécuter) et sont allouées les ressources matérielles nécessaires en mémoires virtuelles et périphériques (disques durs, imprimantes, mémoires sur supports externes etc.). Par souci d'efficacité en exécution et en allocation de ressources matérielles et/ou logicielles on affecte si possible à chaque région de traitement des tâches de même type, telles que par exemple pour des tâches généralement exécutables dans la fenêtre de maintenance dite fenêtre « batch », des réorganisations de fichiers ou bases de données (demandant beaucoup d'espace de disque) ou des copies images de fichiers (demandant des périphériques de sortie externe, lecteurs de bandes magnétiques, lecteurs/graveurs de CD-ROM, etc.).
D'une façon générale les réorganisations de bases de données sont nécessaires pour éviter que les performances des transactions (lecture et/ou mise à jour) accédant aux bases de données ne se dégradent. Toutefois il n'est pas possible de maintenir tous les objets d'un système d'information en état de parfaite organisation parce que : i) les réorganisations consomment du temps et des ressources du système (processeurs, mémoire vive et mémoires sur disques); ii) des réorganisations trop fréquentes entraîneraient des coûts de réalisations supérieurs aux surcoûts générés par l'exploitation de bases de données faiblement désorganisées.
Une première étape du travail de gestion de la réorganisation d'un ensemble de bases de données consiste en l'élaboration d'un planning d'exécution des réorganisations. Ce planning est utilisé pour le lancement des réorganisations des bases de données hors ligne (off line) pendant la période de maintenance journalière de quelques heures prévue pour le système d'information (fenêtre « batch » ou fenêtre des exécutions groupées).
On connaît des outils logiciels susceptibles de générer le planning d'exécution des réorganisations à venir en fonction : • de la liste des objets à réorganiser,
- de la fréquence prédéterminée de réorganisation par objet,
- du niveau de désorganisation des objets mesuré par des techniques non documentées. Toutefois aucun des outils connus ne remet en cause le planning initial en fonction d'événements pouvant survenir pendant l'exécution des réorganisations planifiées. Accessoirement aucun de ces outils ne prétend procéder à une étude d'optimisation pour générer ce planning, notamment à partir des ressources matérielles et logicielles disponibles instantanément et/ou à partir des coûts de réorganisation et/ou de non-réorganisation ou en fonction de paramètres instantanés réels ou estimés des objets à réorganiser tels que leur taille, leur taux de désorganisation et leur temps de réorganisation
L'invention a pour but une gestion de la réorganisation d'un ensemble de bases de données indexées d'un système informatique d'information permettant d'améliorer les performances d'une configuration donnée du système d'information par une recherche d'optimisation continuelle, notamment du point de vue coûts et/ou des temps de réorganisation des réorganisations des bases de données (et/ou leurs partitions) et de leurs index
A cette fin, l'invention propose une méthode de gestion des réorganisations dans un ensemble de bases de données indexées d'un système informatique d'information adaptée à la réorganisation « hors ligne » dans au moins une région de traitement de réorganisation du système et comportant les phases opérationnelles suivantes (voir figure 1)
(10) - Création et maintien par mise à jour en continu d'une liste PRIOREORG des objets à réorganiser par priorité décroissante fonction de l'état de désorganisation des objets à réorganiser ;
(20) - Exécution du processus IDPOR d'identification du premier ou prochain objet à réorganiser POR avec, à chaque événement RAZR=1 interne au système pour lequel la sélection du premier ou prochain objet à réorganiser doit être remise en cause, interruption et remise à zéro et nouvelle exécution du processus IDPOR, lequel processus comportant les étapes suivantes
(21) - Etablissement d'un planning rapide de réorganisation PRR à l'aide de la liste PRIOREORG et du temps opérationnel résiduel disponible TRR dans l'ensemble des régions de réorganisation et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet;
(22) Etablissement d'un rétroplanning de réorganisation dans lequel pour tout objet courant à réorganiser OR extrait de la liste SELECT/OR par priorité croissante pour favoriser le traitement avancé des objets de plus grandes tailles possibles, on calcule pour chaque région de réorganisation le dernier délai de la région DDRR, représentant dans la fenêtre « batch » allouée à la réorganisation « hors ligne » le temps minimal nécessaire à la réorganisation de l'objet courant OR, égal dans le cas présent à la durée de temps consommé DCRR plus le temps de réorganisation de l'objet courant DROR;
(23) - Identification de la région de traitement RTR de l'objet courant OR par adéquation optimisée entre la durée de traitement disponible dans ladite région DRR avec la durée de traitement DROR nécessaire pour la réorganisation de l'objet OR avec DRR - DDRR minimal <0 ;
(24) - Inscription de l'objet courant OR comme prochain objet à réorganiser POR au planning de la région identifiée en valorisant le pointeur POR correspondant à l'adresse de l'objet courant à réorganiser et en augmentant la durée de temps consommé DCRR dans la région du temps de la réorganisation DROR
(30) - Lancement de la réorganisation de l'objet POR dès que la région de traitement de réorganisation RTR identifiée est libérée en l'absence de tout événement RAZR=1 survenu entre temps ; Remise à zéro et nouvelle exécution du processus IDPOR
Ainsi l'introduction dans la méthode de gestion selon l'invention du principe même du planning rapide de réorganisation PRR (dont le temps machine est minimal pour permettre des réactualisations fréquentes sans véritable pénalisation) et du principe de la réactualisation permanente du planning rapide de réorganisation PRR permet de prendre en compte immédiatement l'évolution du système d'information complet et des ses principaux paramètres (taux instantané de désorganisations des objets à réorganiser, allongement de la durée d'une réorganisation par rapport à la durée estimée, libération d'une région de traitement, fin d'une tâche de réorganisation, etc ) pour modifier les priorités des réorganisations et optimiser le lancement de celles-ci. A côté des réorganisations de fichiers tels que bases de données les copies des fichiers modifiés constitue un impératif de sécurité dans le domaine de l'exploitation de systèmes informatiques En effet pour des raisons de sécurité informatique certains systèmes d'information utilisés pour la gestion d'un ensemble de bases de données incorporent dans leur ensemble de logiciels d'exploitation un dispositif de verrouillage de la remise en service d'une base de données réorganisée avant la prise de la copie de sauvegarde correspondante.
Selon un premier mode d'exécution de la méthode de gestion selon l'invention l'ordre optimal des réorganisations est coordonné avec l'ordre des copies de sauvegarde d'objets du système d'information en tenant compte des réorganisations en cours ou juste effectuées Selon une variante avantageuse l'ordre des copies de sauvegarde est modifié par l'exécution en première priorité, pour au moins un objet à réorganiser OR, de la copie dudit objet OR au plus tôt en fin de traitement de réorganisation
Pour ce faire, la méthode de gestion des réorganisations selon l'invention est globalisée pour gérer d'une part les réorganisations, d'autre part les copies sachant que pour des raisons d'optimisation on a la faculté de découper les objets à traiter en partitions jusqu'aux plus petites parties d'objets à traiter possibles pour chaque type de traitement. Il en résulte que la liste et les objets à copier peuvent être différents de la liste et des objets à réorganiser.
Par ailleurs en ce qui concerne les copies, on distingue généralement trois types de copie, la copie en continu ou copie « journal » (en anglais « log »), la copie incrémentale qui ne prend que les modifications apportées aux fichiers et la copie totale ou copie image. Dans le cadre de la présente invention, sont concernées principalement les copies images et accessoirement les copies incrémentales
D'une façon silimaire à ce qui a été mis en place pour les réorganisations, la méthode de gestion des réorganisations et des copies comporte une phase de création et de maintien d'une liste PRIOCOPIE de priorité des objets à copier (en fonction du temps passé depuis la dernière copie de chaque objet à copier OC) et l'établissement d'un planning rapide de copie, sachant que certains objets OR juste réorganisés (par exemple une base de données) sont déverrouillés avant remise en ligne par une prise de copie image; pour ce faire, on choisit dans le cadre de la présente invention de copier ces objets en première priorité II en résulte une double interaction entre le planning rapide de copie PPC et le planning rapide de réorganisation PRR* (voisin du planning PRR mais modifié en conséquence pour intégrer la composante copie), pour le premier, PPC, par la priorité première donnée à certaines ou à toutes les copies après réorganisations et pour le second, PRR*, par l'allongement du temps total de réorganisation par addition au temps machine réel de réorganisation d'un temps d'attente (aussi appelé temps gaspillé) correspondant au temps de copie de l'objet juste réorganisé.
A cette fin, l'invention propose une méthode globale de gestion des réorganisations d'un ensemble de bases de données indexées d'un système informatique d'information adaptée à la réorganisation « hors ligne » intégrant la gestion des copies et comportant les phases opérationnelles suivantes (voir figure 2) : (40) - Création et maintien par mise à jour en continu :
d'une liste PRIOREORG des objets à réorganiser par priorité décroissante fonction de l'état de désorganisation des objets à réorganiser ; et
- d'une liste PRIOCOPIE des objets à copier par priorité décroissante fonction de l'ancienneté des dernières copies des objets à copier (50) - Surveillance en continu de l'apparition dans le système d'information de tout événement :
- RAZR=1 pour lequel la sélection du premier ou prochain objet à réorganiser POR doit être remise en cause, notamment une fin d'une tâche de réorganisation dans une région de traitement de réorganisation et/ou la libération d'une zone de traitement pour la réorganisation ou la copie ; et/ou
- RAZC=1 pour lequel la sélection du premier ou prochain objet à copier POC doit être remise en cause, notamment une fin d'une tâche de copie dans une région de traitement de copie, une copie prioritaire en fin de réorganisation et/ou la libération d'une zone de traitement pour la réorganisation ou la copie, avec pour tout événement RAZR≈l, lancement de l'exécution du processus IDPOR d'identification du premier objet à réorganiser POR ou, si le processus IDPOR est en cours d'exécution, interruption et nouveau lancement du processus IDPOR ; et/ou pour tout événement RAZC≈l, lancement de l'exécution du processus IDPOC d'identification du premier objet à copier POC ou, si le processus IDPOC est en cours d'exécution, interruption et nouveau lancement du processus IDPOC ; • le processus IDPOR comportant les opérations suivantes
(51) - Etablissement d'un planning rapide de réorganisation PRR* à l'aide de la liste PRIOREORG et du temps opérationnel de réorganisation résiduel disponible TRR dans l'ensemble des régions de réorganisation et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet; (52) - Etablissement d'un planning rapide de copie PRC à partir de la liste
SELECT/OR, puis de la liste PRIOCOPIE et dans la limite du temps opérationnel de copie résiduel disponible TRC dans l'ensemble des régions de copie, d'une liste de sélection SELECT/OC en mémoire de type LIFO ou pile d'objets à copier OC empilés par priorités décroissantes; (53) • Etablissement d'un rétroplannmg de copie dans lequel pour tout objet courant à réorganiser OR extrait de la liste SELECT/OR par priorité croissante, on calcule pour chaque région de copie le temps à réserver TCR pour la copie de l'objet OR après réorganisation ;
(54) - Etablissement d'un rétroplannmg de réorganisation dans lequel pour tout objet courant à réorganiser OR extrait de la liste SELECT/OR par priorité croissante pour favoriser le traitement avancé des objets de plus grandes tailles possibles, on calcule pour chaque région de réorganisation le dernier délai de la région DDR, représentant dans la fenêtre « batch » allouée à la réorganisation « hors ligne » le délai minimal nécessaire à la réorganisation de l'objet courant OR, selon une formulation distincte si une copie de l'objet OR en fin de réorganisation doit être faite ou non;
(55) - Identification de la région de traitement RTR de l'objet courant à réorganiser OR par adéquation optimisée entre la durée de traitement disponible dans ladite région DRR avec la durée de traitement DROR nécessaire pour la réorganisation de l'objet courant OR avec DRR - DDL minimal <0 sans copie à faire ou avec valeur absolue de DRR - DDL minimal et DROR+DCOR < DRR si copie à faire;
(56) - Inscription de l'objet courant à réorganiser OR comme prochain objet à réorganiser POR au planning de la région identifiée en valorisant le pointeur POR correspondant à l'adresse de l'objet courant OR, en augmentant la durée de temps consommé DCRR dans la région du temps de la réorganisation DROR et recalculant la durée gaspillée dans la région de réorganisation DGRR du fait des copies d'objets OR en fin de réorganisation. (60)- Lancement, en l'absence de tout événement de remise à zéro RAZR=1 survenu entre temps, dès qu'une région de traitement de réorganisation RTR identifiée est disponible, de la réorganisation de l'objet POR ; Remise à zéro et nouvelle exécution du processus IDPOR ; et, le processus IDPOC comportant les opérations suivantes
(51) - Etablissement d'un planning rapide de réorganisation PRR* à l'aide de la liste PRIOREORG et du temps opérationnel de réorganisation résiduel disponible TRR et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet; (52) • Etablissement d'un planning rapide de copie PRC à partir de la liste
SELECT/OR, puis de la liste PRIOCOPIE et dans la limite du temps opérationnel de copie résiduel disponible TRC, d'une liste de sélection SELECT/OC en mémoire de type LIFO ou pile d'objets OC empilés par priorités décroissantes;
(53') - Etablissement d'un rétroplanning de copie avec détermination des durées de copie disponibles en région copie, dépilage de la liste SELECT/OC de haut en bas et recherche d'une région copie par adéquation entre la durée copie disponible et la durée copie de l'objet courant à copier OC de façon à copier les objets les plus grands possibles et marquage de l'origine de réorganisation ou non de l'objet à copier ; suivi de - l'identification de la région de traitement RTC de l'objet à copier par adéquation entre la durée de traitement disponible dans ladite région avec la durée de traitement nécessaire pour la copie de l'objet courant OC; suivie de - l'inscription de l'objet courant OC comme le prochain objet à copier POC au planning de la région RTC identifiée en valorisant le pointeur POC correspondant à l'adresse de l'objet OC et en diminuant la durée de traitement disponible du temps de la copie de l'objet OC retenu comme POC ; (60')- Lancement, en l'absence de tout événement de remise à zéro RAZC≈l survenu entre temps, dès qu'une région de traitement de copie TRC identifiée est disponible, de la copie de l'objet POC; Remise à zéro et nouvelle exécution du processus IDPOC Bien entendu sans sortir du cadre de l'invention, il existe dans des variantes de la méthode de l'invention certains cas d'objets à réorganiser OR pour lesquels la copie juste après réorganisation n'est pas nécessaire Dans ces cas et pour ces objets particuliers les phases opérationnelles ci-dessus sont modifiées en conséquence. En particulier dans une recherche continuelle d'optimisation, la méthode gestion selon l'invention dans une de ses variantes intègre dans les phases finales de processus IDPOR d'un objet OR une phase de recherche d'un ou plusieurs objets à réorganiser OR sans copie OR dans la liste SELECT/OR ou à défaut dans la liste PRIOREORG susceptibles d'être réorganisés dans la région de traitement RTR correspondante pendant l'intervalle du temps d'attente de la copie de l'objet OR après réorganisation Avantageusement la phase (51) d'Etablissement d'un planning rapide de réorganisation PRR* comporte les opérations suivantes (voir figure 3) : (51 1) - Initialisation : dans laquelle sont notamment annulés les indicateurs de sélection des objets OR, mitialisé le compteur-limiteur de remises en causes, les temps résiduels de copie TRC et de réorganisation TRR et la durée minimale E de réorganisation et copte d'un objet OR ; (512) - Boucle sur objets : dans laquelle notamment pour tout objet réel OR de la liste PRIOREORG pris dans l'ordre décroissant jusqu'à ce que TRR < E, une marque de
'sélection possible' de l'objet est posée; (513)- Elimination des intersections d'objets : dans laquelle notamment sont éliminés de la 'sélection possible' les objets réels OR parties d'espaces de tables également appelés objets globaux déjà sélectionnés en tout ou partie; (514) Remise en cause des choix précédents : dans laquelle notamment sont éliminés de la 'sélection possible' les objets OR dont le temps total de réorganisation et copie est supérieur au temps de réorganisation résiduel TTR et à défaut dans laquelle l'objet courant OR et les objets OR déjà sélectionnés dans la liste SELECT/OR sont soumis à un processus d'optimisation en fonction du gain de réorganisation avec replacement d'un objet déjà sélectionné par l'objet en cours avec essais, dans la limite du terme du compteur- miteur, de combinaisons successives tendant à retenir pour être sélectionné au final dans SELECT/OR des objets de plus grand gain de réorganisation possible et à les associer aux autres objets OR de la 'sélection possible' de façon à ce que le temps total des réorganisations de tous les objets OR retenus soit inférieur mais le plus proche possible du temps résiduel de réorganisation TRR (515) - Vérification de la suffisance du temps copie disponible dans le temps résiduel de copie TRC pour chaque objet OR en passe d'être finalement sélectionné pour la réorganisation compte tenu de la priorité de réorganisation de l'objet OR par rapport aux objets à copier en préalable du fait de leurs priorités copie supérieures. (516) - Sélection de l'objet courant dans la liste SELECT/OR : dans laquelle notamment sont positionnés les indicateurs de l'objet courant et de l'objet global associé, annulés éventuellement les indicateurs du ou des objets OR désélectionnés et diminuer TRR et TRC des temps respectifs de réorganisation et de copie Encore avantageusement, ladite phase (52) d'établissement d'un planning rapide de copie PRC comporte les opérations suivantes (voir figure 4) : (521) - Initialisation : au sortir d'un planning de réorganisation PRR* et dans laquelle sont notamment vidées les piles de sélection de copie PSC1 et PSC2, mitialisés le compteur-limtteur de remises en causes, le temps résiduel de copie TRC et la durée minimale EC de copie d'un objet à copier OC ;
(522) - Inspection des régions de réorganisation : Pour toutes les régions, si région active, et si image copie de l'objet en cours de réorganisation à faire et/ou si image copie de tout objet OR de la liste SELECT/OR pris dans l'ordre des priorités décroissantes à faire: pour tout sous-objet susceptible d'être copié séparément, notamment une partition, soustraction du temps de copie du sous-objet de TRC et placement du sous-objet en haut de la première pile PSC1 ;
(523) - traitement de la liste des objets à copier PRIOCOPIE : dans laquelle notamment pour tout objet à copier OC de la liste PRIOCOPIE pris dans l'ordre décroissant jusqu'à ce que TRC < EC et absent de PSC1, soustraction du temps de copie du sous-objet OC de TRC et placement du sous-objet OC en haut de la seconde
(524) - Empilage des piles de sélection : dans laquelle la pile PSC1 est superposée à la pile PSC2 pour constituer la liste SELECT/OC.
Encore avantageusement,- ladite phase (53) d'établissement d'un rétroplannmg de copie dans le processus IDPOR comporte les opérations suivantes (531) Initialisation des régions de copie : dans laquelle au sortir d'un planning de réorganisation pour toutes les régions de copie, la durée consommée de la région DCRC est mise à zéro,
(532) Détermination du temps de copie à réserver TCR : dans laquelle pour tout objet réel de la liste SELECT/OR parcourue dans l'ordre des priorités croissantes et pris comme objet à réorganiser courant OR,
-le temps à réserver pour copier TCR l'objet réel courant OR est mis à zéro ;
-Si l'image copie de tout objet OR de la liste SELECT/OR pris dans l'ordre des priorités croissantes doit être faite: pour tout sous-objet susceptible d'être copié séparément, notamment partition, on recherche une région copie dont la durée consommée DCRC est minimale, on ajoute le temps de copie du sous-objet à la durée consommée de la région courante DCRC et on valorise le temps à réserver TCR pour copie de l'objet courant = maximum (du temps à réserver TCR pour copie de l'objet courant et de la durée consommée dans la région DCRC). Encore avantageusement, la phase de rétroplannmg de réorganisation (54) dans le processus IDPOR comporte les opérations suivantes : (541) - Initialisation : dans laquelle pour toute région de réorganisation,
- Durée de la région DRR = Durée de la fenêtre 'batch' DFB moins l'heure relative estimée de fin du traitement de réorganisation en cours dans la région HRFR - Durée consommée dans la région DCRR = 0
- Durée gaspillée dans la région DGRR = 0
- Pointeur premier objet à réorganiser de la région courante = 0
(542) - Détermination du dernier délai de la région de réorganisation DDRR : dans laquelle pour tout objet réel OR sélectionné de la liste SELECT/OR dans l'ordre des priorités croissantes .
Pour chaque région si l'image copie de l'objet courant OR à faire, calcul du dernier délai de la région DDRR = durée de réorganisation de l'objet courant DROR + max [temps à réserver pour copie de l'objet courant TCR, (durée consommée de la région DCRR + durée gaspillée de la région DGRR)] ; - Sinon, calcul du dernier délai de la région DDR = durée consommée de la région
DCRR + max [(durée de réorganisation de l'objet courant DROR, durée gaspillée de la région DGRR)]
Encore avantageusement la phase d'identification de la région de réorganisation RTR (55) comporte les opérations suivantes : Selon le type d'objet courant à réorganiser OR
(551) - Recherche de la région de traitement de réorganisation susceptible d'accueillir de façon optimale un objet à réorganiser OR sans copie : comportant - la recherche d'une région dont le dernier délai DDRR est minimal, et si dernier délai de la région courante DDR est supérieur à la durée de la région courante DRR, la recherche d'une région pour laquelle : [durée de la région courante DRR moins le dernier délai de la région courante DDRR] est minimale et positive ou nulle ; sinon (552) - Recherche de la région de réorganisation susceptible d'accueillir de façon optimale un objet à réorganiser OR avec copie : comportant
- la recherche d'une région telle que : [durée de la région DRR moins dernier délai de la région courante DDRR] est minimale en valeur absolue, et [durée de réorganisation DROR + temps de copie objet courant TCR] < durée de la région DRR Encore avantageusement la phase d'inscription de l'objet OR au planning de la région de réorganisation RTR (56) comporte les opérations suivantes : (561) - Inscription de l'objet courant OR comme prochain objet à réorganiser POR: dans laquelle si image copie de l'objet courant OR à faire ou durée gaspillée de la région courante = 0, on valorise le pointeur premier objet à réorganiser POR de la région courante = adresse de l'objet courant,
(562) - mise à jour DCRR et DGRR : dans laquelle on ajoute la durée de réorganisation de l'objet courant DROC à la durée consommée de la région courante DCRR, et on valorise la durée gaspillée de la région courante DGRR ≈ dernier délai de la région courante DDRR - durée consommée de la région courante DCRR. Toujours avantageusement la phase (53') d'établissement d'un rétroplannmg de copie dans le processus IDPOC comporte les opérations suivantes: (531 ') Initialisation des régions de copie : dans laquelle pour toutes les régions, •la durée de région DRCOP est valorisée à la durée fenêtre « batch » DFB moins l'heure relative estimée de fin de traitement copie en cours HRFC, -la durée consommée de la région DCRCOP est mise à zéro, le pointeur du premier objet à copier POC de la région courante est mis à zéro (532') Dépilage et identification du prochain objet à copier POC : Dans la laquelle, -Pour tout objet de la pile PSC1/PSC2 parcourue de haut en bas un objet courant à copier OC est extrait lorsque le temps de copie de l'objet courant TCOC < DRCOP la plus longue ;
On cherche pour identifier la région de traitement copie une région dont la durée consommée DCRC est minimale ; dans l'affirmative si le temps de copie de l'objet courant TCOC > DRCOP - DCRCOP on cherche une région pour laquelle DRCOP - DCRCOP - TCOC minimale, positive ou nulle, Si aucune région ne convient, on choisit une région à copier pour laquelle DRCOP - DCRCOP - TCOC est négative et minimale en valeur absolue et pour laquelle TCOC < DRCOP ; -Si l'objet courant appartient à la seconde pile PSC2, soit un objet à copier non issu d'une réorganisation, le pointeur de l'objet POC pour la région courante choisie est valorisé à l'adresse de l'objet courant OC de façon à inscrire l'objet POC au planning de la région de traitement copie RTC identifiée ; et -Pour terminer, on ajoute la durée copie TCOC à la durée consommée de la région courante DCRCOP.
Selon les diverses variantes de mise en oeuvre de la méthodes de gestion de réorganisations « hors ligne » dans des régions de traitement il est possible de choisir les événements internes au système remettant en cause la sélection des objets POR ou POC les plus appropriés aux processus de sélection utilisés
En particulier les événements internes au système RAZR=1 et RARC=1 entraînant la remise en cause de la sélection des objets POR ou POC sont notamment constitués respectivement par la fin d'une tâche de réorganisation dans une région de traitement de réorganisation pour les objets POR ou par la fin d'une tâche de copie dans une région de traitement de copie pour les objets POC, une copie prioritaire en fin de réorganisation et/ou la libération d'une zone de traitement pour les objets POR et POC.
Parallèlement ou non à la mise en œuvre la méthode adaptée aux réorganisations
« hors ligne », l'invention propose une méthode de gestion des réorganisations dans un ensemble de bases de données indexées d'un système d'information adaptée à la réorganisation « en ligne » et caractérisée en ce qu'elle comporte au moins les phases opérationnelles suivantes:
- une phase d'analyse instantanée d'au moins un objet à réorganiser OR parmi les objets susceptibles de réorganisation, notamment bases de données, partitions et/ou index, et d'estimation du surcoût associé au niveau de désorganisation de l'objet à réorganiser OR;
- une phase d'estimation instantanée du coût de la réorganisation en ligne en fonction de la taille dudit objet à réorganiser OR et du taux de désorganisation dudit objet OR; et
- une phase de détermination du seuil Ds de désorganisation minimal de l'objet à réorganiser OR au dessus duquel seuil la réorganisation « en ligne » peut être lancée pour cet objet OR et le, cas échéant, du lancement effectif de cette réorganisation en ligne, le seuil Ds correspondant sensiblement au minimum du coût total du surcoût estimé de la désorganisation de l'objet OR et du coût estimé de la réorganisation pour l'objet OR considéré. Selon une première variante, la méthode de gestion des réorganisations « on line » est caractérisée en ce que le lancement de la réorganisation « en ligne » est retardé pour attendre une fenêtre temporelle d'activité réduite de la base de données concernée. Selon une variante particulière de l'invention la méthode de gestion incorpore une phase de calcul de l'heure optimale de lancement d'une réorganisation «en ligne» (on line) en fonction de l'activité réelle ou prévue du système d'information correspondant. D'une façon plus globale les méthodes des réorganisations « en ligne » et « hors ligne » sont combinées de façon à ce que pour un objet OR sélectionné comme prochain objet à réorganiser POR la priorité est donnée pour la réorganisation « hors ligne », l'intervention de la réorganisation « en ligne » n'étant requise qu'après dépassement du seuil Ds II est ainsi possible de soulager la réorganisation « hors ligne » par des réorganisations « en ligne » lorsque ces dernières ne sont pas trop pénalisantes au niveau de la qualité des services en ligne
L'invention concerne également une méthode de gestion des réorganisations « en ligne » et « hors ligne » dans un ensemble de base de données indexées caractérisée en ce que pour un même objet POR la priorité est donnée pour la réorganisation « hors ligne », l'intervention de la réorganisation « en ligne » n'étant requise qu'après dépassement du seuil Ds pour l'objet POR considéré.
Selon une première version de la méthode de gestion des réorganisations « on line » utilisée pour la réorganisation des bases de données indexées de type espace de tables, la méthode est caractérisée en ce que pour un objet à réorganiser OR, le seuil Ds est défini par une approximation donnée par la formule F5' suivante: R = Ds2 r Co* / 2.I.C = 1 lorsque que U, moyenne horaire du nombre de mises à jour sur l'objet OR, est faible, et dans laquelle : r désigne le nombre moyen de lignes ou clé-RID par page de l'objet entier, I désigne le nombre d'insertions de lignes (ou de clé-RID pour les index) à l'heure dans l'objet OR,
Co* désigne le surcoût horaire lorsque l'objet est totalement désorganisé c désigne un paramètre machine, le rapport du temps d'accès E/S par la taille de l'objet Nbp Selon une variante de la méthode de gestion des réorganisations « on line » précédente et utilisée pour la réorganisation des index, le seuil Dsl est défini pour un index par une approximation donnée par la formule F7' suivante : R= Dsl2 r (t*+l)Nbp.V / I2(V+3)] = 1 lorsque que U, moyenne horaire du nombre de mises à jour sur l'index, est faible, et dans laquelle :
Ts désigne le temps de déplacement de bras, Tl le temps de latence (1/2 tour du bras) c = (Ts+ 3.TI)/Nbp où Ts en E/S désigne le temps de déplacement du bras du disque, et Tl le temps de latence (1/2 tour du bras) et V = Ts/TI t* désigne le taux de relecture de l'objet, c'est à dire le nombre moyen de fois qu'une entrée sera relue Selon une autre variante de la méthode de gestion des réorganisations « en ligne » précédente et utilisée pour la réorganisation des bases de données indexées de type espace de tables monotable à n index, caractérisé en ce que le seuil DsT est défini pour un espace monotable par une approximation donnée par la formule F13' suivante R = r.Nbp[DsT2.L (V+l) + V.S(DsT2-bi2) (t*i+l)/(2V+6) = 1 lorsque que U, moyenne horaire du nombre de mises à jour sur l'espace monotable, est faible, et dans laquelle :
L désigne la proportion de lignes accédées par parcours séquentiel sur le nombre de lignes créées, S représente le signe mathématique Sigma (somme des expressions f(xι) pour i index allant de 1 à n), bi représentent les valeurs instantanées de D (taux de désorganisation de l'espace monotable) lors des dernières réorganisations des n index, et t*i représentent les taux d'accès directs au travers de chaque index i. L'invention concerne également l'application de la méthode de gestion des réorganisations dans un ensemble de bases de données indexées d'un système informatique d'information présentée ci-dessus dans toutes ses variantes à la réorganisation des bases de données indexées de type espace de tables défini dans la description ci après. L'invention concerne également les systèmes informatiques de type systèmes d'information comportant un ensemble de bases de données indexées et les moyens adaptés pour la mise en œuvre de la méthode de gestion des réorganisations présentée ci-avant, de base de données indexées, notamment de bases de données de type espace de tables et/ou d'index D'autres caractéristiques et avantages de la méthode de gestion globale des réorganisations de bases de données indexées et de ses applications à la réorganisation des bases de données indexées notamment du type espace de tables selon la présente invention apparaîtront à la lecture de la description qui va suivre en référence aux dessins ci-joints d'un mode de mise en œuvre préférentiel de l'invention et présenté à titre d'exemple non limitatif
PRESENTATION SOMMAIRE DES DESSINS la figure 1 représente un organigramme correspondant à la méthode de gestion des réorganisations d'un ensemble de bases de données indexées, notamment de type espace de tables, selon l'invention; la figure 2 représente un organigramme correspondant à la méthode de gestion des réorganisations et des copies d'un ensemble de bases de données indexées, notamment de type espace de tables, selon l'invention; la figure 3 représente un organigramme détaillant les opérations de la phase d'établissement d'un planning rapide de réorganisation de la méthode de la figure
2 ; la figure 4 représente un organigramme détaillant les opérations de la phase d'établissement d'un planning rapide de copie de la méthode de la figure 2 ; la figure 5A représente un organigramme correspondant à une méthode de lecture d'une base de données indexée, notamment en vue de la réorganisation de la base de données, utilisable dans le cadre de l'invention; la figure 5B représente un organigramme correspondant à une méthode de lecture de l'index de la base de données indexée, notamment en vue de la réorganisation de l'index, utilisable dans le cadre de l'invention; la figure 6A représente un organigramme correspondant à une variante partielle de la méthode de la figure 5A appliquée à la lecture et au déchargement de l'index d'une base de données indexée de type espace de tables, notamment en vue de la réorganisation de la base de données indexée, utilisable dans le cadre de l'invention; la figure 6B représente un organigramme correspondant à une variante partielle de la méthode de la figure 5B appliquée à la lecture et au déchargement de l'index d'une base de données indexée de type espace de tables, notamment en vue de la réorganisation de l'index de la base de données indexée, utilisable dans le cadre de l'invention; la figure 7 représente un organigramme correspondant à une variante partielle de la méthode appliquée à la lecture et au déchargement de la base de données indexée de type espace de tables objet de la figure 6A, utilisable dans le cadre de l'invention; la figure 8A représente un organigramme correspondant une méthode de réorganisation d'une base de données indexée de type espace de tables utilisant les méthodes de lecture et de déchargement objet des figures 6A et 7, utilisable dans le cadre de l'invention; et la figure 8B représente un organigramme correspondant une méthode de réorganisation de l'index de la base de données indexée de type espace de tables objet de la figure 8A, méthode utilisant la méthode de lecture et de déchargement objet de la figure 6B, utilisable dans le cadre de l'invention
La description de la méthode de gestion globale de réorganisation d'un ensemble de bases de données indexées qui va suivre, présentée à titre d'exemple non limitatif, se rapporte à une application particulière de l'invention aux bases de données indexées structurées en espaces de tables ('tablespace' en anglais), susceptibles d'atteindre de très grandes tailles (jusqu'à quelques milliards de lignes) et pour lesquelles le maintien d'une bonne organisation, notamment par une réorganisation rapide et efficace, est capital du point de vue performances. Exemple de bases de données indexées, les bases de données de type espace de table : Une base de donnée indexée structurée en espace de tables est composée d'un ou plusieurs fichiers formés de blocs de taille unique ou pages numérotées en séquence à partir de zéro. Du point de vue logique on considère qu'il n'existe qu'un seul fichier composé de la succession de chacun des fichiers physiques numérotés 1, 2, etc. . Parmi ces pages on trouve les pages de contrôle et les pages de données adaptées pour contenir des lignes, chaque ligne étant identifiée de façon unique par son RID composé du numéro de page et du numéro d'ordre à l'intérieur de la page. Chaque ligne est composée de champs de données appelées colonnes. Une clé est une liste de colonnes ayant un ordre croissant ou décroissant A chaque clé est associée un index. Un espace de tables peut contenir une ou plusieurs tables présentant chacune des colonnes spécifiques. Toutefois les espaces de tables multi-tables peuvent être traités comme les espaces de tables mono-table à condition de traiter les tables et leurs index en séquence.
Les espace de tables peuvent être partitionnés (divisés en plusieurs parties ou partitions) Chaque partition étant alors identique au fichier physique portant son numéro
A la création de la base de données, il est prévu un espace libre de données et un espace libre d'index constitués chacun de pages vides reparties dans l'espace de tables et dans l'index; le but de cette répartition de pages vides entre certaines pages de données et index est de permettre des ajouts et autres mises à jour de lignes de données ou de clés d'index à proximité des pages correspondantes et de limiter ainsi les désorganisations trop importantes. On considère qu'un espace de tables est bien organisé lorsque:
- l'espace libre de données (pages vides) est distribué dans l'espace de tables selon les paramètres d'origine ;
- les lignes sont rangées par ordre de RID dans le même ordre que la première clé dite clé 'primaire' L'index est composé comme l'espace de tables d'un ou plusieurs fichiers formés de pages Les pages sont de plusieurs type, en particulier pages de contrôle, pages 'feuilles' et pages de niveau supérieur. Les pages feuilles contiennent des clés et pour chaque clé le ou les RID de la ou des lignes d'espace de tables dont la clé correspondante a la même valeur Ainsi à chaque ligne d'espace de tables est associé un couple clé-RID de page feuille de l'index
Chaque page feuille contient un ensemble contigu de couples clé-RID, c'est à dire qu'il n'existe aucun couple extérieur à la page qui soit compris entre deux couples de la page Les pages feuilles sont ainsi logiquement ordonnées par l'un quelconque de leurs éléments
En cas de partitions d'espace de tables, il en sera de même pour son index primaire, une partition d'index étant associée à chaque partition de l'espace de tables.
On considère qu'un index est bien organisé lorsque: - l'espace libre est distribué dans l'espace de tables selon les paramètres d'origine ; - les pages feuilles sont rangées par numéros dans le même ordre que les clés.
La définition de base de données indexée de type 'espace de tables' donnée ci- dessus restera valable pour la suite de l'exposé
D'une façon générale la réorganisation unitaire d'une base de données (et de son index) consiste à décharger la base de données, à ranger ses lignes d'information dans un ordre souhaité, par exemple l'ordre alphabétique, puis à recharger les lignes une fois rangées dans la base de données en mettant à jour les index, si possible de façon réorganisée
Exemple de réorganisation « hors-ligne » de bases de données indexées. notamment de type espace de tables : Toujours à titre d'exemple non limitatif, on utilise pour la réorganisation unitaire des bases de données indexées structurée en lignes et notamment les bases de type espace de tables un mode de lecture (déchargement) et un mode de réorganisation permettant de réduire sensiblement le temps nécessaire à la lecture ordonnée de la base de données indexée (lecture et éventuelle mise en ordre continue ou discontinue) et/ou à la réorganisation de la base de données indexée
En particulier on utilise de façon générale comme méthode de lecture de bases de données indexée dans laquelle les données apparaissent sous forme de lignes de données, la méthode LEC/BD/REORG/BD: comportant les opérations suivantes (voir figure 5A): [101] - Lecture simultanée et séquentielle de l'index et de lignes de la base de données, BDD, avec le chargement des index dans une première mémoire tampon MX et le chargement des lignes dans une seconde mémoire tampon MT, [102] - Lecture des index de la mémoire tampon MX vers mémoire tampon MT de façon ordonnée,
[103] - Recherche dans la mémoire MT de la présence d'une ligne dont l'identifiant est donné par la lecture ordonnée de l'index, [103A] - Dans l'affirmative, extraction de la ligne vers un fichier de lignes ordonnées logiquement FT1 ,
[103B] - Dans la négative, vidange partielle de la mémoire tampon vers un fichier FT2 de lignes à trier avec élimination de la mémoire tampon MT d'au moins la page dont le numéro est le plus faible, [104] - Poursuite de la lecture jusqu'à la fin de la base de données, les lignes restantes n'ayant pu être extraites de façon ordonnée étant dirigées vers le fichier FT2
Appliquée à la réorganisation de la base de données, la méthode de lecture LEC/BD/REORG/BD permet, après le tri du fichier FT2 pour donner FT'2, de combiner les deux fichiers ordonnés FT1 et FT'2 en un fichier virtuel FTV servant d'entrée à la phase de rechargement de la réorganisation de la base de données
Il est à noter que par fichier virtuel on entend un fichier qui n'a pas d'existence réelle, car ce fichier est le produit théorique de la fusion virtuelle de deux de fichiers, mais qui peut être utilisé au rechargement comme un fichier réel dans la mesure où le programme de rechargement t à la fois sur le fichier FT1 et à la sortie FT'2 du tri (elle-même un fichier virtuel généralement nommé « exit de tri ») et opère la fusion ligne à ligne au lieu de lire un seul fichier L'expression fichier virtuel désigne plus généralement une entité sur laquelle on peut opérer les mêmes fonctions que sur un fichier séquentiel classique (ouverture, lecture ou écriture d'un enregistrement, fermeture) et qui du point de vue de ces fonctions se comporte exactement comme un fichier séquentiel classique.
Ainsi grâce à la génération, en continu et par simple extraction, d'un fichier intermédiaire de lignes ordonnées logiquement FT1 pendant l'opération de lecture séquentielle, le nombre de lignes à trier présentes en en fin de parcours dans le fichier FT2 est réduit de façon substantielle d'où un gain de temps sensible tant pour l'opération de lecture de la base de données que pour le traitement complet de la réorganisation de la base de données
La méthode de lecture de bases de données LEC/BD/REORG/BD permet à partir d'une lecture de type séquentielle de la base de données d'obtenir un fichier virtuel ordonné des lignes de données tout en minimisant l'étape de tri effectuée sur un fichier intermédiaire partiel
De façon analogue on utilise comme méthode de lecture d'index de bases de données indexée dans laquelle les données apparaissent sous forme de lignes de données, la méthode LEC/IND/REORG/IND comportant les opérations suivantes (voir figure 5B).
[101X] - Lecture séquentielle de l'index avec le chargement des index dans une mémoire tampon MX, [102X] - Vérification de la position du couple clé/ligne de plus bas numéro d'ordre
(clé/ligne INF) présent dans mémoire tampon MX par rapport à la position du dernier couple traité, en particulier si le numéro d'ordre du couple clé/ligne INF est supérieur au numéro d'ordre du dernier couple traité
[103XA] - Dans l'affirmative, extraction du couple clé/ligne INF vers un fichier de couples d'index logiquement ordonnés FXl,
[103XB] - Dans la négative, vidange partielle de la mémoire tampon MX vers un fichier
FX2 de couples à trier avec élimination de la mémoire tampon MT d'au moins le couple clé/ligne dont le numéro est le plus faible,
[104X] - Poursuite de la lecture jusqu'à la fin de la base de données, les couples clé/ligne restant n'ayant pu être extraits de façon ordonnée étant dirigés vers le fichier
FX2.
Ainsi l'opération de lecture ordonnée de l'index, continue ou discontinue en l'absence de certaines valeurs de clé d'index, permet l'extraction directe d'un fichier d'index logiquement ordonné FXl et d'un fichier d'index à trier FX2. Après le tri du fichier FX2 pour donner FX'2, les deux fichiers ordonnés FXl et FX'2 sont fusionnés en un fichier virtuel FXV servant d'entrée à la phase de rechargement de la réorganisation de l'index.
Dans la pratique on arrive à constituer des fichiers FT1 contenant plus de 90% des lignes lues. D'autre part la durée d'un tri est plus que proportionnelle à la quantité d'information en entrée, elle se trouve divisée par au moins 10 En ce qui concerne le temps de lecture, celui-ci reste bref car l'opération de lecture est réalisée de façon séquentielle et simultanée sur la base de données et sur l'index
Selon un premier mode de mise en oeuvre de la méthode de lecture
LEC/BD/REORG/BD et applicable à une base de données indexée de type 'espace de tables', le processus de lecture et de déchargement de l'index à l'aide la mémoire tampon MX est réalisé par la méthode LEC/IND/REORG/TABLE comportant les opérations suivantes (voir: figure 6A) :
[201] - Autant de fois que nécessaire jusqu'à avoir atteint la fin de l'index et vidé la mémoire tampon MX, lecture séquentielle des pages de l'index en ne conservant que les pages d'index contenant au moins une clé, jusqu'à remplir la mémoire tampon ou atteindre la fin de l'index ; cette lecture se faisant dans les emplacements non utilisés de la mémoire tampon ou contenant une page marquée invalide; [202] - Recherche et remplacement des pages invalides dans la mémoire tampon de l'index à partir de la première page de la mémoire tampon MX, [206A] • Vérification dans chaque page courante de la mémoire tampon : - de l'absence d'au moins un couple clé-RID supérieur au dernier couple clé-RID traité en séquence logique (écrit dans le fichier index trié FXl ou envoyé en lecture d'espace de tables/base de données); ou
• de l'exactitude de l'expression PXC < PXL - DMA où PXC représente le numéro dans l'index de la page courante de la mémoire tampon MX, PXL le numéro dans l'index de la dernière page d'index lue et DMA la différence maximale autorisée entre pages d'index en cours de lecture;
[206B] - Dans l'affirmative d'au moins une des deux propositions, invalidation de la page courante PXC et retour à l'opération [201] pour lecture d'une nouvelle page index en séquence;
[203] - Recherche de la page valide PXmin de la mémoire tampon MX qui contient la clé la plus basse CLE INF de toute la mémoire ou en cas d'égalité de clé, le RID correspondant le plus bas;
[204] - Traitement de la page PXmin en séquence logique comportant les opérations suivantes :
[208A] - Le cas échéant, lecture par ordre croissant de chacun des couples clé-RID de cette page PXmin;
[208B] - Envoi de chacun des RID de cette page PXmin dans l'ordre croissant des couples clé-RID vers le traitement de lecture de la base de données de type espace de tables;
[204C] - Invalidation de la page PXmin traitée et retour à l'opération [201] pour lecture d'une nouvelle page index en séquence.
On notera que l'opération 208B constitue un déchargement simplifié d'index, dans lequel seuls les RID des pages extraites en séquences logiques sont transmis et utilisés pour la réorganisation de l'espace de tables.
En particulier la méthode de lecture et de déchargement LEC/TABLE/REORG/TABLE de l'espace de tables à l'aide la mémoire tampon MT est réalisée par les opérations suivantes (voir figure 7):
[301] - Autant de fois que nécessaire jusqu'à avoir atteint la fin de l'espace de tables et vidé la mémoire tampon MT, lecture séquentielle des pages de l'espace de tables ou de la partition à partir du début en ne conservant que les pages de données contenant au moins une ligne, jusqu'à remplir la mémoire tampon MT ou atteindre la fin de l'espace de tables; [302] - Pour chaque RID présent provenant de la lecture de l'index (voir opération 208B):
- si le RID désigne un numéro de page PTRID inférieur au minimum PTmin des numéros de pages dans la mémoire tampon MT, le RID est ignoré parce que la page déjà été traitée; retour au début de l'opération [302];
- si le RID désigne un numéro de page PTRID supérieur au maximum des numéros de pages PTmax dans la mémoire MT, la page n'a pas encore été lue et on effectue [303]; si non on effectue [304] ;
- si le RID est absent on effectue [305] ; [303] - Si PTRID - PTmax < INC, où l'incrément autorisé INC représente le nombre maximal de pages de l'espace de tables qui peuvent être lues pour retrouver un RID donné, on effectue [303A] autant de fois que nécessaire jusqu'à obtenir la page portant le numéro de RID ; à défaut on effectue [303B]; [303A]- Vidange du contenu de la page de la mémoire MT ayant le plus petit numéro de page PTmin en envoyant les lignes correspondantes dans le fichier tri-espace de tables FT2; lecture à l'emplacement de Pmin, de la page suivante à la page PTmax de la mémoire tampon MT et on recommence jusqu'à obtenir une page de données contenant au moins une ligne; lorsque la dernière page introduite dans la mémoire MT porte bien le numéro de RID, on effectue l'opération [304]; [303B]- Si PTRID - PTmax > INC, et si PTRID(n) - PTRID(n-l) < PRM, où le 'paramètre de proximité' PRM représente l'écart maximal des numéros de pages de données que deux RID consécutifs provenant de la lecture d'index ne devraient pas dépasser, sauf en cas de trou dans la séquence, les deux pages PTRID(n) et PTRID(n-l) sont probablement voisines et on double la valeur de l'incrément autorisé INC, à défaut INC reste inchangé; dans les deux cas on ignore le RID avec un retour à l'opération [302] ;
[304]- Si le RID désigne une page PTRID présente dans la mémoire tampon MT (y compris après la lecture [303A]), il suffit pour cela que le numéro de page soit entre les bornes puisque que la mémoire tampon MT contient des pages non vides contiguës, on écrit la ligne correspondante sur le fichier des lignes ordonnées FTl et on divise l'incrément autorisé INC par 2, pour autant que le résultat ne soit pas en dessous de sa valeur minimale ; retour en [302]
[305] - une fois traité tous les RID disponibles, on vide vers le fichier FT2 toutes les pages restantes de la mémoire tampon MT et éventuellement toutes les pages de l'espace de tables encore non lues. La méthode de lecture et de déchargement ci-dessus LEC/TABLE/REORG/TABLE est appliquée de la façon suivante pour la réorganisation des bases de données indexées de type espace de tables.
En particulier on utilise comme méthode de réorganisation unitaire d'une base de données indexée organisée en espace de tables, la méthode REORG/TABLE comportant les opérations suivantes (voir figure 8A):
[401] - Lecture séquentielle et simultanée du contenu de l'index et du contenu de l'espace de tables et création des fichiers de lignes de données FTl et FT2; [402] - Si nécessaire, tri du fichier FT2 par ordre de clé primaire croissante et éventuellement par ordre de table croissante s'il y a plusieurs tables; [403] - Fusion virtuelle des fichiers de lignes FTl et FT'2;
[404] - Rechargement du ou des fichiers contenant l'espace de tables avec les lignes ainsi ordonnées ou triées en respectant les paramètres d'espace libre ; [405] - Rechargement de l'index primaire de chaque table dans le même ordre en prenant en compte le nouvel emplacement (RID) de chaque ligne;
[406] - Mise à jour des autres index soit en modifiant les RID soit en les rechargeant après tri des informations de clé et de RID.
En ce qui concerne la réorganisation de l'index ou d'une partition d'index de la base de données indexée, celle-ci est susceptible, entre autres, de mettre en œuvre (en variante de la méthode de lecture et de déchargement d'index illustrée à la figure 6A) la méthode de lecture et déchargement d'index de base de données indexée de type espace de tables à l'aide la mémoire tampon MX et réalisée par la méthode LEC/IND/REORG/IND(ET) comportant les opérations suivantes (voir figure 6B) : [201] - Autant de fois que nécessaire jusqu'à avoir atteint la fin de l'index et vidé la mémoire tampon MX, lecture séquentielle des pages de l'index en ne conservant que les pages d'index contenant au moins une clé, jusqu'à remplir la mémoire tampon ou atteindre la fin de l'index ; cette lecture se faisant dans les emplacements non utilisés de la mémoire tampon ou contenant une page marquée invalide;
[202] - Recherche et remplacement des pages invalides dans la mémoire tampon de l'index à partir de la première page de la mémoire tampon MX,
[206A] - Vérification dans chaque page courante de la mémoire tampon : - de l'absence d'au moins un couple clé-RID supérieur au dernier couple clé-RID traité en séquence logique (écrit dans le fichier index trié FXl ou envoyé en lecture d'espace de tables/base de données); ou - de l'exactitude de l'expression PXC PXL - DMA où PXC représente le numéro dans l'index de la page courante de la mémoire tampon MX, PXL le numéro dans l'index de la dernière page d'index lue et DMA la différence maximale autorisée entre pages d'index en cours de lecture,
(202'B) - Dans l'affirmative d'au moins une des deux propositions, écriture des couples clés - RID dans le fichier tri-index FX2, invalidation de la page courante PXC et retour à l'opération (201) pour lecture d'une nouvelle page index en séquence; à défaut on exécute (203) ;
[203] - Recherche de la page valide PXmin de la mémoire tampon MX qui contient la clé la plus basse de toute la mémoire MX ou en cas d'égalité de clé, le RID correspondant le plus bas; [204] - Traitement de la page PXmin en séquence logique comportant les opérations suivantes :
[204'A] - Lecture par ordre croissant de chacun des couples clé-RID de cette page PXmin et écriture directe de ces couples clé-RID dans le fichier index ordonné FXl; [204C] - Invalidation de la page PXmin traitée et retour à l'opération (201) pour lecture d'une nouvelle page index en séquence.
Ainsi le déchargement de l'index selon cette dernière méthode conduit à la création d'un fichier virtuel FXV ordonné des couples clé-RID et la méthode REORG/IND(ET) de réorganisation de l'index de la base de données indexée et organisée en espace de tables comporte alors les opérations suivantes (voir figure 8B). [401X] - Lecture du contenu de l'index et création des fichiers de couples clé-RID FXl et FX2;
[402X] - Si nécessaire, tri du fichier FX2 par ordre de couples clé-RID croissants pour donner FX'2,
[403X] - Fusion virtuelle des fichiers FXl et FX'2; [404X] - Rechargement du ou des fichiers contenant l'index avec les couples clé-RID ainsi ordonnés ou triés en respectant les paramètres d'espace libre
Il est à remarquer que l'absence de l'opération de tri [402] et/ou [402X] résulte du fait que la lecture des lignes de l'espace de tables et/ou des pages d'index a pu être faite directement dans l'ordre, ce qui advient lorsque la base de données n'est pas trop désorganisée
Ainsi l'utilisation de la lecture séquentielle qui permet de lire un grand nombre de pages en une seule opération (les unités de disques du système possédant une fonction de lecture en masse de blocs contigus) accélère de façon significative les opérations de réorganisation unitaires des bases de données indexées, notamment les bases de données indexées de type espace de tables
Il est à noter pour terminer ce point de réorganisation unitaire que si les deux méthodes de réorganisation de la base de données REORG/TABLE et de réorganisation de l'index REORG/IND(ET) peuvent être mises en œuvre conjointement, il apparaît qu'en pratique ces deux méthodes sont codées séparément et mises en œuvre comme des coroutines. Cette caractéristique est importante car elle donne plus de souplesse dans la préparation des plannings de réorganisation de l'ensemble des bases de données indexées notamment de type espace de table.
Après avoir présenté les grandes lignes de la réorganisation unitaire des bases de données indexées structurées en espaces de tables et de leurs index, il importe de revenir à la stratégie globale de la réorganisation de I ensemble des bases de données du système d'information. La gestion des réorganisations « en ligne » La Stratégie
La stratégie globale intègre les réorganisations « en ligne » et « hors ligne ». Pour chaque objet du système informatique d'information on détermine le seuil de désorganisation à partir duquel une réorganisation « en ligne » est rentable. Si ce seuil est atteint sans qu'il est été possible de réorganiser l'objet « hors ligne » (manque de disponibilité dans la fenêtre « batch ») la réorganisation « en ligne » est lancée dès que l'activité de mise à jour est suffisamment faible pour que cette réorganisation soit valable. Cette réorganisation « en ligne » se fait en une seule opération sur une copie de l'objet en service. Les mises à jour éventuelles apparues pendant l'opération de réorganisation sont sauvegardées sur un fichier intermédiaire traité en fin de réorganisation (les pages modifiées étant repérées par l'heure de la modification), le processus étant répété pour les nouvelles mises à jour éventuelles jusqu'à épuisement. L'objet (la base de données) une fois réorganisé et mis à jour peut alors être remis en service. En ce qui concerne les espaces de tables, c'est l'utilisation des parcours séquentiels d'index (en anglais index scans) par l'index primaire (index déterminant le critère de tri de la réorganisation) qui détermine la réorganisation des espaces de tables. En effet un espace de tables utilisé seulement en accès direct n'a pas besoin d'être réorganisé car les cartographies d'espace (en anglais space maps), seules utilisées pour déterminer la possibilité d'une insertion, sont suffisamment peu nombreuses pour être conserver dans le parc de mémoires tampons (en anglais buffer pool).
En ce qui concerne les index, l'accès direct (par pointeurs verticaux) à l'index est utilisé aussi bien en lecture qu'en mise à jour (c.à.d. modification du champ de données sauf indication contraire). Son temps d'Entrée/Sortie est déterminé par le fait que les pages représentant les deux derniers niveaux et qui dans la plus part du temps doivent être lues physiquement, sont ou non proches l'une de l'autre sur le disque. C'est le temps de positionnement pour la lecture de la page <c feuille » qui détermine la différence entre un index bien ou mal organisé.
Le parcours séquentiel (« index scan » utilisant des pointeurs horizontaux) ne représente qu'un coût marginal par rapport à la lecture concomitante de l'espace des tables, tout en ayant le même critère de performance que l'accès direct puisque si deux pages sont proches d'une troisième elles sont relativement proches l'une de l'autre. Le parcours séquentiel n'intervient donc pas dans la détermination de la nécessité d'une réorganisation.
Les Données utilisées II résulte de ce qui précède que les données à prendre en compte sont celles qui influent sur les performances des applications et sur le coût en termes de ressource de la réorganisation. Ces données sont de deux ordres ayant leurs origines soit dans les caractéristiques de l'objet à réorganiser, soit dans les caractéristiques des unités du système d'information (traitement et utilitaires): i) les caractéristiques de l'objet à prendre en compte sont celles de déterminent le volume est l'état de l'objet :
S = le nombre de Cl (bloc physique ou page) de 4 Ko de l'objet, index compris en cas d'espace de table,
NTL = le nombre total de lignes (RID si index), ou le nombre moyen par Cl, D= le taux de désorganisation, c'est à dire :
Pour un espace de tables :
DT = le pourcentage de lignes situées loin de la page qui contenait à l'origine la clé précédente au sens de l'index primaire ;
Pour un index : Dl = le pourcentage de pages feuilles situées loin de la page non feuille qui pointe dessus.
Pour calculer le nombre de lignes ou de RID on divise la taille utile du Cl multiplié par le taux de remplissage estimé, par la taille typique de l'entrée.
La taille utile d'un Cl est voisine de 4 K pour un espace de tables et dépend de type de l'index et du nombre de sous pages et de la longueur des clés pour un index de type 1
- Le taux de remplissage estimé de 0,85 pour un espace de tables et de 0,75 pour un index.
- La taille typique est la moyenne géométrique (racine nième du produit de n nombres) entre la taille maximum et la taille minimum (tmg2 :--- tmax.tmin) Pour un index multiple la taille du RID est le minimum, la taille d'une entrée unique le maximum. Pour un espace de tables ajouter 8 (préfixe + ID) à la taille de la ligne (à diviser par 3 en cas de compression) ii) Les caractéristiques des unités à prendre en compte sont celles qui influent sur le temps d'Entrée/Sortie des traitements et utilitaires :
- le temps de positionnement moyen Ts;
- le temps de latence Tl, c'est çà dire le temps nécessaire pour faire un xk tour ; - le nombre de blocs de 4K par piste de mémoire sur disque
Est également à prendre en compte le profil applicatif (c'est à le nombre moyen d'un événement de l'application par unité de temps, par exemple l'heure).
Pour un espace de tables, l'information utilisée sera le nombre moyen de lignes lues par « index scan » (parcours séquentiel de l'index) par heure. En fait remarquer qu'il n'est réellement utile de réorganiser un espace de tables que s'il y a des lectures en « index scans »
Enfin on s'intéresse à la charge instantanée lorsque l'on cherche à déterminer l'opportunité de lancer une réorganisation « en ligne » à un instant donné Jusqu'à présent on utilise le nombre moyen de mise à jour par objet et par heure. Il serait opportun de travailler sur des prévisions à court terme de cette charge en utilisant des profils de journée d'exploitation.
Le Coût de la réorganisation :
Le coût d'une réorganisation en ligne, exprimé en temps d'Entré/Sortie est donné par la formule FI suivante : C = S.(c + d.D) / (1 - e.q.U) dans laquelle :
S est le nombre de pages ou taille de l'objet, index inclus ;
D est le taux de désorganisation ; c,d,e sont des constantes de la machine (système informatique) ; q = 1 si l'objet est un index, sinon q = nombre d'index +1 ;
U est la moyenne horaire du nombre de mises à jour sur l'objet, les mises à jour étant pour l'essentiel des modifications de champs dans des lignes existantes (sans véritable effet de désorganisation).
On notera que la durée d'une réorganisation en ligne peut être très longue (plusieurs heures pour une première phase de réorganisation en continu de durée to) entraînant la mise en mémoire provisoire, pendant la première phase de réorganisation, d'un premier paquet des mises à jour de l'objet. A la fin de cette première phase de durée to (temps passé de réorganisation Tr=to) intervient une deuxième phase de la réorganisation plus courte (tl < to) que la première pour traiter ces premières mises à jour, d'où l'apparition en fin de deuxième phase (avec Tr=to+tl) d'un second paquet de mises à jour plus petit que le premier, et ainsi de suite jusqu'à extinction des mises jour II en résulte que le temps total final de la réorganisation en ligne Tf fait intervenir un facteur k <1 fonction de U moyenne horaire du nombre de mises à jour sur l'objet.
Au départ de la réorganisation Tr = 0
Pour Tr≈to, C= Co = S.(c+d.D) Pour Tr=to + tl, C= Co + k.Co = Co.(l -t-k) où k < 1
Pour Tr=to +tl+ t2, C= Co + k.Co + k.k.Co = Co.(l+k+k2)
Finalement en fin de réorganisation Tr = Tf, avec:
Tr=Tf=to+ .. + tn + , C= Co + k.Co + k .Co + .. +kn.Co+
Soit un coût final C= Co.(l+k+k2+ ...+kπ++.)= Co/ (1 - k) où l'on retrouve la formule FI si l'on pose k= e.q.U
De la formule FI on tire le coût moyen horaire de réorganisation si t représente le nombre d'heures séparant deux réorganisations :
Cm = [S.(c + d.D) / (1 - e.q.U)] / t soit FI'
Le Coût de ne pas réorganiser : Le surcoût de ne pas réorganiser par heure de traitement vaut : C* = Co*.D, où Co* est le surcoût horaire quand l'objet est totalement désorganisé.
D'une façon générale on considère que la désorganisation d'une base de données de type espace de tables résulte, quasi exclusivement des insertions de données dans la base (nouvelles lignes créées), soit : D = i/S.r, où i désigne le nombre d'insertions depuis la dernière réorganisation,
S désigne la taille de l'objet entier en pages, r est le nombre moyen de lignes par page de l'entier,
Si l'on suppose le taux horaire d'insertion constant = I D = l.t/S.r => C* = Co*.l.t/S.r où
I désigne le nombre d'insertions à l'heure, et t le temps écoulé depuis la dernière réorganisation.
Le surcoût de ne pas avoir réorganisé depuis t heures est G = Somme de Co*.l.t.dt /S.r = V2 .CoM.t S.r soit G = V2 Co*.D.t où Somme de désigne le signe mathématique de la fonction intégrale Le surcoût moyen horaire de ne pas avoir réorganiser vaut donc : Cm* = V2 .Co*.D formule F2
Le moment optimal de la réorganisation : Le coût moyen horaire total de la non réorganisation vaut :Cmt = Cm + Cm*
II importe de réorganiser lorsque Cmt = Cm + Cm* est minimal. Or
Cm = [S.(c + d.D) / (1 - e.q.U)] / t soit avec S = l.t/D
Cm = l.(c + d.D) / (1 - e.q.U).r.D formule FI"
Cmt = Cm + Cm* = Vέ.Co*.D+[l.(c + d.D) / (1 - e.q.U).r.D] soit la formule F3
Cette fonction du type a.x + b + c/x passe par un minimum lorsque a -(c/x2 )= O soit x2 = c/a, d'où pour la valeur de seuil Ds solution de l'équation suivante : Ds2 = 2 e / (1 - e.q.U) r Co* formule F4
Alternativement on montre que la fonction Cmt=Cm+Cm* admet un minimum lorsque les termes en D et en 1/D sont égaux (a.x = c/x), soit : I.C / [(1 - e.q.U).r.D] = y2 .CO*.D
D'où on retrouve la formule F4.
Il y a lieu de réorganiser lorsque D2 dépasse cette valeur Ds2, soit quand :
D2 > 2 l.c / (1 - e.q.U) r Co* ou, sous une autre forme, quand R' = D2 r Co*.(l - e.q.U) / 2.I.C > 1
Ou quand R' = R (1 - e.q.U) >1 avec
R = D2 r Co* / 2.I.C , soit la formule F5.
Sachant que e.q.U doit être le plus faible possible, la réorganisation en ligne interviendra pendant que U (moyenne horaire du nombre de mise à jour sur l'objet) est faible à partir du moment où R >1.
Ainsi le taux de seuil Ds est donné par la formule F5' suivante: R = Ds2 r Co* /
2.l.c = l i) Cas de l'Index
Si l'objet est un Index, chaque insertion coûte n lectures et 1 écriture si n est le nombre de niveaux d'index et chaque relecture coûte n lectures. En supposant 3 niveaux d'index le temps d'accès correspondant aux deux derniers niveaux sera :
- Ts + 2. Tl, si l'index est réorganisé
- 2Ts + 2 Tl, si l'index est désorganisé
Ts désignant le temps de déplacement de bras, Tl le temps de latence (1 /2 tour du bras). En cas d'index désorganisé le surcoût en temps d'accès par transaction est de Ts.
Si t* est le taux de relecture de l'objet, c'est à dire le nombre moyen de fois qu'une entrée sera relue. Il est alors possible de connaître le nombre de transactions en fonction de I (nombre d'insertions à l'heure) soit : (t*+ 1) I .
Il en résulte que le surcoût horaire à ne pas réorganiser quand l'objet est totalement désorganisé Co* est Co* = (t*+ 1) I.Ts formule F6 On peut évaluer c (temps d'accès en E/S par la taille) en supposant dans le cas le plus défavorable que l'utilitaire de réorganisation « en ligne » lit une piste à la fois puis perd son positionnement, donc en négligeant les écritures. c=(Ts + 3TI)/Nbp où Nbp est le nombre de pages de l'objet. En posant Ts/Tl = V qui est une caractéristique de l'unité de traitement on obtient R= D2 r (t*+l)Nbp.V / [2(V+3)] formule F7
Ainsi le taux de seuil pour l'index Dsl est donné par la formule F7' suivante : R= Dsl2 r (t*+l)Nbp.V / [2(V+3)] = 1 A titre d'exemple numérique non limitatif, on choisit : r= 200 (clé de longueur 10 octets) Nbp : 12 (3390) V = 1.76 (3390-2) t* = 1 (une seule relecture) On obtient R = D2 200.2.12.1,76/ 2.4,76 = D2 8400/9,52 soit R = 887. D2
Il y aura lieu de réorganiser à partir de R > 1 (lorsque le taux U peut être considéré comme négligeable), soit pour D2 > 1/887 ou D > 0,0335, soit à partir d'un taux de seuil de désorganisation de l'index Ds = 3,35 %. ii) Cas de l'espace de tables
Si l'objet est un espace de tables, une lecture séquentielle d'index (index scan) engendrera un surcoût de désorganisation par ligne déplacée de Ts + Tl. Il en résulte un coût de désorganisation Co* ≈ LI.(Ts + Tl) où L est la proportion des lignes accédées par index scan par rapport aux lignes créées.
Par ailleurs du fait que les index sont réorganisés simultanément, il faut tenir compte du coût associé aux accès directs à travers ces index, soit Co*i = (t*i + l).li.Ts d'où le coût total moyen horaire à ne pas désorganiser Cm* = y2.L.I.D.(Ts+TI) + % [S Co*i.Di2./D2].D Soit
Cm* = y2.L.I.D.(Ts+TI) + V2 Ts. S li.Di2.(t*i + 1)/D formule F9 II est à noter :
• que Ii = I dans le cas d'un espace de table monotable; - que dans le cas général on peut supposer que H = ki.l où ki désigne le cardinal relatif de la table associée à l'index i (et représentatif de la dimension relative de cette table). Cela revient à ignorer les mises à jour entraînant une modification de clé et à supposer que les tables ont des durées moyennes de vie de lignes comparables. - que les t*i représentent le taux d'accès direct au travers de chaque index donc que, pour une table donnée, S t*i représente le coût d'accès à cette table.
Supposons certaines réorganisations d'index faites, dans chaque intervalle ne contenant pas de réorganisation d'index, Di est une fonction linéaire du nombre d'insertions I donc de D. Di = ai.D - bi, où ai = li.S.r / (I.Si.ri) = ki / ki= 1 d'où Di = D-bi
Cm* = y2.LI.D.(Ts+TI) + Vz Ts. S li.(D-bi)2.(t*i + 1)/D Cm* = y2.L.I.D.fTs+TI) + V2 Ts. S li.D.(t*i + 1)
- Ts. S li.bi.(t*i + 1)+ V2 S. Ii.bi2.(t*i + 1)/D avec Cm = l.(c + d.D) / (1 - e.q.U).r.D (coût moyen horaire pour réorganiser l'objet)
De façon analogue à ce qui a déjà été présenté ci-avant la fonction Cmt = Cm + Cm* admet un minimum local lorsque les termes en D et en 1/D sont égaux soit :
D2.[L.I.(Ts+TI)+Ts. S li.(t*i + l)]≈2l.c/(l - e.q.U).r + Ts. S Ii. D2.(t*i + 1) D2.L.I.(Ts+TI)+Ts. S li(D2-bi2χt*i +l)=2l.c/(l-e.q.U).r
En utilisant comme ci-devant c = (Ts + 3.TI) / Nbp et en substituant bi = D - Di on obtient
R=r.Nbp[D2.L (V+l) + V. S ki(2DDi-Di2) (t*i+l)]/ (2V+6) Formule F12 Ou
R= r.Nbp[D2.L (V+l) + V. S ki(D2-bi2) (t*i+l)]/ (2V+6) Formule 12'
Pour une base de données monotable on a ki= 1, la formule devient R= r.Nbp[D2.L (V+l) + V. S (D2-bi2) (t*i+l)]/ (2V+6) Formule F13
Ainsi le taux de seuil DsT est donné par la formule F13' suivante: F13' suivante : R=r.Nbp[DsT2.L (V+l) + V. S (DsT^bi2) (t*i+l)] /(2V+6) = 1
A titre d'exemple numérique non limitatif, on choisit pour un espace de table monotable à 2 index: r= 15 (ligne de longueur 200 octets ; index 15% de la taille de l'espace de table) Nbp : 12 (3390) V = 1,76 (3390-2)
L = 5 (chaque ligne fait l'objet de 5 parcours séquentiels dans sa vie) ri = 200 (clé de longueur 10 octets) r2 = 230 (clé de longueur 8 octets) t*l = 1 (une relecture directe) t*2 = 2 (2 relectures directes)
En procédant comme présenté ci-avant, il apparaît que le premier index 11 (RI = 887. DU2) doit être réorganisé à partir de Dsll≈ 0,0355 = 3,35% et que le second index 12 (R2 = 1531.012 ) doit être réorganisé à partir de Dsl2 = 0.0255 = 2,55%.
La base de données étant monotable on a ki= 1. La formule F12' se simplifie pour s'écrire :
R= (15.12)/(2.(4,76))[(D2.5.(2,76))+ (l,76.2(D2-bl2)) + (l,76.3(D2-b22)) soit R=180/9,52 [(13.8.D2 + 3,52.D2 + 5.28.D2) - (3,52.bl2 + 5,28.b22)]
Soit R=[427.DsT2 - 66,5.bl2 - 100.b22]/10.000 = 1, formule F14, si les valeurs DsT, bl et b2 sont directement exprimées en % (pourcent).
Il est clair de la formule F14 que la valeur de seuil de réorganisation de l'espace de table DsT sera supérieure à la limite Dinf solution de l'équation Dinf2 = 10.000/427= 23,4 , soit Dinf≈ 4,8 %.
Après une réorganisation de l'espace de table et de ses deux index, tous les taux de désorganisation sont à zéro avec DT = DU = DI2= 0.
La première réorganisation d'indexinterviendra pour Dsl2 = 2,55% (à un instant où la base de données et le premier index auront le même taux DT = Dll≈ 2,55% (< Dinf), les taux étant proportionnels aux nombres d'insertion de nouvelles lignes (ou RID pour les index).
La seconde réorganisation d'index interviendra pour Dsll = 3,35% (à un instant où la base de données aura le même taux DT = 3,35% (< Dinf)).
En supposant pour simplifier que les index puissent être réorganisés dès que le taux ou seul limite est atteint, on peut examiner chaque intervalle défini entre deux réorganisations successives d'index et calculer par la formule FI 3 la valeur dans cet intervalle du taux limite pour l'espace de table (les valeurs de bl et de b2 étant données par la valeur instantanée de la désorganisation de l'espace table Ds lors des deux dernières réorganisations d'index) et vérifier que cette valeur limite appartient bien à l'intervalle considéré ; à défaut l'intervalle considéré et la valeur limite calculée ne seront pas retenus.
On étudiera donc la suite d'intervalles suivante : [0:Dsl2],[Dsl2:Dsll],[Dsll:2.DsI2],[2.Dsl2:2.Dsll], etc où 2.Dsl2 et 2.Dsl l correspondent respectivement à la seconde réorganisation du second et du premier index.
En introduisant les valeurs numériques la suite d'intervalles peut s'écrire : [0:2,55],[2,55:3,35],[3,35:5.1],[5,1:6,7], etc
Compte tenu de la valeur de Dinf=4,8%, il y a lieu d'étudier l'éventualité d'une réorganisation de l'espace table dans l'intervalle [3,35:5,1], avec bl= 3,35 et b2=2,55 (valeur de Ds lors de des deux premières réorganisation d'index - première de 11 et première de 12) De la formule F14, on obtient DsT2=11380/487 =26,5 et DsT≈ 5,15%
Cette valeur n'est pas acceptable car elle se situe en dehors de l'intervalle considéré. Il en résulte que la réorganisation de l'espace table ne pourra intervenir qu'après la seconde réorganisation du second index I pour laquelle DsT prendra la valeur 2x 2,55= 5,1. En reprenant cette procédure pour l'intervalle [5,1:6,7], avec bl= 3,35 et b2=
5,1, obtient DsT2=13231/487= 31 et DsT= 5,56%.
Si on prend U=0 la réorganisation de l'espace table et de ses deux index est souhaitable à partir d'un taux de désorganisation de 5,56% survenant dans l'intervalle considéré à un instant précédant bien la seconde réorganisation du premier index. II est à noter en variante qu'il est intéressant d'appliquer également le critère de rentabilité présenté ci-avant à la réorganisation « hors ligne » (hl) dans la mesure où des données existent. Pour ce faire, il y a lieu de remplacer dans la formule FI le coefficient c(el) (temps d'Entré/Sortie en fonction de la taille de l'objet) par un coefficient correspondant à la réorganisation « hors ligne », par exemple du type c(hl) = K.c(el) où K = Rapport du temps d'exécution de la réorganisation (hl) de l'objet sur le temps d'exécution de la réorganisation (el) du même objet dans des conditions moyennes d'exploitation de la base de données indexée de type espace de table correspondante.
Il est ainsi possible de déterminer si une réorganisation « hors ligne » est ou non utile. Les priorités existantes basées sur les taux de désorganisation sont également remplacées par des priorités basées sur la rentabilité, un objet plus lu qu'un autre étant prioritaire pour la réorganisation à taux égal de désorganisation. La gestion globale des réorganisations et copies « hors ligne » :
La réorganisation d'un fichier « hors ligne » est consommatrice de temps machine qu'il est en général souhaitable de minimiser pour réduire le coût total de l'opération. Pour ce faire l'invention propose également une méthode de gestion ou d'ordonnancement préparée d'avance de l'exécution en temps réel de programmes utilitaires de réorganisation (et/ou d'images copie) de manière à utiliser au mieux les ressources du système informatique d'information dont la fenêtre « batch » (fenêtre de maintenance).
La réussite et l'efficacité d'une telle méthode repose sur la rapidité que ce soit la rapidité à préparer et à mettre à jour un plan d'activité ou planning des tâches à exécuter et/ou la rapidité à lancer l'exécution des programmes présélectionnés.
Avant d'exposer la méthode de gestion ou d'ordonnancement selon l'invention, il importe de présenter brièvement l'organisation et le fonctionnement d'un système informatique d'information comportant un ensemble de fichiers ou bases de données indexées répartis en divers objets réels constitués d'espace de tables, de partitions d'espaces de tables et d'index.
Le système d'information : Les capacités « machine » du système d'information sont divisées en régions de traitement distinctes pilotées de façon unitaire par une région de contrôle. A chaque région de traitement sont affectées un certain nombre de tâches ordonnées et sont allouées les ressources nécessaires en mémoires virtuelles et périphériques (disques durs, imprimantes, mémoires sur supports externes etc.). Par souci d'efficacité en exécution et en allocation de ressources matérielles et/ou logicielles on affecte si possible à chaque région de traitement des taches de même type, telles que par exemple pour des tâches généralement exécutables dans la fenêtre « batch » des réorganisations de fichiers ou bases de données (demandant beaucoup d'espace de disque) ou des copies images de fichiers (demandant des périphériques de sortie externe, lecteurs de bandes magnétiques, lecteurs/graveurs de CD-ROM, etc.).
A côté des réorganisations de fichiers tels que bases de données, la prise de copies des fichiers modifiés constitue un impératif de sécurité dans le domaine de l'exploitation de systèmes informatiques. On distingue généralement trois types de copie, la copie en continue ou copie « journal » (en anglais « log »), la copie incrémentale qui ne prend que les modifications apportées aux fichiers et la copie totale ou copie image.
En ce qui concerne les bases de données, les systèmes d'exploitation comportent assez souvent un dispositif logiciel de verrouillage interdisant la remise en service de la base de donnée avant la prise d'une copie image. Ceci crée une interaction entre les plannings de réorganisation et de copie. Les plannings
Les plannings de réorganisation et de copie s'effectuent à partir de listes de priorités d'objets à réorganiser ou à copier qui seront traitées dans des régions de traitement différentes réservées soit à la réorganisation soit à la copie. La méthode d'ordonnancement consiste à générer à l'avance les objets réels susceptibles de réorganisation au lieu de faire des combinaisons d'objets en temps réel. Le nombre d'objets en est plus grand pour les objets partitionnés, mais les priorités et par conséquent l'ordre logique d'enchaînement des réorganisations sont calculés initialement et rarement mis en cause De ce fait les objets à réorganiser peuvent être chaînés par priorité décroissante, même si certains sont mutuellement exclusifs
La copie utilise d'autres régions et peut travailler sur les objets élémentaires. La liste des objets à copier est donc distincte de celle des objets à réorganiser avec un lien éventuel pour établir si un objet à copier est aussi à réorganiser ou fait partie d'un objet à réorganiser
Le processus d'ordonnancement ou de création de plannings peut se résumer de la façon suivante que se soit pour les copies ou les réorganisations : - détermination ou présélection des objets à traiter en priorité par la réalisation d'un planning rapide. - tentative de création d'une liste d'ordre d'exécution des traitements par placements en « retro-planning » des objets présélectionnés par priorités croissantes dans des régions de traitements disponibles, ce qui permet de s'assurer de l'heure maximum de démarrage d'un traitement. Ainsi le dernier objet sélectionné dans une région avec réussite pour compléter la liste devient le prochain objet à traiter POC ou POR. A défaut une nouvelle tentative de création de liste sera effectuée sur d'autres hypothèses de placements ou d'affectations de régions de traitement.
Ce processus est renouvelé à chaque fin de traitement correspondant (copie ou réorganisation) en tenant compte de l'état réel des objets à cet instant.
L'intérêt de l'opération de « retro-planning » ou planning inversé est de permettre à des gros objets non nécessairement prioritaires d'être traités avant qu'il ne soit trop tard (le temps de traitement encore disponible dans la fenêtre « batch » des régions de traitements libres devenant insuffisant).
Dans la réalité, les temps d'exécution sont variables et il y a lieu de prendre une marge de sécurité concernant les temps d'exécution (Kc = 1 ,20 pour les copies et Kr = 1,50 pour la réorganisation).
En pratique chaque fois d'une région destinée à la réorganisation devient libre, l'algorithme de planning de réorganisation recherche l'objet réel dont la priorité est maximale (planning rapide), le présélectionne et poursuit les tentatives d'affectations sur le même principe en examinant les conséquences sur sa sélection initiale (premier objet à réorganiser). En particulier :
• si l'objet en phase d'affectation est une partition contiguè à une partition d'un même espace de table déjà sélectionnée en premier, cette nouvelle partition sera ajoutée à la sélection initiale à titre d'objets liés dans la mesure où le nombre maximum de partitions sélectionnées pour être traitées ensemble n'a pas encore été atteint (toutes les partitions contiguës sélectionnées seront réorganisées en même temps) ; - si l'objet en phase d'affectation est l'espace de table dont l'objet de la sélection initiale est un index, l'espace de table (et ses index) remplacera l'index de la sélection initiale et les éventuelles sélections des autres index seront annulés (les index d'un espace de table sont toujours réorganisés avec celui-ci).
Le processus sera partiellement réexécuté à chaque modification de l'objet sélectionné en premier (sélection initiale). De ce fait si de nombreux espaces tables du système d'information sont partitionnés, le nombre de remise en cause peut devenir important.
De façon analogue chaque fois d'une région destinée à la copie devient libre, l'algorithme de planning de copie recherche l'objet élémentaire dont la priorité est maximale (planning rapide), et refait un planning de réorganisation pour vérifier si cet objet est prévu ou non pour une réorganisation dans la fenêtre « batch ». Dans l'affirmative l'objet est enlevé provisoirement du planning des copies
Par ailleurs, les priorités sont comparées entre les listes 'réorganisation' et les listes 'copie' ; des images copies plus prioritaires sont susceptibles d'empêcher une réorganisation du seul fait que celle-ci génère une copie et vice versa Le planning rapide
Le planning rapide consiste à déterminer les objets à traiter en limitant le temps global (la charge) à la somme des durées disponibles dans les régions de traitement.
Le planning rapide de la copie consiste à prendre les objets dans l'ordre décroissant des priorités il est donc aussi simple à réaliser qu'un tri d'objet. Il permet de donner une évaluation rapide du temps de fenêtre résiduel en fonction de la priorité.
Il peut être ajusté en fonction des objets ajoutés par le planning rapide de réorganisation
Le planning rapide de réorganisation prend en compte les liens entre objets réels :
- si un objet est contenu dans un autre, on planifie le contenant ; • si deux objets ont une partition commune sans que l'un contienne l'autre, on planifie celui qui à la plus haute priorité
Le planning rapide de réorganisation travaille également dans l'ordre décroissant mais il est capable de remettre en question l'élimination de gros objets en fin de fenêtres
La rapidité des plannings rapides tient à ce qu'ils sont limités dans leurs retours en arrière et ne remettent pas en cause les priorités des objets
La boucle la plus intérieure est celle qui cumule les temps de copie en testant si un objet est à la fois copié et réorganisé II est possible d'introduire un curseur sur l'objet à copier, sachant que le parcours complet n'est nécessaire que si des incompatibilités ou remise en causes ont été détectées Les priorités
Les priorités relatives de copies et réorganisation sont prises en compte de manière suivante : Pour les réorganisations nécessitant une image copie, on vérifie qu'elle est possible (planning rapide) en tentant d'insérer l'objet (s'il n'y est pas déjà) au planning provisoire de copie avec sa priorité de réorganisation
Ainsi si ce sont les régions de copie qui limitent le nombre d'objets, cette limite se fera à des priorités voisines tant pour la réorganisation des objets nécessitant une image copie que pour la copie des autres objets
Par contre si ce sont les régions de réorganisation qui limitent le nombre d'objets, des copies d'objets beaucoup moins prioritaires peuvent avoir lieu Les spécifications de la méthode de gestion et d'ordonnancement de l'exécution de logiciels utilitaires de réorganisation de bases de données indexées. Les Données
Les objets élémentaires
Les objets élémentaires sont les plus petits objets susceptibles d'un traitement (réorganisation et/ou copie) et pour lesquels on est capable de mesure un taux de désorganisation Ces objets sont utilisés pour l'image copie et comme intermédiaires pour générer des objets de réorganisation
Les objets élémentaires pour lesquels une image copie est à faire sont chaînés (liste PRIOCOPIE) entre eux par priorités décroissantes et tailles croissantes
(la priorité la plus haute étant donnée à l'objet dont la dernière copie remonte le plus loin dans le temps) Les ajouts après réorganisation se font en effet en tête de la liste
PRIOCOPIE Tous les objets élémentaires faisant l'objet d'une copie (y compris, ultérieurement, après leur réorganisation) comportent un pointeur de pile dans l'ordre des priorités croissantes qui est valorisé par le planning de copie. Les objets réels Les objets réels sont ceux qui peuvent être réorganisés sans entraîner la réorganisation d'autres objets (ex ; espaces de tables + index non pris isolément). Les objets réels sont créés à partir d'objets élémentaires (espaces de tables, index et partitions).
La priorité de chaque objet réel est le barycentre des taux de désorganisation des composants avec leurs tailles pour coefficients. On rappelle que le taux de désorganisation d'un objet est donné par le rapport nombre d'insertions (lignes ou RID) sur la taille de l'objet. Les objets réels sont rangés dans la liste des priorités de réorganisation (liste PRIOREORG) par priorités décroissantes
La priorité étant définie comme le rapport gain / coûts, le gain d'un objet est calculé comme le produit de sa priorité par le temps de sa réorganisation.
Les objets réels sont chaînés avant-arrière afin de permettre le parcours dans les deux sens et les opérations de suppression et de changement de priorité qui ont lieu chaque fois qu'une réorganisation est lancée.
Le planning rapide utilise également une liste de suppression (liste SUPP) permettant de différer la suppression d'objets jusqu'à la confirmation de la nécessité de ces suppressions par la sélection de l'objet courant incompatible avec les objets supprimés.
Il est possible d'introduire une sous-chaîne d'objets sélectionnés (ou ayant fait l'objet de tentatives de sélection) afin d'éviter, lors de la phase de remise en cause d'avoir à examiner de nombreuses combinaisons de partitions incompatibles avec les choix antérieurs. L'objet partitionné
Pour un espace de table contenant n partitions il y 2n-l objets réels possibles pour la réorganisation, ce qui est irréaliste On se limite aux combinaisons de partitions contiguës dans l'ordre des priorités soient à y2 n.(n+l) objets. Si le nombre maximum de partitions réorganisées simultanément est p<n, le nombre d'objet réels se réduit à Vz p.(2n-p+l).
Par ailleurs il est nécessaire de pouvoir répondre rapidement aux questions suivantes : i) - un objet est-il contenu dans un autre ? n) - deux objets ont-ils une partition commune ? Pour faciliter la réponse à ces questions on associe à chaque objet un tableau de bits (en anglais bitmap) marqué à 1 pour chaque partition de l'objet et on procède à des comparaisons des « bitmaps ». Objets globaux Les objets globaux sont les espaces de tables. Il sont destinés à contenir les informations relatives à la partie planifiée :
Les informations temporaires utilisées par le planning rapide sont :
- un pointeur vers une liste de ses sous-objets réels sélectionnés, une valeur non nulle indiquant qu'une partie de l'objet est à réorganiser ; - un indicateur de réorganisation de l'ensemble de l'espace de tables ; • un indicateur de copie d'une partie de l'espace de table ;
- une « bitmap » des réorganisations des partitions de l'espace de tables .
- une « bitmap » des réorganisations des partitions d'index.
Il y a un pointeur de chaque objet élémentaire ou réel sur l'objet global correspondant
Enfin les objets réels sélectionnés d'un même espace de table sont chaînés entre eux par le planning rapide dans la liste de sélection (liste SELECT/OR) de l'objet global.
Régions de traitement Chaque région de traitement est affectée soit à la copie soit à la réorganisation. La recherche du prochain objet à réorganiser ou copier a lieu quand une région est libérée par la fin de la réorganisation ou la copie précédente.
Le planning consiste donc à valoriser un pointeur de la région de traitement vers le prochain objet à traiter. Afin de permettre l'anticipation, on conserve pour chaque région l'heure relative estimée de fin du traitement en cours dans la région, laquelle est initialement nulle Les Traitements :
Les traitements ci-après sont données à titre d'exemple non limitatif d'un mode d'exploitation de la mise en œuvre de la méthode de gestions des réorganisations et des copies d'un ensemble de bases de données indexées selon l'invention. Sans sortir du cadre de l'invention, ces traitements peuvent faire l'objet de variantes et de modifications diverses pour remplir des fonctions techniquement identiques ou équivalentes . A Planning rapide
On rappelle que le planning rapide a pour seul but de déterminer les objets pouvant être réorganisés dans la durée résiduelle de la fenêtre « batch » et non de calculer l'heure de début des réorganisations. Les seules informations utilisables sont l'indicateur de sélection de chaque objet réel et les indicateurs d'affectation (partie planifiée et pointeurs)
Le planning rapide de réorganisation PRR* comporte les six phases opérationnelles suivantes : Initialisation Boucle sur objets
Elimination des intersections d'objets Remise en cause des choix précédents Vérification de la suffisance du temps copie Sélection de l'objet courant
La phase opérationnelle d'Initialisation comporte les opérations suivantes :
- Pour tout objet réel de la liste, annuler l'indicateur de sélection IndS/OR ;
- Pour tout objet global OG de la liste, annuler le pointeur de liste de sélection PointLS/OG et annuler la partie planifiée de l'objet PPO/OG;
- Initialiser le hmiteur de remises en cause à 10.000 ;
- Initialiser E = temps minimum de traitement = minimum de (durée unitaire de réorganisation + copie des objets réels à réorganiser OR) ;
- Initialiser Temps résiduel de copie TRC = temps restant après exécution des copies en cours et des copies liées aux réorganisations en cours ;
- Initialiser Temps résiduel de réorganisation TRR = temps restant après exécution des réorganisations ;
• Initialiser : Prochain Objet à Copier POC = premier objet de la liste finale (en réalité une liste virtuelle car seul le premier objet de cette liste importe). Nota
1) Cette phase d'Initialisation débutant le processus de PRR* est notamment lancée à chaque fin d'une tâche de réorganisation (réorg + copie) dans une région de traitement correspondante.
De la même façon à chaque fin de tâche de réorganisation les listes de priorités PRIOREORG pour les objets réels et PRIOCOPIE pour les objets élémentaires sont remises à jour.
2) Au tout départ des réorganisations on a :
TRC = Durée fenêtre « batch » x Nb de régions de copie, TRR = Durée fenêtre « batch » x Nb de régions de réorganisation. La phase opérationnelle de Boucle sur objets comporte les opérations suivantes :
Pour tout objet réel de la liste PRIOREORG jusqu'à ce que TRR < E : • Marquer la sélection possible
- Annuler le pointeur de la liste SUPP
• Initialiser Temps Provisoire de Copie TPC = TRC
- Initialiser Temps de Réorganisation TR = Durée de réorganisation de l'objet courant OR La phase opérationnelle d'Elimination des intersections d'objets comporte les opérations suivantes :
Pour tous les objets globaux associés à l'objet courant OR, Faire : Si le pointeur de la liste de sélection SELECT/OR de l'objet global associé à l'objet courant est non nul (ce qui indique qu'il y a déjà au moins un objet réel sélectionné), Faire : Si la partie planifiée de l'objet global OG est contenue dans la partie planifiée de l'objet courant OR :
Faire pour tout objet réel B de la liste de sélection : Si B marqué sélectionné alors : i) Ajouter le temps additionnel de copie de B au TPC n) Soustraire la durée de réorganisation de B du temps de réorganisation TR m) Placer B dans la liste de suppression SUPP sinon Si la partie planifiée de l'objet global OG a une intersection non vide avec la partie planifiée de l'objet courant : Marquer sélection de l'objet courant OR impossible
La phase opérationnelle de Remise en cause des choix précédents comporte les opérations suivantes : Si sélection possible
Si durée de réorganisation + copie de l'objet courant OR > durée résiduelle dans la fenêtre « batch » de dans la région disponible, alors Marquer sélection de l'objet courant impossible Sinon (durée réorg + copie < durée résiduelle « batch ») Si le temps de réorganisation (durée de réorganisation de l'objet courant) > durée résiduelle de réorganisation Initialiser : gain résiduel = gain de l'objet courant
Initialiser : temps restant à gagner = durée de réorganisation de l'objet courant - durée résiduelle de réorganisation
Faire pour tout objet réel B (déjà sélectionné) de la liste SELECT/OR en commençant par le précédent de l'objet courant OR et dans l'ordre de priorités croissantes tant que le miteur des remises en cause >0 et que le temps restant à gagner < 0 : Si B est sélectionné, sans être sous objet de l'objet courant, et si gain B < gain résiduel (= gain de l'objet courant OR)
Soustraire le gain de B du gain résiduel
Soustraire la durée de réorganisation de B du temps restant à gagner Ajouter le temps additionnel de copie de B au temps provisoire de copie
Placer B dans la liste de suppression SUPP Décrémenter le hmiteur de remises en cause Si le temps à gagner est >0
Marquer sélection de l'objet courant impossible Sinon sélection possible soit parce que le temps gagner après l'élimination de
B est < 0, soit par ce que temps de réorganisation (durée de réorganisation de l'objet courant) < durée résiduelle de réorganisation
La phase opérationnelle de Vérification de la suffisance du temps copie comporte les opérations suivantes : Si sélection possible
Initialiser : Temps additionnel de copie de l'objet courant = temps de copie de l'objet courant
Si copie à faire pour l'objet courant OR,
Faire pour tout objet de la liste des objets restant à copier (liste PRIOCOPIE) tant que la priorité de l'objet à copier > à la priorité de l'objet à réorganiser
Soustraire le temps de copie de l'objet à copier du temps provisoire de copie
Mais si l'objet à copier est un sous-objet de l'objet courant à réorganiser Soustraire le temps de copie de l'objet à copier du temps provisoire de copie (= temps résiduel de copie)
Si le temps additionnel de copie de l'objet courant > temps provisoire de copie
Marquer sélection de l'objet courant impossible La phase opérationnelle de Sélection de l'objet courant comporte les opérations suivantes : Si sélection possible
Positionner l'indicateur de sélection IndS de l'objet courant ; Positionner l'indicateur d'affectation de l'objet global associé à l'objet courant ; Noter la partie planifiée PPO de l'objet global associé à l'objet courant OR; Valoriser pointeur (suite) de sélection de l'objet courant OR = pointeur liste de sélection PointLS de l'objet global OG , Valoriser : pointeur liste de sélection PointLS de l'objet global = adresse de l'objet courant OR (l'objet courant est ajouté la liste de sélection SELECT/OR );
Soustraire le temps additionnel de copie de l'objet courant du temps résiduel de copie TRC ; Soustraire la durée de réorganisation de l'objet courant OR du temps résiduel de réorganisation TRR ;
Si le pointeur de liste de suppression est non nul
Faire pour tout objet réel B de la liste de suppression SUPP: Si B est marqué sélectionné Annuler l'indicateur de sélection de B
Ajouter la durée de réorganisation de B au temps résiduel de réorganisation TRR.
Nota : il n'est pas utile d'enlever B de la liste de sélection car seuls les objets réels OR définitivement sélectionnés et marqués par l'indicateur de sélection seront considérés comme tels et examinés par la suite. B Prochain Objet à Copier
La recherche du prochain objet à copier est effectuée chaque fois qu'une région est libérée par une image copie terminée ou qu'une région est disponible et qu'un nouvel objet a été introduit suite à une réorganisation. Les objets doivent être triés par priorités décroissantes et tailles croissantes, les objets provenant des réorganisations étant placés en tête de liste
Le planning s'effectue du moins prioritaire au plus prioritaire et il est possible qu'un gros objet (longue copie) déborde de la région de copie qui lui a été attribuée. Cette situation est acceptable dans la mesure où l'on s'est assuré que l'objet tenait dans la région du point de vue Temps Résiduel de Copie et du fait qu'une technique valable de planification consisterait à enlever de cette région un objet moins prioritaire déjà sélectionné et de le placer dans une autre région, ce qui ne changerait pas la sélection pour cette région
Le pointeur prochain objet à copier est valorisé pour chaque région, mais pour la raison citée précédemment, il est recommandé de refaire le planning à chaque fois, même initialement quand toutes les régions sont disponibles.
Enfin il est possible que le planning copie choisisse un objet qui n'appartienne pas (encore) à la liste de copie parce sa réorganisation n'est pas terminée. Dans ce cas on se met en attente (région disponible) Le traitement Prochain Objet à Copier comporte les deux phases opérationnelles suivantes : Sélection des objets à copier Rétroplanning de copie
La phase opérationnelle de Sélection des objets à copier comporte les opérations suivantes : Faire un planning rapide de réorganisation PPR*; Initialiser les piles de sélection de copie à vide ;
Initialiser : temps résiduel de copie TRC = temps total de fenêtre « batch » restant disponible dans les régions « copie » après exécution des copies en cours ; Initialiser EC = minimum (durée unitaire de copie des objets à réorganiser OR) Faire pour toutes les régions de réorganisation, Si région active
Si image copie de l'objet en cours de réorganisation à faire,
Faire pour tout sous-objet pouvant être copié séparément (partition) Soustraire le temps de copie du sous-objet de la durée résiduelle de copie Placer le sous-objet courant en haut de la première pile de sélection de copie.
Faire pour tout objet réel sélectionné de la liste des objets OR à réorganiser SELECT/OR dans l'ordre des priorités décroissantes : Si image copie de l'objet courant OR à faire, Faire pour tout sous-objet pouvant être copié séparément (partition)
Soustraire le temps de copie du sous-objet de la durée résiduelle de copie Placer le sous-objet courant en haut de la première pile de sélection de copie.
Faire pour tout objet de la liste des objets à copier OC dans l'ordre des priorités décroissantes, tant que la durée résiduelle de copie TRC > EC
Si le temps de copie de l'objet OC < durée résiduelle de copie TRC,
Si l'objet à copier OC n'est pas déjà dans la première pile (l'objet OC est un sous-objet ; vérification possible par test de la partie réorganisée de l'objet global en cas de partition), Soustraire le temps de copie du sous-objet de la durée résiduelle de copie
Placer le sous-objet courant en haut de la seconde pile de sélection de copie. Placer la première pile de sélection de copie sur la seconde (constituant ainsi la liste SELECT/COPIE). La phase opérationnelle de Rétroplanning de copie comporte les opérations suivantes :
Faire pour toute région de copie : Durée de la région = Durée de la fenêtre - heure relative estimée de fin de traitement en cours dans la région
Durée consommée région = 0
Initialiser le premier pointeur objet à copier de la région courante à 0. Faire de haut en bas pour tout objet de la pile de sélection de copie :
Si temps de copie de l'objet courant OC < durée de la région la plus longue ; Rechercher une région dont la durée consommée est minimale ; Si temps de copie de l'objet OC > durée de la région courante - durée consommée Rechercher une région pour laquelle : durée de la région - durée consommée de la région -temps de copie de l'objet courant soit minimal et positive ou nulle, Si aucune région ne convient
Rechercher une région pour laquelle : durée de la région - durée consommée de la région -temps de copie de l'objet courant soit maximale (c.à.d minimale en valeur absolue) et le temps de copie de l'objet courant < durée de la région,
Si l'objet courant OC appartient à la seconde pile,
Valoriser :poιnteur premier objet à copier POC de la région courante = adresse de l'objet courant OC, Ajouter la durée de copie de OC à la durée consommée de la région courante.
C Prochain Objet à Réorganiser
La recherche du prochain objet à réorganiser est effectuée chaque de fois qu'une région est libérée par une réorganisation terminée. Préalablement les priorités ont dû être calculées ou corrigées et les objets réels triés dans l'ordre des priorités décroissantes
Comme pour la copie, le planning s'effectue du moins prioritaire au plus prioritaire On commence par planifier les copies engendrées par les réorganisations, ce qui permet de calculer une heure limite de fin de réorganisation pour chaque objet devant être copié Le temps disponible de chaque région de réorganisation est divisé en trois parties :
1 la durée consommée effectivement par les réorganisations planifiées
2 la durée gaspillée par le temps réservé à la copie après réorganisation
3 - la durée résiduelle allant du début à la première réorganisation Le processus tente de remplir la durée gaspillée par des réorganisations d'objets ne nécessitant pas de copie. Quand un objet à réorganiser est sélectionné, il est retiré de la liste ainsi que ses index (si applicable) et tous les autres objets qui ont des partitions communes avec cet objet. Les priorités des autres objets pouvant partager un index avec celui-ci sont également recalculées (pour tenir compte de l'impact de la réorganisation de l'index) et ces objets sont replacés aux bons endroits dans la liste des objets réels à réorganiser
Le traitement Prochain Objet à Réorganiser comporte les quatre phases opérationnelles suivantes : Rétroplanning de copie Rétroplanning de réorganisation
Identification de la région de traitement Inscription de l'objet au planning
La phase opérationnelle de Rétroplanning de copie comporte les opérations suivantes : Faire un planning rapide
Faire pour toute région de copie :
Durée consommée de la région = 0 Faire pour tout objet réel OR sélectionné de la liste des réorganisations SELECT/OR (dans l'ordre des priorités croissantes) Initialiser :'temps à réserver pour copie de l'objet courant '= 0
Si image copie de l'objet courant OR à faire,
Faire pour tout sous-objet pouvant être copié séparément (partition),
Rechercher une région dont la durée consommée est minimale, ci- après région courante Ajouter le temps de copie du sous-objet à la durée consommée de la région courante,
Valoriser 'temps à réserver pour copie de l'objet courant' = max (temps à réserver pour copie de l'objet courant OR, durée consommée de la région courante) La phase opérationnelle de Rétroplanning de réorganisation comporte les opérations suivantes : Faire pour toute région de réorganisation :
Durée de la région = Durée de la fenêtre - heure relative estimée de fin du traitement en cours dans la région Durée consommée dans la région = 0
Durée gaspillée dans la région = 0 Pointeur premier objet à réorganiser de la région courante = 0 Faire pour tout objet réel OR sélectionné de la liste SELECT/OR dans l'ordre des priorités croissantes
Faire pour chaque région
Si l'image copie de l'objet courant OR à faire, Calculer dernier délai de la région = durée de réorganisation de l'objet courant + max de [temps à réserver pour copie de l'objet courant, (durée consommée de la région + durée gaspillée de la région)] Sinon,
Calculer le dernier délai de la région = durée consommée de la région + max de[(durée de réorganisation de l'objet courant, durée gaspillé de la région)]
La phase opérationnelle de Identification de la région de traitement comporte les opérations suivantes : Rechercher une région dont le délai est minimal, Si dernier délai de la région courante > durée de la région courante, Rechercher une région pour laquelle : [durée de la région courante - dernier délai de la région courante] est minimale et positive ou nulle, Sinon, si aucune région ne convient,
Rechercher une région telle que : [valeur absolue de (durée de région - dernier délai de la région courante)] est minimale, et [durée de réorganisation + copie objet courant] < durée de la région.
La phase opérationnelle de Inscription de l'objet au planning comporte les opérations suivantes : Si image copie de l'objet courant OR à faire ou durée gaspillée de la région courante = 0,
Valoriser: pointeur premier objet à réorganiser POR de la région courante = adresse de l'objet courant OR,
Ajouter la durée de réorganisation de l'objet courant OR à la durée consommée de la région courante,
Valoriser : durée gaspillée de la région courante = dernier délai de la région courante - durée consommée de la région courante Lorsque l'une des deux régions de traitement identifiées concernées
(réorganisation ou copie) devient disponible, le système lancera, en l'absence de tout événement de remise à zéro RAZR≈l ou RAZC≈l survenu entre temps pour le traitement concerné, soit une réorganisation de l'objet POR (prochain objet à réorganiser) correspondant, soit une copie de l'objet POC correspondant (prochain objet à copier).
Une fois le traitement lancé le processus d'identification IDPOR et/ou IDPOC reprendra, les listes PRIOREORG et PRIOCOPIE étant mises à jour en continue, jusqu'à épuisement du temps de réorganisation et/ou de copie imparti aux diverses régions de réorganisation et de copie correspondantes dans la fenêtre « Batch ».
Bien entendu la méthode de gestion des réorganisations et de copies dans un ensembles de bases de données indexées d'un système d'information selon l'invention n'est pas limitée au mode de mise en œuvre décrit ci-dessus et couvre d'autres variantes et modifications qui pourraient être appréciées par l'homme de métier tout en restant dans le cadre des revendications présentées ci-après.
En particulier la méthode de gestion selon l'invention utilisée pour à la réorganisation « hors ligne » (off line) des bases de données est également applicable à la réorganisation des bases de données « en temps réel » ou « en ligne » (on line) selon une méthode mixte, la réorganisation « hors ligne » et la réorganisation « en ligne » n'étant pas exclusive l'une de l'autre.

Claims

REVENDICATIONS 1. Méthode de gestion des réorganisations dans un ensemble de bases de données indexées d'un système informatique d'information adaptée à la réorganisation « hors ligne » dans au moins une région de traitement de réorganisation du système, caractérisée en ce qu'elle comporte les phases opérationnelles suivantes :
(10) - Création et maintien par mise à jour en continu d'une liste PRIOREORG des objets à réorganiser par priorité décroissante fonction de l'état de désorganisation des objets à réorganiser ;
(20) - Exécution du processus IDPOR d'identification du premier ou prochain objet à réorganiser POR avec, à chaque événement RAZR≈l interne au système pour lequel la sélection du premier ou prochain objet à réorganiser doit être remise en cause, interruption et remise à zéro et nouvelle exécution du processus IDPOR, lequel processus comportant les étapes suivantes :
(21) - Etablissement d'un planning rapide de réorganisation PRR à l'aide de la liste PRIOREORG et du temps opérationnel résiduel disponible TRR dans l'ensemble des régions de réorganisation et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet;
(22) - Etablissement d'un rétroplanning de réorganisation dans lequel pour tout objet courant à réorganiser OR extrait de la liste SELECT/OR par priorité croissante pour favoriser le traitement avancé des objets de plus grandes tailles possibles, on calcule pour chaque région de réorganisation le dernier délai de la région DDRR, représentant dans la fenêtre « batch » allouée à la réorganisation « hors ligne » le temps minimal nécessaire à la réorganisation de l'objet courant OR, égal dans le cas présent à la durée de temps consommé DCRR plus le temps de réorganisation de l'objet courant DROR;
(23) - Identification de la région de traitement RTR de l'objet courant OR par adéquation optimisée entre la durée de traitement disponible dans ladite région DRR avec la durée de traitement DROR nécessaire pour la réorganisation de l'objet POR avec DRR - DDRR minimal <0 ;
(24) - Inscription de l'objet courant OR comme prochain objet à réorganiser POR au planning de la région identifiée en valorisant le pointeur POR correspondant à l'adresse de l'objet courant OR et en augmentant la durée de temps consommé DCRR dans la région du temps de la réorganisation DROR (30) - Lancement de la réorganisation de l'objet POR dès que la région de traitement de réorganisation RTR identifiée est libérée en l'absence de tout événement RAZR≈l survenu entre temps ; Remise à zéro et nouvelle exécution du processus IDPOR.
2. Méthode de gestion selon la revendication 1 , caractérisée en ce que l'ordre optimal des réorganisations est coordonné avec l'ordre des copies de sauvegarde d'objets du système d'information en tenant compte des réorganisations en cours ou juste effectuées.
3. Méthode de gestion selon la revendication 2, caractérisée en ce que l'ordre des copies de sauvegarde est modifié par l'exécution en première priorité, pour au moins un objet à réorganiser OR, de la copie dudit objet OR au plus tôt en fin de traitement de réorganisation.
4. Méthode de gestion des réorganisations d'un ensemble de bases de données indexées d'un système d'information adaptée à la réorganisation « hors ligne » dans au moins une région de traitement de réorganisation selon l'une des revendications 1 à 3, caractérisée en ce qu'elle intègre l'organisation des copies dans au moins une région de traitement de copie et comporte les phases opérationnelles suivantes: (40) - Création et maintien par mise à jour en continu :
- d'une liste PRIOREORG des objets à réorganiser par priorité décroissante fonction de l'état de désorganisation des objets à réorganiser ; et - d'une liste PRIOCOPIE des objets à copier par priorité décroissante fonction de l'ancienneté des dernières copies des objets à copier.
(50) - Surveillance en continu de l'apparition dans le système d'information de tout événement :
- RAZR≈l pour lequel la sélection du premier ou prochain objet à réorganiser POR doit être remise en cause, notamment une fin d'une tâche de réorganisation dans une région de traitement de réorganisation et/ou la libération d'une zone de traitement pour la réorganisation ou la copie ; et/ou
- RAZC≈l pour lequel la sélection du premier ou prochain objet à copier POC doit être remise en cause, notamment une fin d'une tâche de copie dans une région de traitement de copie, une copie prioritaire en fin de réorganisation et/ou la libération d'une zone de traitement pour la réorganisation ou la copie, avec pour tout événement RAZR≈l, lancement de l'exécution du processus IDPOR d'identification du premier objet à réorganiser POR ou, si le processus IDPOR est en cours d'exécution, interruption et nouveau lancement du processus IDPOR ; et/ou pour tout événement RAZC≈l, lancement de l'exécution du processus IDPOC d'identification du premier objet à copier POC ou, si le processus IDPOC est en cours d'exécution, interruption et nouveau lancement du processus IDPOC ; - le processus IDPOR comportant les opérations suivantes :
(51) - Etablissement d'un planning rapide de réorganisation PRR* à l'aide de la liste PRIOREORG et du temps opérationnel de réorganisation résiduel disponible TRR dans l'ensemble des régions de réorganisation et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet;
(52) - Etablissement d'un planning rapide de copie PRC à partir de la liste SELECT/OR, puis de la liste PRIOCOPIE et dans la limite du temps opérationnel de copie résiduel disponible TRC dans l'ensemble des régions de copie, d'une liste de sélection SELECT/OC en mémoire de type LIFO ou pile pour d'objets à copier OC empilés par priorités décroissantes;
(53) - Etablissement d'un rétroplanning de copie dans lequel pour tout objet courant à réorganiser extrait de la liste SELECT/OR par priorité croissante, on calcule pour chaque région de copie le temps à réserver TCR pour la copie de l'objet OR après réorganisation ;
(54) - Etablissement d'un rétroplanning de réorganisation dans lequel pour tout objet courant à réorganiser OR extrait de la liste SELECT/OR par priorité croissante pour favoriser le traitement avancé des objets de plus grandes tailles possibles, on calcule pour chaque région de réorganisation le dernier délai de la région DDR, représentant dans la fenêtre « batch » allouée à la réorganisation « hors ligne » le délai minimal nécessaire à la réorganisation de l'objet OR, selon une formulation distincte si une copie de l'objet OR en fin de réorganisation doit être faite ou non; (55) - Identification de la région de traitement RTR de l'objet courant OR par adéquation optimisée entre la durée de traitement disponible dans ladite région DRR avec la durée de traitement DROR nécessaire pour la réorganisation de l'objet courant
OR avec DRR - DDL minimal <0 sans copie à faire ou avec valeur absolue de DRR -
DDL minimal et DROR+DCOR < DRR si copie à faire; (56) • Inscription de l'objet courant OR comme prochain objet à réorganiser POR au planning de la région identifiée en valorisant le pointeur POR correspondant à l'adresse de l'objet OR, en augmentant la durée de temps consommé DCRR dans la région du temps de la réorganisation DROR et recalculant la durée gaspillée dans la région de réorganisation DGRR du fait des copies d'objets OR en fin de réorganisation ; 60)- Lancement, en l'absence de tout événement de remise à zéro RAZR≈l survenu entre temps, dès qu'une région de traitement de réorganisation RTR identifiée est disponible, de la réorganisation de l'objet POR ; Remise à zéro et nouvelle exécution du processus IDPOR ; et
- le processus IDPOC comportant les opérations suivantes :
(51) - Etablissement d'un planning rapide de réorganisation PRR* à l'aide de la liste PRIOREORG et du temps opérationnel de réorganisation résiduel disponible TRR et d'une liste de sélection SELECT/OR d'objets à réorganiser OR ordonnés par priorités décroissantes optimisées en fonction du gain de la réorganisation de chaque objet OR, ledit gain étant défini comme le produit d'un facteur représentatif du taux de désorganisation d'un objet OR par le temps de réorganisation de cet objet; (52) - Etablissement d'un planning rapide de copie PRC à partir de la liste
SELECT/OR, puis de la liste PRIOCOPIE et dans la limite du temps opérationnel de copie résiduel disponible TRC, d'une liste de sélection SELECT/OC en mémoire de type LIFO ou pile d'objets à copier OC empilés par priorités décroissantes;
(53') - Etablissement d'un rétroplanning de copie avec détermination des durées de copie disponibles en région copie, dépilage de la liste SELECT/OC de haut en bas et recherche d'une région copie par adéquation entre la durée copie disponible et la durée copie de l'objet courant à copier OC de façon à copier les objets les plus grands possibles et marquage de l'origine de réorganisation ou non de l'objet à copier ; suivi de
- l'identification de la région de traitement RTC de l'objet à copier par adéquation entre la durée de traitement disponible dans ladite région avec la durée de traitement nécessaire pour la copie de l'objet courant OC; suivie de
- l'inscription de l'objet courant OC comme le prochain objet à copier POC au planning de la région RTC identifiée en valorisant le pointeur POC correspondant à l'adresse de l'objet OC et en diminuant la durée de traitement disponible du temps de la copie de l'objet OC retenu comme POC ;
(60')- Lancement, en l'absence de tout événement de remise à zéro RAZC≈l survenu entre temps, dès qu'une région de traitement de copie TRC identifiée est disponible de la copie de l'objet POC; Remise à zéro et nouvelle exécution du processus IDPOC.
5. Méthode de gestion selon la revendication 4, caractérisée en ce qu'elle intègre dans les phases finales de processus IDPOR d'un objet OR une phase de recherche d'un ou plusieurs objets à réorganiser OR sans copie OR dans la liste SELECT/OR ou à défaut dans la liste PRIOREORG susceptibles d'être réorganisés dans la région de traitement RTR correspondante pendant l'intervalle du temps d'attente de la copie de l'objet OR après réorganisation. 6. Méthode de gestion selon l'une des revendications 4 et 5, caractérisée en ce que ladite phase (51) d'établissement d'un planning rapide de réorganisation PRR* comporte les opérations suivantes : (511) - Initialisation : dans laquelle sont notamment annulés les indicateurs de sélection des objets OR, mitiahsé le compteur-hmiteur de remises en causes, les temps résiduels de copie TRC et de réorganisation TRR et la durée minimale E de réorganisation et copie d'un objet OR ; (512) - Boucle sur objets : dans laquelle notamment pour tout objet réel OR de la liste PRIOREORG pris dans l'ordre décroissant jusqu'à ce que TRR < E, une marque de 'sélection possible' de l'objet est posée;
(513)- Elimination des intersections d'objets : dans laquelle notamment sont éliminés de la 'sélection possible' les objets réels OR parties d'espaces de tables également appelés objets globaux déjà sélectionnés en tout ou partie;
(514) - Remise en cause des choix précédents : dans laquelle notamment sont éliminés de la 'sélection possible' les objets OR dont le temps total de réorganisation et copie est supérieur au temps de réorganisation résiduel TRR et à défaut dans laquelle l'objet courant OR et les objets OR déjà sélectionnés dans la liste SELECT/OR sont soumis à un processus d'optimisation en fonction du gain de réorganisation avec replacement d'un objet déjà sélectionné par l'objet en cours avec essais, dans la limite du terme du compteur hmiteur, de combinaisons successives tendant à retenir pour être sélectionné au final dans SELECT/OR des objets de plus grand gain de réorganisation possible et à les associer aux autres objets OR de la 'sélection possible' de façon à ce que le temps total des réorganisations de tous les objets OR retenus soit inférieur mais le plus proche possible du temps résiduel de réorganisation TRR.
(515) - Vérification de la suffisance du temps copie disponible dans le temps résiduel de copie TRC pour chaque objet OR en passe d'être finalement sélectionné pour la réorganisation compte tenu de la priorité de réorganisation de l'objet OR par rapport aux objets à copier en préalable du fait de leurs priorités copie supérieures.
(516) - Sélection de l'objet courant OR dans la liste SELECT/OR : dans laquelle notamment sont positionnés les indicateurs de l'objet courant OR et de l'objet global associé, annulés éventuellement les indicateurs du ou des objets OR désélectionnés et diminuer TRR et TRC des temps respectifs de réorganisation et de copie 7. Méthode de gestion selon l'une des revendications 4 à 6 caractérisée en ce que ladite phase (52) d'établissement d'un planning rapide de copie PRC comporte les opérations suivantes:
(521) - Initialisation : au sortir d'un planning de réorganisation PRR* et dans laquelle sont notamment vidées les piles de sélection de copie PSC1 et PSC2, mitialisés le compteur-hmiteur de remises en causes, le temps résiduel de copie TRC et la durée minimale EC de copie d'un objet à copier OC ;
(522) - Inspection des régions de réorganisation : Pour toutes les régions, si région active, et si image copie de l'objet en cours de réorganisation à faire et/ou si image copie de tout objet OR de la liste SELECT/OR pris dans l'ordre des priorités décroissantes à faire: pour tout sous-objet susceptible d'être copié séparément, notamment une partition, soustraction du temps de copie du sous-objet de TRC et placement du sous-objet en haut de la première pile PSC1 ;
(523) - traitement de la liste des objets à copier PRIOCOPIE : dans laquelle notamment pour tout objet à copier OC de la liste PRIOCOPIE pris dans l'ordre décroissant jusqu'à ce que TRC < EC et absent de PSC1, soustraction du temps de copie du sous-objet OC de TRC et placement du sous-objet OC en haut de la seconde
(524) - Empilage des piles de sélection : dans laquelle la pile PSC1 est superposée à la pile PSC2 pour constituer la liste SELECT/OC.
8 Méthode de gestion selon la revendication 7 caractérisée en ce que ladite phase (53) d'établissement d'un rétroplanning de copie dans le processus IDPOR comporte les opérations suivantes:
(531) Initialisation des régions de copie : dans laquelle au sortir d'un planning de réorganisation pour toutes les régions de copie, la durée consommée de la région DCRC est mise à zéro,
(532) Détermination du temps de copie à réserver TCR : dans laquelle pour tout objet réel de la liste SELECT/OR parcourue dans l'ordre des priorités croissantes pris comme objet courant à réorganiser OR,
-le temps à réserver pour copier TCR l'objet réel courant OR est mis à zéro ;
-Si l'image copie de tout objet OR de la liste SELECT/OR pris dans l'ordre des priorités croissantes doit être faite: pour tout sous-objet susceptible d'être copié séparément, notamment partition, on recherche une région copie dont la durée consommée DCRC est minimale, on ajoute le temps de copie du sous-objet à la durée consommée de la région courante DCRC et on valorise le temps à réserver TCR pour copie de l'objet courant = maximum entre le temps à réserver TCR pour copie de l'objet courant et durée consommée dans la région DCRC 9 Méthode de gestion selon la revendication 8, caractérisée en ce que ladite phase de rétroplanning de réorganisation (54) dans le processus IDPOR comporte les opérations suivantes :
(541) - Initialisation : dans laquelle pour toute région de réorganisation,
- Durée de la région DRR = Durée de la fenêtre 'batch' DFB moins heure relative estimée de fin du traitement de réorganisation en cours dans la région HRFR
- Durée consommée dans la région DCRR = 0
- Durée gaspillée dans la région DGRR = 0 - Pointeur premier objet à réorganiser de la région courante = 0
(542) - Détermination du dernier délai de la région de réorganisation DDRR : dans laquelle pour tout objet réel OR sélectionné de la liste SELECT/OR dans l'ordre des priorités croissantes : Pour chaque région si l'image copie de l'objet courant OR à faire, calcul du dernier délai de la région DDRR = durée de réorganisation de l'objet courant DROR + maximum entre le temps à réserver pour copie de l'objet courant TCR et le total de la durée consommée de la région DCRR + la durée gaspillée de la région DGRR ;
• Sinon, calcul du dernier délai de la région DDR = durée consommée de la région DCRR + maximum entre la durée de réorganisation de l'objet courant DROR et la durée gaspillée de la région DGRR.
10 Méthode de gestion selon la revendication 9, caractérisée en ce que ladite phase d'identification de la région de réorganisation RTR (55) comporte les opérations suivantes : Selon le type d'objet courant à réorganiser OR (551) - Recherche de la région de traitement de réorganisation susceptible d'accueillir de façon optimale un objet à réorganiser OR sans copie : comportant
• la recherche d'une région dont le dernier délai DDRR est minimal, et si dernier délai de la région courante DDR est supérieur à la durée de la région courante DRR, la recherche d'une région pour laquelle : la valeur de la durée de la région courante DRR moins le dernier délai de la région courante DDRR est minimale et positive ou nulle ; sinon (552) - la recherche de la région de réorganisation susceptible d'accueillir de façon optimale un objet à réorganiser OR avec copie : comportant
• Recherche d'une région telle que : la valeur de la durée de la région DRR moins dernier délai de la région courante DDRR est minimale en valeur absolue, et la valeur de la durée de réorganisation DROR plus le temps de copie objet courant TCR est inférieur ou égal à la durée de la région DRR.
11 Méthode de gestion selon la revendication 10, caractérisée en ce que ladite phase d'inscription de l'objet OR au planning de la région de réorganisation RTR (56) comporte les opérations suivantes : (561) - Inscription de l'objet OR comme prochain objet à réorganiser POR : dans laquelle si l'image copie de l'objet courant à faire ou durée gaspillée de la région courante égale zéro, on valorise le pointeur premier objet à réorganiser POR de la région courante à l'adresse de l'objet courant OR, (562) - mise à jour DCRR et DGRR : dans laquelle on ajoute la durée de réorganisation de l'objet courant DROC à la durée consommée de la région courante DCRR, et on valorise la durée gaspillée de la région courante DGRR à la valeur du dernier délai de la région courante DDRR moins la durée consommée de la région courante DCRR
12. Méthode de gestion selon l'une des revendications 4 à 7 caractérisée en ce que ladite phase (53') d'établissement d'un rétroplanning de copie dans le processus IDPOC comporte les opérations suivantes:
(531') Initialisation des régions de copie : dans laquelle pour toutes les régions, - la durée de région DRCOP est valorisée à la durée fenêtre « batch » DFB moins l'heure relative estimée de fin de traitement copie en cours HRFC,
- la durée consommée de la région DCRCOP est mise à zéro,
- le pointeur du premier objet à copier POC de la région courante est mis à zéro (532') Dépilage et identification du prochain objet à copier POC : Dans la laquelle, Pour tout objet de la pile PSC1/PSC2 parcourue de haut en bas un objet courant à copier OC est extrait lorsque le temps de copie de l'objet courant TCOC est inférieur ou égal à la longue DRCOP;
On cherche pour identifier la région de traitement copie une région dont la durée consommée DCRCOP est minimale ; dans l'affirmative si le temps de copie de l'objet courant TCOC est supérieur à DRCOP moins DCRCOP on cherche une région pour laquelle DRCOP moins DCRCOP moins TCOC est minimale, positive ou nulle, Si aucune région ne convient, on choisit une région à copier pour laquelle DRCOP moins DCRCOP moins TCOC est négative et minimale en valeur absolue et pour laquelle TCOC est inférieur ou égal à DRCOP ; Si l'objet courant appartient à la seconde pile PSC2, soit un objet à copier non issu d'une réorganisation, le pointeur de l'objet POC pour la région courante choisie est valorisé à l'adresse de l'objet courant OC de façon à inscrire l'objet POC au planning de la région de traitement copie RTC identifiée ; et Pour terminer, on ajoute la durée copie TCOC à la durée consommée de la région courante DCRCOP.
13. Méthode de gestion selon l'une de revendications précédentes, caractérisée en ce que lesdits événements internes au système RAZR≈l et RARC≈l entraînant la remise en cause de la sélection des objets POR ou POC sont notamment constitués respectivement par la fin d'une tâche de réorganisation dans une région de traitement de réorganisation pour les objets POR ou par la fin d'une tâche de copie dans une région de traitement de copie pour les objets POC, une copie prioritaire en fin de réorganisation et/ou la libération d'une zone de traitement pour les objets POR et POC.
14 Méthode de gestion des réorganisations d'un ensemble de bases de données indexées d'un système informatique d'information adaptée à la réorganisation « en ligne » et destinée à travailler en association avec une méthode de gestion selon l'une des revendications précédentes, caractérisée en ce qu'elle comporte au moins les phases opérationnelles suivantes: - une phase d'analyse instantanée d'au moins un objet à réorganiser OR parmi les objets susceptibles de réorganisation, notamment bases de données, partitions et/ou index à réorganiser, et d'estimation du surcoût associé au niveau de désorganisation de l'objet à réorganiser OR; - une phase d'estimation instantanée du coût de la réorganisation en ligne en fonction de la taille dudit objet à réorganiser OR et du taux de désorganisation dudit objet à réorganiser OR ; et
• une phase de détermination du seuil Ds de désorganisation minimal de l'objet à réorganiser OR au dessus duquel seuil la réorganisation « en ligne » peut être lancée pour cet objet OR et le cas échéant du lancement effectif de cette réorganisation en ligne, le seuil Ds correspondant sensiblement au minimum du coût total du surcoût estimé de la désorganisation et du coût estimé de la réorganisation pour l'objet OR considéré
15. Méthode de gestion des réorganisations « en ligne » selon la revendication 14, caractérisée en ce que le lancement de la réorganisation « en ligne » est retardé pour attendre une fenêtre temporelle d'activité réduite de la base de données concernée.
16. Méthode de gestion des réorganisations « en ligne » et « hors line » selon l'une des revendications 14 et 15, caractérisée en ce que pour un objet à réorganiser OR sélectionné comme premier objet à réorganiser POR la priorité est donnée pour la réorganisation « hors ligne », l'intervention de la réorganisation « en ligne » n'étant requise qu'après dépassement du seuil Ds pour l'objet POR considéré
17. Méthode de gestion des réorganisations « en ligne » selon l'une des revendications 14 à 16 et utilisée pour la réorganisation des bases de données indexées de type espace de tables, la méthode étant caractérisée en ce que pour un objet à réorganiser OR, le seuil Ds est défini par une approximation donnée par la formule F5' suivante :
R = Ds2 r Co* / 2.I.C = 1 lorsque que U moyenne horaire du nombre de mises à jour sur l'objet OR est faible, et dans laquelle : r désigne le nombre moyen de lignes ou clé-RID par page de l'objet entier,
I désigne le nombre d'insertions de lignes, ou de clé-RID pour les index, à l'heure dans l'objet OR,
Co* désigne le surcoût horaire lorsque l'objet est totalement désorganisé c désigne un paramètre machine, le rapport du temps d'accès E/S par la taille de l'objet Nbp.
18. Méthode de gestion des réorganisations « en ligne » selon la revendication 17 et utilisée pour la réorganisation des index, caractérisé en ce que pour un index, le seuil Dsl est défini par une approximation donnée par la formule F7'suivante : R= Dsl2 r (t*+l)Nbp.V / [2(V+3)] = 1 lorsque que U moyenne horaire du nombre de mises à jour sur l'index est faible, et dans laquelle :
Ts désigne le temps de déplacement de bras, Tl le temps de latence (1/2 tour du bras). c = (Ts+ 3.TI)/Nbp où Ts en E/S désigne le temps de déplacement du bras du disque, et Tl le temps de latence, 1/2 tour du bras, et V = Ts/TI. t* désigne le taux de relecture de l'objet, c'est à dire le nombre moyen de fois qu'une entrée sera relue.
19. Méthode de gestion des réorganisations « en ligne » selon la revendication 17 et utilisée pour la réorganisation des bases de données indexées de type espace de tables monotable à n index, caractérisé en ce que le seuil DsT est défini pour un espace monotable par une approximation donnée par la formule F13' suivante : R= r.Nbp[DsT2.L (V+l) + V. S (DsT^bi2) (t*i+l)]/ (2V+6) = 1 lorsque que U, moyenne horaire du nombre de mises à jour sur l'espace monotable est faible, et dans laquelle :
L désigne la proportion de lignes accédées par parcours séquentiel sur le nombre de lignes créées,
S représente le signe mathématique Sigma, somme des expressions f(xi) pour i index allant de 1 à n, bi représentent les valeurs instantanées de D, taux de désorganisation de l'espace monotable, lors des dernières réorganisations des n index, et t*i représentent les taux d'accès directs au travers de chaque index i.
20. Méthode de gestion des réorganisations dans un ensemble de bases de données indexées d'un système informatique d'information selon l'une des revendications précédentes, caractérisée en ce qu'elle est appliquée à la réorganisation de bases de données indexées de type espace de tables. 21. Système informatique de type système d'information caractérisé en ce qu'il comporte un ensemble de bases de données indexées et les moyens matériels et logiciels adaptés pour la mise en œuvre de la méthode de gestion des réorganisations de base de données indexées selon l'une des revendications précédentes, notamment de bases de données de type espace de tables et/ou d'index.
PCT/FR2003/001076 2002-04-08 2003-04-04 Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d'un systeme informatique WO2003085554A1 (fr)

Priority Applications (4)

Application Number Priority Date Filing Date Title
US10/510,635 US20050165713A1 (en) 2002-04-08 2003-04-04 Method for reorganization management in a set of indexed databases of a computer system
EP03745825A EP1493109B1 (fr) 2002-04-08 2003-04-04 Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d'un systeme informatique
DE60310699T DE60310699D1 (de) 2002-04-08 2003-04-04 Verfahren zur umorganisationsverwaltung in einer menge indizierter datenbanken eines computersystems
AU2003246781A AU2003246781A1 (en) 2002-04-08 2003-04-04 Method for reorganization management in a set of indexed databases of a computer system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR0204301A FR2838214B1 (fr) 2002-04-08 2002-04-08 Methode de gestion des reorganisations dans un ensemble de bases de donnees d'un systeme informatique d'information
FR02/04301 2002-04-08

Publications (1)

Publication Number Publication Date
WO2003085554A1 true WO2003085554A1 (fr) 2003-10-16

Family

ID=28052164

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2003/001076 WO2003085554A1 (fr) 2002-04-08 2003-04-04 Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d'un systeme informatique

Country Status (7)

Country Link
US (1) US20050165713A1 (fr)
EP (1) EP1493109B1 (fr)
AT (1) ATE349737T1 (fr)
AU (1) AU2003246781A1 (fr)
DE (1) DE60310699D1 (fr)
FR (1) FR2838214B1 (fr)
WO (1) WO2003085554A1 (fr)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7110525B1 (en) 2001-06-25 2006-09-19 Toby Heller Agent training sensitive call routing system
KR100580184B1 (ko) * 2004-01-15 2006-05-16 삼성전자주식회사 1회 스캐닝에 의한 복수 이미지 파일들의 생성방법 및 장치
US20050223046A1 (en) * 2004-04-06 2005-10-06 Smith Rick A Method and system for balancing and scheduling database maintenance tasks
JP4854973B2 (ja) * 2005-03-09 2012-01-18 富士通株式会社 記憶制御プログラム、記憶制御方法、記憶制御装置および記憶制御システム
US7454449B2 (en) * 2005-12-20 2008-11-18 International Business Machines Corporation Method for reorganizing a set of database partitions
US8027955B2 (en) * 2007-03-19 2011-09-27 Microsoft Corporation Database management using a file to accumulate changes
TWI407764B (zh) * 2010-08-16 2013-09-01 Wistron Neweb Corp 跳轉方法、人機界面及無線電話子機
US9582521B2 (en) * 2013-02-11 2017-02-28 International Business Machines Corporation Management of database allocation during reorganization
US9298387B2 (en) * 2013-07-17 2016-03-29 International Business Machines Corporation Recovering from a pending uncompleted reorganization of a data set
US10990575B2 (en) 2019-03-22 2021-04-27 Richard E Barry Reorganization of databases by sectioning

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5881379A (en) * 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging
US5887274A (en) * 1992-05-27 1999-03-23 Cdb Software, Inc. Restartable fast DB2 tablespace reorganization method

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887274A (en) * 1992-05-27 1999-03-23 Cdb Software, Inc. Restartable fast DB2 tablespace reorganization method
US5881379A (en) * 1996-05-20 1999-03-09 International Business Machines Corporation System, method, and program for using duplicated direct pointer sets in keyed database records to enhance data recoverability without logging

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
BARU C ET AL: "Data reorganization in parallel database systems", ADVANCES IN PARALLEL AND DISTRIBUTED SYSTEMS, 1993., PROCEEDINGS OF THE IEEE WORKSHOP ON PRINCETON, NJ, USA 6 OCT. 1993, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, 1993, pages 102 - 107, XP010223428, ISBN: 0-8186-5250-0 *
MARUYAMA K ET AL: "Optimal reorganization of distributed space disk files", COMMUNICATIONS OF THE ACM, NOV. 1976, USA, vol. 19, no. 11, pages 634 - 642, XP002236355, ISSN: 0001-0782 *
SOCKUT G H ET AL: "A METHOD FOR ON-LINE REORGANIZATION OF A DATABASE", IBM SYSTEMS JOURNAL, IBM CORP. ARMONK, NEW YORK, US, vol. 36, no. 3, 1997, pages 411 - 436, XP000701880, ISSN: 0018-8670 *

Also Published As

Publication number Publication date
FR2838214B1 (fr) 2004-05-28
US20050165713A1 (en) 2005-07-28
ATE349737T1 (de) 2007-01-15
EP1493109B1 (fr) 2006-12-27
EP1493109A1 (fr) 2005-01-05
FR2838214A1 (fr) 2003-10-10
DE60310699D1 (de) 2007-02-08
AU2003246781A1 (en) 2003-10-20

Similar Documents

Publication Publication Date Title
EP1493109B1 (fr) Methode de gestion des reorganisations dans un ensemble de bases de donnees indexees d&#39;un systeme informatique
CN105138476B (zh) 一种基于hadoop异构存储的数据存储方法及系统
EP1909169B1 (fr) Système et procédé de stockage de masse
US20080168183A1 (en) N-way synchronization of data
US7624133B1 (en) Automatic detection of backup recovery sets
US20120221523A1 (en) Database Backup and Restore with Integrated Index Reorganization
EP0533536B1 (fr) Procédé de tri d&#39;objets
US20050177767A1 (en) Backup system and method for tape recording medium
CN107145403A (zh) 面向Web开发环境的关系型数据库数据回溯方法
US20070162506A1 (en) Method and system for performing a redistribute transparently in a multi-node system
US20220350736A1 (en) Object Storage Change-Events
FR2828567A1 (fr) Systeme de stockage a memoire flash a base de fenetres et procedes de gestion et d&#39;acces pour un tel systeme
US20100036890A1 (en) Database management method, database management apparatus, and database management program
EP1246065A1 (fr) Procédé de stockage de données informatiques et dispositif de stockage correspondant
CN106547481A (zh) 一种数据预分配方法和设备
CN107391544A (zh) 列式存储数据的处理方法、装置、设备及计算机储存介质
FR3088740A1 (fr) Traitement de donnees iteratif
FR2974214A1 (fr) Procede et systeme de rendu d&#39;une scene virtuelle en trois dimensions
CN107092525A (zh) 数据缓存方法和装置
FR2606182A1 (fr) Procede de memorisation et de catalogage d&#39;informations, et ordinateur comprenant un systeme de classement mettant en oeuvre ce procede
FR2715486A1 (fr) Procédé de comparaison de fichiers informatiques.
EP1866770B1 (fr) Méthode et système pour maintenir la cohérence d&#39;une mémoire cache utilisée par de multiples processus indépendants
EP4026016A1 (fr) Migration d&#39;une chaîne de blocs de données
WO2002056212A1 (fr) Procede de traitement et d&#39;acces a des donnees dans un systeme de reservation par ordinateur, et systeme de mise en oeuvre
FR2746526A1 (fr) Procede pour conserver une base de donnees a organisation temporelle et spatiale

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 2003745825

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10510635

Country of ref document: US

WWP Wipo information: published in national office

Ref document number: 2003745825

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP

WWG Wipo information: grant in national office

Ref document number: 2003745825

Country of ref document: EP