WO2000008569A1 - Data processing apparatus and method for optimising configuration parameters of a physical system - Google Patents
Data processing apparatus and method for optimising configuration parameters of a physical system Download PDFInfo
- Publication number
- WO2000008569A1 WO2000008569A1 PCT/GB1999/002449 GB9902449W WO0008569A1 WO 2000008569 A1 WO2000008569 A1 WO 2000008569A1 GB 9902449 W GB9902449 W GB 9902449W WO 0008569 A1 WO0008569 A1 WO 0008569A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- values
- string
- new
- sequence
- value
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/08—Learning-based routing, e.g. using neural networks or artificial intelligence
Definitions
- the present invention generally relates to the data processing method and apparatus for determining optimum parameters of the model of a physical system and for controlling the configuration of the physical system.
- the generation of a model of a physical system is used for a wide variety of applications including learning more about the behaviour of the system and controlling the parameters of the system.
- the model of the physical system can be used to try out parameters in order to determine optimum parameters which can then be used for controlling the physical system. In this way the effect of the parameters on the physical system can be predicted so that only optimum parameters are chosen for use in the control of the physical system.
- One such physical system for which configuration parameters are required is a distributed database. Because the use of corporate intranets continues to rise, the management of efficient access to data is becoming a key issue. Large information systems, often accessed on a global basis, are increasingly being provided by distributed means with use of "mirror sites" to ease congestion and improve local access. The configuration of the information system defining the location of the information and the servers to which clients are to direct queries is important in order to provide a system which has a high performance as perceived by the clients. Further, where access is truly global, static design solutions are not ideal, as the largest source of load on the system moves from geographic area to geographic area at different times of the day. This tends to create congestion that is "localised" in the region of demand.
- the present invention provides an improved method of apparatus for determining optimum parameters of the model of a physical system wherein at least one initial string of values representing the parameters of the model to be optimised is obtained; a cost value associated with the model having parameters represented by the reached string of values is determined; a new string of values is repeatedly generated by a) selecting a sequence of values of random length starting at a random position in a string of values, b) replacing the sequence of values of the same length in a string of values at a random position and c) changing the value of one more of the values of the resulting string of values to generate a new string of values; a cost value associated with the model having parameters represented by the new sting of values is determined; and the optimum parameters are determined as one of the initial or new string of values for which the cost value associated with the model having the optimum parameters is closest to a target, such as a maximum or a minimum.
- This technique is particularly applicable for the control of the configuration of a physical system wherein the model models the physical system and the new parameters generated represent new untried configurations of the physical system.
- the cost value output from the model can be used to determine whether the new configurations are an improvement or not. Once the optimum parameters have been determined they can be used to control the configuration of the physical system.
- the present invention is particularly suited to the problem of configuring a distributed database comprising a plurality of data servers connected over a network, each data server holding any number of data units, and a plurality of clients connected over the network to the data servers, each of said clients being adapted to retrieve data units from and/or update data units at one or more of the data servers .
- the configuration parameters define which data server is to be accessed by which client and the distributed database is modelled using the configuration parameters and information on the passage of data within the distributed database to determine a performance value for each of the strings of values . Which ever of the strings of values have the best performance value is then used for configuring the distributed database to control which data server is to be accessed by which client.
- the performance value is representative of the performance perceived by one or more of the clients.
- a client comprises any application running on a computer connected to the network which requires access to the data units stored on the data servers .
- the performance value represents the transaction time for one or more clients accessing a data unit on a data server
- the best performance value is a minimum and thus the technique of this embodiment of the present invention will attempt to minimise the performance value i.e. the transaction time.
- the present invention is particularly applicable to optimising the configuration of a distributed database, it can be applied to any physical system or model wherein parameters of the model can be provided as a string of values .
- the values can either comprise actual numerical values of the model or can comprise numerical values representing features of the model i.e. they comprise or represent symbols.
- the present invention can be applied generally to the configuration of a distributed processing system, of which a distributed data base is but one example, wherein the configuration parameters determine which nodes (servers) in the network are to be used for processing requested by applications (clients).
- the string of values is considered to wrap round to form a continuous string such that the last and first values of the string are sequential. In this way, when a sequence of values at random length is selected in a string of values the sequence can include the last and first values sequentially. Similarly, when a sequence of values is replaced in a string of values this can include the sequential last and first values.
- the intention is that good segments of the string of values in one part of the sting may also work well as a building block elsewhere in the string.
- This technique allows the values which may have become "extinct” in positions in the population of strings to be "reinjected” thereby enhancing the searching technique .
- the technique for generating the initial parent strings of values does not appear to be important. In one embodiment these are generated randomly.
- the present invention is applicable to evolutionary computational search techniques and other conventional search techniques.
- the technique of the present invention can be applied to a genetic algorithm wherein a population of strings of values is created and new strings of values are created from two parents .
- the technique of the present invention when applied to genetic algorithms is a cross-over technique wherein a sequence of values of random length is selected at a random start position in a first string of values and this is used to replace a sequence of values at the same length in a second string of values at a random position. One or more of the values of the resulting string of values is then mutated to generate the new string of values .
- This basic technique can be used in any sort of genetic algorithm such as a Breeder genetic algorithm or a tournament genetic algorithm.
- the present invention is applicable to non-evolutionary search techniques in which a single string of values is used as a parent from which a new string of values is generated.
- the sequence of values of random length is selected starting at a random position in the parent string of values and this is used to replace a sequence of values in the same length in the parent string of values at a random position.
- One or more of the values of the resulting string of values is then changed to generate the new string of values.
- This basic technique can be used in a Hill Climbing search technique or in a Simulated Annealing search technique for example.
- the strings of values comprise a number of values, each of which is a value for a particular parameter
- the strings of values can be termed solution vectors since they can be represented as n dimensional vectors and the "best" one will comprise the solution to the problem of finding the best configuration parameters.
- Figure 1 is a schematic illustration of the use of the technique of the present invention to determine optimum parameters of a model in the physical system
- Figure 2 is a schematic diagram of use of the technique of Figure 1 to control the configuration of a physical system
- Figure 3 is a schematic diagram illustrating the use of the technique to control the configuration of a distributed database in accordance with one embodiment of the present invention
- Figure 4 is a schematic diagram of a distributed database in accordance with one embodiment of the present invention
- Figure 5 is a schematic diagram of a distributed database in accordance with another embodiment of the present invention
- Figure 6 is a schematic diagram of a distributed database in accordance with a further embodiment of the present invention.
- Figure 7a is a flow diagram illustrating a retrieval operation
- Figure 7b is a flow diagram illustrating an update operation
- Figure 8 is a flow diagram illustrating steps in adapting the distributed database
- Figure 9 is a schematic diagram of a distributed database in accordance with a first scenario
- Figure 10 is a schematic illustration of a solution vector
- Figure 11 is a flow diagram of the steps in a first "basic" method for using a model to determine a cost value
- Figure 12 is a flow diagram of a Breeder genetic algorithm for determining the lowest cost value
- Figure 13 is a flow diagram of a single three way Tournament genetic algorithm for determining the lowest cost value
- Figure 14 is a flow diagram of the steps for generating a new solution vector in accordance with an embodiment of the present invention
- Figure 15 is a schematic illustration of the process for generating a new solution vector in accordance with the flow diagram of Figure 14,
- Figure 16 is a schematic illustration of a distributed database of a second scenario (B)
- Figure 17 is a flow diagram illustrating the steps of a second method termed "just used” for using the model to determine a cost value
- Figure 18 is a flow diagram illustrating the steps of a third method termed "plus average” for using the model to determine a cost value
- Figure 19 is a flow diagram illustrating the steps of a fourth method termed "plus used" for using the model to determine a cost value
- Figure 20 is a flow diagram illustrating the steps of a fifth method termed “just used” for using the model to determine a cost value
- Figure 21 is a flow diagram illustrating the steps of a sixth method termed “plus all” for using the model to determine a cost value
- Figure 22 is a flow diagram illustrating the steps of a seventh method termed "plus 10%" for using the model to determine a cost value
- Figure 23 is a flow diagram illustrating a Hill Climbing algorithm
- Figure 24 is a flow diagram illustrating a Simulated Annealing algorithm
- Figure 25 is a flow diagram illustrating the steps of one embodiment of the present invention for generating a new solution vector
- Figure 26 is an illustration of the technique of Figure 25 for generating a new solution vector
- Figure 27 is an illustration of the results for five different optimisation techniques for scenario A using the basic, least worst server model
- Figure 28 is an illustration of the results for the five different optimisation techniques for scenario A using the "plus all" model
- Figure 29 is an illustration of the results for the five different techniques for scenario B using the basic, least worst model.
- Figure 30 is an illustration of the results for the five different techniques for scenario B using the "plus all" model.
- FIG. 1 is a schematic illustration of the principles of one aspect of the present invention.
- a modeller 50 operates to generate a model of a physical system.
- the modeller 50 receives configuration parameters from an optimiser 60.
- the optimiser 60 controls the configuration of the model generated by the modeller 50.
- the modeller 50 outputs a cost value to the optimiser 60.
- the cost value can represent any function of the model which it is desired to, for example, reduce or increase.
- the cost value may represent the energy consumption of the system which is to be reduced or the performance of the system which is to be improved (increased).
- the optimiser 60 operates a form of a search algorithm in order to generate a string of values representing the configuration parameters.
- the string of values is termed a solution vector since it can be considered to be an n-dimensional vector having values representing the configuration parameters.
- the optimiser 60 adaptively changes the configuration parameters in order to optimise the cost value i.e. either reduce it or increase it.
- the search for a solution vector which will provide the optimum cost value involves the copying of a segment of a solution vector of random length and starting at a random position as an overlay for a segment of the solution vector of the same length at another random position.
- One or more of the values of the solution vector is then chosen randomly and changed. This process generates a new solution vector representing a new set of configuration parameters used by the modeller 50.
- the generation of the new configuration parameters using this technique provides an improved method of searching for the optimum cost value.
- Figure 2 is a schematic illustration of a second aspect of the present invention wherein the technique of Figure 1 is applied to the control of the configuration of a physical system 70.
- the modeller 50 and optimiser 60 operate as described hereinabove with reference to Figure 1.
- the optimiser has determined an optimum cost value
- the configuration parameters corresponding to the optimum cost value are output to the physical system 70 in order that the system be ⁇ ptimumly configured.
- the physical system outputs operating parameters to the modeller 50.
- the use of the modeller 50 enables the prediction of the outcome of changes in the configuration of the physical system before the changes are actually made to the physical system 70. In other words , no non-optimum changes need be made to the configuration of the physical system 70 in order to try to achieve an optimum configuration.
- the determination of the optimum configuration is predicted using the model .
- the operating parameters output from the physical system 70 to the modeller 50 can comprise any measured data which is required for the accurate modelling of the physical system by the modeller 50. Such data can be measured from the physical system.
- FIG 3 is a schematic illustration of an aspect of the present invention wherein a distributed database is optimumly configured.
- This system is as described with reference to Figure 2 except that the physical system is a distributed database comprising data servers 95 and terminals 90 operating clients requiring access to data on the databases 95 and interconnected via a network 80.
- the modeller 50 receives usage data indicating the pattern of usage of the data in the databases 95 by the client's in the terminals 90.
- the modeller 50 also requires information on communication speeds in order to accurately model the distributed database.
- the optimiser 60 will search for an optimum solution vector representing configuration parameters for the distributed database which indicate the optimum usage pattern i.e. which databases 95 the clients on the terminals 90 should look to for retrieval of data.
- the data units held in the databases 95 can comprise any form of information such as text, audio, video or images, or any other form of database information.
- the distributed database can be provided over a local area network such as an ethernet or a corporate intranet, or over a wide area network such as the internet .
- the distributed database can either be a homogenous database wherein all of the data units are of the same format, or it can comprise a heterogenous database wherein data units are stored in different formats.
- a heterogenous database it will be necessary to translate between the different formats of the data units in order for data to be passed between databases e.g. during data "mirroring" operations, and during retrieval and update operations if the format of the data operated on by the client is different to the format of data in the database.
- the reconfiguration of the database based on the configuration parameters results in a client being directed to a particular data server for data.
- the client is directed to a new data server, if the data server does not contain the required data it is necessary for the data to be copied from a data server containing that data.
- the reconfiguration of the distributed database comprises a mix of simply redirection of queries from a client to a database server and the copying of data between data servers . Since the copying of data between data servers requires a high band width over the network, this operation is minimised where possible.
- One scenario, where the copying of data between data servers takes place is when a data server becomes heavily used by clients.
- the "mirroring" of the data to another data server will spread the load between the data servers thereby enhancing the performance of the distributed database.
- the adaption of the configuration of the distributed database can either take place continuously during the operation of the distributed database, at a period when the use of the distributed databases are low, or at predetermined times .
- the modeller 50 and optimiser 60 are preferably implemented as a computer program operating on a computer.
- the calculation of the optimum configuration parameters can be triggered to occur only in response to a suitable criteria such as the failure of a data server, a network link failure or change, or when the time taken by one or more of the clients to retrieve and/or update data units at one or more of the data servers exceeds a threshold. This avoids the adaption process continuously hunting for an optimum solution when the distributed database may already be optimumly configured or near optimumly configured.
- the adaption algorithm can operate continuously but the configuration determined may only be applied if the predicted improvement in performance exceeds a threshold. Since the overheads associated with reconfiguration can be significant, a balance must be struck between accepting sub-optimal performance and the frequency of reconfiguration.
- Figure 4 illustrates a distributed database in one embodiment of the present invention wherein the first database 1 (DB1) and the second database 2 (DB2) are connected to a network 3 and thus form nodes in the network.
- the first database 1 is a relational database and includes a relational database management system (RDBMS) 4.
- the second database 2 is an object oriented database and includes an object oriented database management system (OODBMS) 5.
- the database management systems 4 and 5 manage the respective database e.g. control access, security, backups etc. and operate to interface the databases 1 and 2 to the network 3.
- a first network station 6 is connected to the network 3 and operates a first application APPl which is interfaced to the network 3 by an access manager AMI.
- a second work station 7 is also connected to the network 3 and runs a second application APP2 which is interfaced to the network 3 via an application manager AM2.
- the applications APPl and APP2 include performance files 8 and 9 for the storage of the monitored performance during retrieval and/or updating of data to the databases 1 and 2.
- the access managers AMI and AM2 include respective usage files 10 and 11 for storing information on the usage of databases 1 and 2. Also the access managers AMI and AM2 include translators 12 and 13 for translating queries and data between database formats when necessary.
- the database network also includes a controller 14 which operates an adaptor application 15 for carrying out the adaption algorithm for the control of the configuration of the database.
- the adaptor application 15 is interfaced with the network 3 via an adaptor application access manager AM3.
- the access manager AM3 includes a translator 16 for translating data between different database formats where necessary and a parser for parsing generic messages to move, copy and/or delete data.
- the controller 14 also contains tables 17 which contain data identifying the location of data files in the databases, information identifying the type of format of the database and the location, and information identifying the database containing information which may be accessed by each application APPl and APP2.
- any number can be provided over the network 3.
- work stations 5 and 6 are illustrated as only operating single respective applications APPl and APP2, they can, in a multitask environment, be operating more than one application which can retrieve and/or update data i.e. the work stations 5 and 6 can host more than one client.
- the respective access manager AMI and AM2 identifies which of the applications in a respective work station 6 and 7 has requested or sent data and it is routed accordingly.
- the adaptor application 15 and the table 17 are illustrated as being provided in a separate controller arrangement 14. However, these can be distributed throughout the work stations 6 and 7 as is illustrated in Figures 5 and 6.
- Figure 5 illustrates an embodiment wherein the work stations 6 and 7 include tables 17a and 17b which are copies of tables 17. This arrangement is advantageous since the access managers AMI and AM2 can access the tables directly without incurring a network delay.
- Figure 6 illustrates a further embodiment wherein the work stations 6 and 7 also run local adaptor applications 15a and 15b and thus the adaption algorithm is carried out in a distributed manner.
- Local parsers 20a and 20b are provided in the respective access managers AMI and AM2 for parsing generic messages from the respective adaptor applications 15a and 15b.
- This distribution of the adaptor application will benefit simply from parallel processing, or the adaptor application 15a and 15b could operate on a localised basis to control distribution of data locally i.e. only at a few of the databases. .
- Methods of adaptively controlling the configuration of the distributed databases will now be described.
- Figure 7a illustrates the steps carried out when data is requested from a database by an application on a work station.
- the application generates a query for data which includes the data identification (ID).
- the access manager responds to the query and looks in the tables to determine the application location, the database location for the applications and the identity and type of database containing data .
- step S3 based on the information from the tables, it is determined whether there is a difference in format between the format of the database and the format of the application.
- step S4 if there is a difference in format the query is translated and in step S5 the data is obtained from the database.
- the access module records the database usage in the usage file.
- step S7 it is determined whether the translation of the data is necessary and in step S8 the translation of the data takes place if necessary.
- step S9 the data is returned to the application by the access manager.
- step S10 the application records, in a performance file, how long the transaction took to complete which is an indication of the performance of the retrieval operation.
- step Sll the adaptor application reads the performance and usage files and in step S12 the adaptor application can determine whether an adaption of the distributed database is necessary. This adaption can only take place off line, continuously in real time, only at predetermined times, or only when network traffic will permit the transference of data over the network between databases .
- the usage file used in step S6 contains an identification of the data record retrieved from the database, an identification of the database from which it was retrieved, an identification of the application which retrieved the data record, and the date and time of retrieval.
- the usage file can either comprise a single file for databases, or it can comprise a single file for each of the databases. This is used for determining an optimum configuration for the distributed database .
- the performance files comprise a file for each application.
- the performance files contain data identifying the retrieved record data, the application identification, the query identification, and the transaction duration. These are used for determining whether to determine an optimum configuration for the distributed database.
- the tables 17, 17a and 17b can comprise a number of different tables containing information used for identifying the location of data in the distributed database.
- the system configuration table can contain data which identifies the database, the database type e.g. a relation database or an object oriented database, and the connect string used to connect to the database over the network.
- the advantage of using such a table is that when a new database is added to the distributed database network, its details can simply be added to this file and the algorithm, as will be described hereinafter, can adapt the network to efficiently accommodate it.
- the tables can also include a data allocation for each work station which records where an application on a network station should look for each data record. In these embodiments of the present invention these tables specify where the information can be retrieved for an application.
- the tables can also include a data configuration table which lists all of the locations of each type of data record.
- the table can further include an application configuration table which is used by the access manager so that it can determine where each application is running and so which data allocation to use.
- the table thus containing the application identification and the identification of the work station on which it is running .
- FIG. 7b is a flow diagram of steps carried out for an update.
- the application generates an update query and identifies the data type which is to be updated.
- the access manager receives the query and data from the application in step S101 and looks in the tables to determine the application location, the database locations containing the data type and the identity of the databases containing the type of data.
- step S102 it is determined whether it is necessary to translate the update query and the data from one database to another depending upon the database format of the data generated by the application and the data format of the type database to be updated. If the translation between the database format is required, in step S103 the update query and data are translated.
- the data is then transferred to the databases containing the data type to update the data therein.
- step S105 the access manager records the database usage in the usage file and in step S106 the database management system returns a configuration of the update of the application.
- the application then records the performance in the performance file in step S107 and in step S108 the adaptor application reads the performance and usage file. If the adaptor application determine that the performance of the distributed database can be improved, in step S109 the adaptor application adapts the distributed database.
- Applications access data either on a local server or, via a communications link, on a remote server.
- the best location of data depends upon the concentrations of demand and the relative performance cost of each server and the associated communications costs.
- An optimum configuration may require data replication so that the overall demand for given data can be shared across multiple servers and so reduce load and performance costs for a given server. Whilst the distribution of data across multiple servers is desirable and advantageous for data retrieval, this poses difficulties for updating data since data must be updated at all servers.
- the algorithm aims to compute an improved cost solution to cause a reconfiguration of the distributed database when overall performance figures have exceeded an undesirable threshold. Other factors can trigger the adaption such as the failure or anticipated shut down of one or more communication links or databases, or communication costs for a communication link exceeding a threshold.
- the following algorithm computes costs into in terms of response times i.e. the time between initiating the request for data and the data being received .
- step S20 the adaption algorithm for the adaptor application is triggered into operation by a threshold decrease in performance being exceeded.
- the adaptor application calculates the optimum distribution of data of the network and the optimum application to data links taking into consideration the model parameters as will be described hereinafter.
- step S22 the adaptor application determines whether there are differences in the optimum distribution data and the current distribution of data and generates messages to copy/move and/or delete data at database nodes in the network and to update links either define the nodes which are to receive queries from the applications i.e. where an application is to receive data.
- the adaptor application access manager receives the messages in step S23 and parses each message.
- step S24 the adaptor application access manager uses the tables, in particular, the configuration table, to identify the database locations and types and send instructions to database drivers .
- step S25 the database drivers copy, move and/or delete data in accordance with the instructions and the adaptor application access manager translates data if the data is copied or moved from one database type to another.
- step S26 the adaptor application access manager informs the adaptor application that all instructions have been carried out.
- step S27 the adaptor application updates the tables and indicates any new locations of the data records in the network (i.e. updates the data configuration file) and updates the allocation file to specify where each application can be find appropriate data in databases in the distributed databases . If data has to be moved from one database to another in order to increase performance, instead of moving the data, the data could be copied across one database to the other and subsequently deleted from the original database.
- This operation ensures that a copy of the data is always available for access. If the data is simply moved, the data may not be available during transit from one database to another. Further, if the movement of data is divided into a two stage copy and delete process, not all of the allocation tables need to be updated simultaneously. Before the deletion of data, some applications can still access data from the old locations until their data allocation tables have been updated to indicate the new locations . Thus dividing the move operation into a copy and delete two stage operation may have advantages in a system which operates a real time adaptive algorithm.
- the adaption method of Figure 8 has been described as including the moving of data, to optimise the database configuration it is not always necessary to move data between servers . It may be possible to improve performance simply by changing the servers to which queries are sent by one or more of the applications . For example, where data is present for an application on two servers, and the one currently receiving the queries for retrieving data is under a heavy load, the adaption method can simply cause the application query to be directed to the other server which is less heavily loaded .
- the methods use tables of figures which represent possible client server connections and related transaction rates and performance figures. These are modelling parameters which represent a model of the distributed database.
- the performance figures represent costs that are likely to be incurred for a given configuration and are derived from measured values for similar transaction types to the ones being considered.
- a model of the distributed database used in the following embodiments includes as parameters forms of both data servers and communications networks so that the performance of the system seen by individual client applications can be estimated for the current load conditions over a range of different access and server configurations.
- the choice of configuration is determined by an optimisation algorithm which produces solution vectors defining, for each client, which server that client should currently connect to for read access
- the algorithm derives costs from retrieval and update rates which can be obtained from the usage files in the embodiments described hereinabove and the degree of contention between retrieval and update transactions, as well as contention between clients on the same server node. In the algorithm it is assumed that the server and communications performance can be based on an MM1 queue.
- FIG 9 is a schematic illustration of a first database scenario (A) wherein the distributed database comprises 10 databases 100b (A to J) and 10 clients 100a (1 to 10) connected over a network 200 wherein the communication speeds over the network are uniform.
- Each client 100a resides with a respective database 100b at a node 100 of the network 200.
- the configuration of the distributed database can be described as a solution vector an example of which is illustrated in Figure 10.
- the solution vector comprises a string of numbers indexed by client and containing an identification of the server to which each client should access to read data.
- a server may be used by more than one client e.g. clients 1 and 8 access server B and clients 3 and 9 access server A.
- Tables 1, 2 and 3 illustrate the modelling parameters used in these two genetic algorithm methods.
- the algorithm operates for a distributed database as illustrated in Figure 9 i.e. 10 clients and 10 servers and a server contention overlap of 10% is assumed.
- Figure 11 illustrates a method of a first embodiment of the present invention for modelling the distributed database using a proposed solution vector in order to- generate the cost value which, for this embodiment, comprises a worst retrieval rate for the database.
- step S40 the effective transaction rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- ERR effective transaction rate
- a 2-dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- step S42 the corresponding array entry in L is replaced with that client's effective transaction rate.
- a 2-dimensional array C is then created in step S44 to hold effective communication overhead delays. For each client/server interaction rate, now defined in L, the corresponding entry in C is calculated using equation 1 given hereinabove.
- step S45 for each server, the client entries in L are used to calculate aggregate loading from all clients of that server using equation 2 given hereinabove. In step S46 this is then converted to an average response time using equation 1 given hereinabove and this is stored in a 1-dimensional array T indexed by server. Any calculated infinite response times are replaced with a suitably large response time.
- step S47 for each server, the client with the worst communications overhead delay is found from C and this is added to the relevant entry in T.
- step S48 the largest value T is then output and this represents the worst performance of this database configuration.
- a first algorithm for generating proposed solution vectors will now be described herein after with reference to Figure 12. This flow diagram illustrates the steps of a Breeder genetic algorithm.
- step S50 an initial random population P is created using a non-binary representation.
- Each gene position corresponds to a client node and the allele indicates which server that client is to be used for retrieval access.
- the maximum number of generations G to be allowed is calculated in step S51 from the following equation:
- step S52 all the members of the population are then evaluated using the method of Figure 11.
- step S53 g is set to 0.
- step S54 the current generation number g is incremented by 1 and a loop in the algorithm is entered. All of the numbers of the population are sorted in step S55 based on the evaluation result such that the lowest result is sorted to the top i.e. is the best.
- the bottom half of the population is then deleted in step S56 and thus the current population p is set to equal half of the total population P.
- step S57 the current population p is incremented by 1 and in step S58 two members from the top half of the population are chosen at random and a new number is generated using the technique which will be described hereinafter with reference to Figures 14 and 15.
- step S59 using uniformly distributed allele replacement each gene is mutated in the new member based on the defined percentage chance of mutation.
- step S60 the new member is evaluated using the procedure of Figure 11 and this is added to the bottom of the population list.
- FIG. 13 illustrates an alternative method which implements a single three way Tournament genetic algorithm.
- step S70 an initial random population is created using a non-binary representation. Each gene position corresponds to a client node and the allele indicates which server that client is to use for retrieval access.
- step S71 the maximum number of additional evaluations A to be allowed is calculated using the following equation:
- step S72 all the members of the population are evaluated using the method of Figure 11.
- the current evaluation a is set to 0 and in step S74 the current evaluation A is incremented to enter a loop in the algorithm.
- Three members of the population are then chosen at random in step S75 and in step S76 these are sorted into BEST, SECOND and WORST.
- a new member is created in step S77 from BEST and SECOND using the technique described hereinafter with reference to Figures 14 and 15.
- Each gene in this new member is mutated in step S78 based on the defined percentage chance of mutation using the uniformly distributed allele replacement.
- a new member is then evaluated in step S79 and in step S80 the new member is used to replace the WORST.
- Mutation rate and population size can be appropriately selected to tune the genetic algorithm. For example the mutation rate of 14% can be chosen and the population size of anything from 5 to 500.
- step S90 an initial child is generated as an exact copy of parent 2.
- This technique is a variant of a two-point crossover technique which causes skewing. In this technique allele values in the child are directly overwritten by the overlay portion. There is no splicing and shunting of the genes .
- FIG 16 is a schematic illustration of a second distributed database scenario (B) wherein the nodes 400 and 500 are effectively split into two geographic regions having low communications costs between nodes in the same region, and high costs between regions.
- the four nodes 400 comprising data servers 400a (A to D) and clients 400b ( 1 to 4 ) are interconnected via a communications network 600 of high speed.
- the six nodes 500 comprising data servers 500a (F to J) and clients 500b (5 to 10) are interconnected via a communications network 700 of high speed.
- the two high speed communication networks 600 and 700 are interconnected via a low speed communications line 300.
- Each of the local communications network have a "supernode” whose data performance is 10 times that of the other nodes in the region.
- Tables 4 to 6 below illustrate the modelling parameters used in the genetic algorithm methods for this scenario.
- a server contention overlap of 10% is assumed as for the first scenario (A) .
- Figures 17 to 22 illustrate methods of determining an alternative cost value to the worst performance the cost value as determined in the method described with reference to Figure 11.
- step S110 the Effective Transaction Rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- ERR Effective Transaction Rate
- step Sill a two dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- step SI12 with corresponding array entry in L is replaced with that clients Effective Transaction Rate.
- step S114 the columns in the L array for servers which do not appear in the solution vector are then zeroed to remove their effect.
- a two dimensional array C is then created in step SI15 to hold effective communication overhead delays.
- step S116 For each client/server interaction rate, now defined in L the corresponding entry in C is calculated using equation 1 given hereinabove.
- step S116 the columns in the C array for servers which do not appear in the solution vector are then zeroed to remove their effect.
- step S117 for each server the client entries in L are used to calculate aggregate loading for all clients on that server using equation 2 given hereinabove.
- step S118 this is then converted to an average response time using equation 1 given hereinabove and this is stored in a one dimensional array T indexed by server. Any calculated infinite response times are replaced with a suitably large response time.
- step S119 for each server which is represented in the solution vector, the client with the worst communication overhead delays is found from C and this is added to the relevant entry in T.
- step SI20 the largest value in T is then output and this represents the worst performance of the servers which are to be used by the clients in this database configuration.
- Figure 18 illustrates another embodiment termed
- step S130 the Effective Transaction Rate (ETR) is calculated for each client by comparing the retrieval and update rates, using the percentage overlap and equation given hereinabove.
- ERR Effective Transaction Rate
- a two dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- the corresponding array entry in L is replaced with that clients Effective Transaction Rate.
- a two dimensional array C is then created in step S134 to hold effective communication overhead delays. For each client/server interaction rate, now defined in L, the corresponding entry in C is calculated using equation 1 given hereinabove.
- step SI35 for each server, the client entries L are used to calculate aggregate loading for all clients on that server using equation 2 given hereinabove. In step S136 this is then converted into an average response time using equation 1 given hereinabove and this is stored in a one dimensional array T indexed by server. Any calculated infinite response times are replaced with a suitably large response time.
- step S137 for each server, the client with the worst communications overhead delay is found from C and this is added to the relevant entry in T.
- step S138 10% of the average of all the values in T are calculated and in step S139 the largest value in T plus the 10% of the average of all of the average values in T is output as the performance measure for this database configuration.
- Figure 19 is a flow diagram of another method of calculating a cost value for the distributed database.
- This model considers applying updates only to those nodes that are currently being accessed as servers, and adds 10% of the communications access time seen by all clients on the worst server, divided by the number of servers used. This adds a bias based on aggregate user perception but with weighting in favour of over duplication of data. This method can provide enhanced resilience and is referred to as "plus used" .
- step S140 the Effective Transaction Rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- a two dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- the corresponding array entry in L is replaced with that clients Effective Transaction Rate (ETR).
- step S144 the columns in the L array for the servers which do not appear in the solution vector are then zeroed to remove their effect.
- step S145 a two dimensional array C is then created to hold effective communication overhead delays.
- step S146 For each client/server interaction rate, now defined in L a corresponding entry in C is calculated using equation 1 given hereinabove.
- step S146 the columns in the C array for servers which do not appear in the solution vector is zeroed and in step S147 for each server which appears in the solution vector the client entries in L are used to calculate aggregate loading for all clients on that server using equation 2 given hereinabove.
- step S148 this is then converted to an average response time using equation 1 given hereinabove and this is stored in a one dimensional array T indexed by server. Any calculated infinite response times are replaced with a suitably large response time.
- step S152 for each server which is represented in the solution vector the client with the worst communications overhead delay is found from C and this is added to the relevant entry in T.
- step S149 the worst server in T the average communication times in C are calculated and in step S150 10% of the average is taken. This is then divided by the number of different servers appearing in the solution vector in step S151 and in step S153 the largest value in T plus the value calculated in step S151 is output as the performance value for the database configuration.
- Figure 20 is a flow diagram of another method of calculating a cost value for the distributed database. This method is a combination of "just used” and “plus average” .
- step S160 the Effective Transaction Rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- a two dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- the corresponding array entry in L is replaced by that clients Effective Transaction Rate (ETR).
- the columns in the L array for servers which do not appear in the solution vector are then zeroed in step S164 and in step SI65 a two dimensional array C is then created to hold effective communication overhead delays.
- step S166 For each client/server interaction rate now defined in L the corresponding entry in C is calculated in equation 1 given hereinabove.
- the columns in the C array for servers which do not appear in the solution vector are then zeroed in step S166 and in step S167 for each used server the client entries in L are used to calculate aggregate loading for all clients on that server using equation 2 given hereinabove.
- step SI68 this is then converted to an average response time using equation 1 given hereinabove and this is stored in a one dimensional array T indexed by server. Any calculated infinite response times are replaced with a suitably large response time.
- step S169 for each server which is represented in the solution vector, the client with the worst overhead communication delay is found from C and this is added to the relevant entry in T.
- step S170 10% of the average of all of the values in T are calculated and in step S171 the largest value in T plus the 10% value calculated of the average of all of the values in T is output as the performance value for the database.
- FIG 21 is a flow diagram illustrating a further method of calculating a cost value.
- this method only used servers i.e. servers which appear in the solution vector the average of all client accesses weighted by their usage rate is added to all used servers. This technique is termed "plus all” and is thought to be the most realistic in terms of representing user perception of quality of service of the distributed database.
- ETR Effective Transaction Rate
- step S180 the Effective Transaction Rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- a two dimensional array L is populated with the update rate calculated for that client and indexed by the client and server number.
- step S182 the corresponding array entry in L is replaced by that clients Effective Transaction Rate (ETR).
- ERR Effective Transaction Rate
- the columns in the L array for servers which do not appear in the solution vector are then zeroed in step S184.
- a two dimensional array C is then created in step S185 to hold effective communication overhead delays.
- client/server interaction rate now defined in L
- the corresponding entry in C is calculated using equation 1 given hereinabove.
- the columns in the C array for servers which do not appear in the solution vector is then zeroed in step S186.
- step 5187 for each used server the client entries in L are used to calculate aggregate loading from all clients on that server using equation 2 given hereinabove.
- step S189 for each server which is represented in the solution vector the client with the worst communications overhead delay is found from C and this is added to the relevant entry in T.
- step S191 the largest value in T plus the value calculated in step S190 are output as the performance value for the database.
- Figure 22 is a flow diagram of a further method of calculating cost value. This method is similar to the "plus all” technique except that only 10% of the average of all clients accessed weighted by their usage rate is added. This technique is termed "plus 10%”.
- step S200 the Effective Transaction Rate (ETR) is calculated for each client by combining the retrieval and update rates, using the percentage overlap and equation 2 given hereinabove.
- ERR Effective Transaction Rate
- step S201 a two dimensional array L is populated with the update rate calculated for that client and indexed by client and server number.
- step S202 the corresponding array entry in L is replaced with that clients Effective Transaction Rate.
- step S204 the columns in the L array for servers which do not appear in the solution vector are zeroed.
- a two dimensional array C is then created in step S205 to hold effective communication overhead delays.
- step S206 For each client/server interaction rate, now defined in L, the corresponding entry in C is calculated using equation 1 given hereinabove.
- step S206 the columns in the C array for servers which do not appear in the solution vector are then zeroed and the process diverges .
- step S210 for all used servers i.e. the servers which appear in the solution vector
- the average of the communications times in C weighted by how often the communication links are used are calculated.
- step S207 for each server used, the client entries in L are used to calculate aggregate loading from all clients on that server using equation 2 given hereinabove.
- step S208 this is then converted to an average response time using equation 1 given hereinabove and this is stored in a one dimensional array T indexed by server.
- step S209 for each server which is represented in the solution vector the client with the worst communications overhead delay is found from C and this added to the relevant entry in T.
- step S211 the largest value in T plus 10% of the value calculated in step S210 is then output as the performance value for this database configuration.
- Figure 23 is a flow diagram of a Hill Climbing search technique wherein only one parent solution vector is used. In this non-evolutionary technique there is no "population".
- step S220 a random solution vector is generated initially and this becomes the current solution vector.
- an iteration counter m is set to zero.
- step S222 the current solution vector (a randomly generated solution vector) is evaluated using the methods of any one of Figures 11 and 17 to 22 to return a fitness value. The process then enters an iterative loop where in step S223 the iteration counter m is incremented.
- step S229 the solution vector for the mutant is set as the current solution vector and the process returns to step S223. If not the current solution vector is kept and the mutant solution vector is discarded and the process returns to step S223.
- FIG. 24 is a flow diagram of another non- evolutionary search technique termed Simulated Annealing.
- step S230 a random solution vector is generated to become the current solution vector.
- step S231 the iteration counter m is set to 0.
- step S232 the current solution vector is evaluated using the techniques of any one of Figures 11 and 17 to 22 in order to return a fitness value.
- step S233 the process then enters an iteration loop wherein the iteration counter m is incremented.
- step S235 the current solution vector is output as the optimum solution vector. If not in step S236 a mutant solution vector is created from the current solution vector as will be described in more detail hereinafter with references to Figures 25 and 26. In step S237 the mutant solution vector is then evaluated to return a fitness value. In step S238 it is determined whether the fitness value for the mutant solution vector is better than the fitness value for the current solution vector. If it is, in step S239, the solution vector for the mutant is set as the current solution and the process returns to step S233. If it is not, in step S240 the following calculation is made:
- step S241 a random number n between 0 and 1 is then generated and in step S242 it is then determined whether n >d. If not in step S243 the solution vector for the mutant is set as the current solution vector and the process returns to step S233. If so the process returns /08569
- step S233 retaining the current solution vector and discarding the mutant solution vector.
- the Simulated Annealing technique has the advantage over the Hill Climbing technique in that a worst solution can be accepted in the search procedure thereby allowing the search process to escape from localised minimum in the search for the global minimum.
- step S301 for the single parent an initial child is generated as an exact copy of the parent.
- step S302 from a random start position a portion of random length is selected from the parent as an overlay portion.
- the initial start position is 8 and the length of the overlay portion is 5.
- step S303 the portion is then overlaid in the initial child on a portion of the initial child of the same length at a random start position to generate an intermediate child.
- the random overlay position is 4.
- step S304 a value in the child is the ⁇ randomly mutated to generate a mutant solution vector to generate a resulting child.
- the first value in the string is changed from A to G.
- the third set of columns shows the percentage of times that the fitness of the best found solution was more than 30% greater (given that lowest fitness value here is best) than the known globally optimal solution (deemed unacceptable in an industrial context).
- Figure 27 to 29 the following abbreviations have been used: HC - Hill Climbing technique
- Figure 28 shows the results for scenario A using the
- Figure 30 shows the results for scenario B with the "plus all” model. This problem clearly gives most /08569
- the technique of the present invention is widely applicable to the optimization of any physical system.
- the technique for generating a new solution vector exploits a particular feature of the chosen representation namely that good contiguous chunks of allele values in one part of the chromosome may also work well as a building block elsewhere in the chromosome.
- the present invention can be applied to the optimisation of a distributed processing system of which a distributed data base is one example.
- applications clients
- nodes servers
- the operating parameters can comprise transaction or processing rates and network communication times can be used in the model as for the distributed data base embodiment .
- a further application of this technique is to the configuration of switched networks wherein information units comprise call routing information for controlling the switching of network switches to route calls.
- information units comprise call routing information for controlling the switching of network switches to route calls.
- An example of where usage would change in such a network is where a company decides to offer a special discount on calls in an under utilised part of the communications network at a time later that day.
- a system could adapt itself to allow efficient access of the appropriate data for the duration of the discount in advance and show that the system is optimised to meet the expected demand.
- a mobile telephone network where a customer moves from one city to another, their data records can follow so that they are close by rather than being accessed slowly across large distances. This can take place by monitoring retrieval performance of the data for the customer and adapting the distribution of data to include the retrieval performance.
- the present invention has a wide range of applications and is particularly suited to optimization techniques with complex cost-values which have a complex search space e.g. more than one minimum or maximum.
- the application of the technique in genetic algorithms can be tailored to suit the problem by selecting the mutation rate and population size accordingly.
- the present invention is particularly suited to optimizing a quality of service metric in a distributed database taking into account both load on the servers and loads on the links interconnecting the servers and clients .
- the present invention can be implemented as a computer program operating on a standard computer and thus the present invention can be embodied as a storage medium containing processor implementable instructions for controlling a processor to carry out the method. Further, since the computer code can be transmitted in electronic form for example by being downloaded over a network, the present invention can be embodied as an electronic signal carrying computer code for controlling a computer to carry out the method.
Landscapes
- Engineering & Computer Science (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
Description
Claims
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| AU50596/99A AU5059699A (en) | 1998-08-05 | 1999-07-27 | Data processing apparatus and method for optimising configuration parameters of a physical system |
| EP99934988A EP1103030A1 (en) | 1998-08-05 | 1999-07-27 | Data processing apparatus and method for optimising configuration parameters of a physical system |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| GB9817051.7 | 1998-08-05 | ||
| GBGB9817051.7A GB9817051D0 (en) | 1998-08-05 | 1998-08-05 | Data processing apparatus and method for optimising configuration parameters of a physical system |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2000008569A1 true WO2000008569A1 (en) | 2000-02-17 |
Family
ID=10836762
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/GB1999/002449 Ceased WO2000008569A1 (en) | 1998-08-05 | 1999-07-27 | Data processing apparatus and method for optimising configuration parameters of a physical system |
Country Status (4)
| Country | Link |
|---|---|
| EP (1) | EP1103030A1 (en) |
| AU (1) | AU5059699A (en) |
| GB (1) | GB9817051D0 (en) |
| WO (1) | WO2000008569A1 (en) |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100351778C (en) * | 2003-04-17 | 2007-11-28 | 国际商业机器公司 | Autonomic determination of configuration settings by walking the configuration space |
| EP2208146A4 (en) * | 2007-10-29 | 2010-11-03 | Nec Lab America Inc | Discovering optimal system configurations using decentralized probability based active sampling |
-
1998
- 1998-08-05 GB GBGB9817051.7A patent/GB9817051D0/en not_active Ceased
-
1999
- 1999-07-27 WO PCT/GB1999/002449 patent/WO2000008569A1/en not_active Ceased
- 1999-07-27 EP EP99934988A patent/EP1103030A1/en not_active Withdrawn
- 1999-07-27 AU AU50596/99A patent/AU5059699A/en not_active Abandoned
Non-Patent Citations (4)
| Title |
|---|
| GOLDBERG D E: "Genetic Algorithms in Search, Optimization, and Machine Learning", January 1989, ADDISON WESLEY, USA, XP000667450 * |
| GREGORY MICHAEL: "Genetic algorithm optimization of distributed database queries", PROCEEDINGS OF THE 1998 IEEE INTERNATIONAL CONFERENCE ON EVOLUTIONARY COMPUTATION, ICEC'98;ANCHORAGE, AK, USA MAY 4-9 1998, 1998, Proc IEEE Conf Evol Comput Proc ICEC;Proceedings of the IEEE Conference on Evolutionary Computation, ICEC 1998 IEEE, Piscataway, NJ, USA, pages 271 - 276, XP002093737 * |
| PARK SEONG-JIN ET AL: "Data allocation considering data availability in distributed database systems", PROCEEDINGS OF THE 1997 INTERNATIONAL CONFERENCE ON PARALLEL AND DISTRIBUTED SYSTEMS;SEOUL, SOUTH KOREA DEC 10-13 1997, 1997, Proc Int Conf Parallel Distrib Syst ICPADS;Proceedings of the Internatoinal Conference on Parallel and Distributed Systems - ICPADS 1997 IEEE Comp Soc, Los Alamitos, CA, USA, pages 708 - 713, XP002093736 * |
| SINCLAIR M C: "The application of a genetic algorithm to trunk network routing table optimisation", TENTH UK TELETRAFFIC SYMPOSIUM. PERFORMANCE ENGINEERING IN TELECOMMUNICATIONS NETWORK, MARTLESHAM HEATH, UK, 14-16 APRIL 1993, 1993, London, UK, IEE, UK, pages 2/1 - 6, XP002093738 * |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100351778C (en) * | 2003-04-17 | 2007-11-28 | 国际商业机器公司 | Autonomic determination of configuration settings by walking the configuration space |
| EP2208146A4 (en) * | 2007-10-29 | 2010-11-03 | Nec Lab America Inc | Discovering optimal system configurations using decentralized probability based active sampling |
Also Published As
| Publication number | Publication date |
|---|---|
| GB9817051D0 (en) | 1998-09-30 |
| AU5059699A (en) | 2000-02-28 |
| EP1103030A1 (en) | 2001-05-30 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP0958540B1 (en) | Adaptive distributed information network | |
| Van Nimwegen et al. | Metastable evolutionary dynamics: crossing fitness barriers or escaping via neutral paths? | |
| Pierre et al. | A tabu-search approach for designing computer-network topologies with unreliable components | |
| Pierre et al. | Assigning cells to switches in cellular mobile networks using taboo search | |
| Fowler | The complexity of using forwarding addresses for decentralized object finding | |
| CN104899286A (en) | Distributed content storage and retrieval | |
| CN119938942B (en) | A method for generating distributed data storage network based on knowledge graph | |
| CN112365067A (en) | Prediction method for optimizing grey neural network by snap-drift cuckoo search algorithm | |
| CN118569579A (en) | A load shedding method based on Newton-Raphson optimization algorithm | |
| CN111324429A (en) | Micro-service combination scheduling method based on multi-generation ancestry reference distance | |
| WO2000008569A1 (en) | Data processing apparatus and method for optimising configuration parameters of a physical system | |
| Guan et al. | A multi‐controller placement method for software defined network based on improved firefly algorithm | |
| Layuan et al. | A routing protocol for dynamic and large computer networks with clustering topology | |
| CN112333102A (en) | Software-defined network routing method and system based on knowledge graph | |
| Yener et al. | Iterative approach to optimizing convergence routing priorities | |
| Oates | Autonomous management of distributed information systems using evolutionary computation techniques | |
| Chauhan et al. | QoS aware replica control strategies for distributed real time database management system | |
| Beigy et al. | An iterative stochastic algorithm based on distributed learning automata for finding the stochastic shortest path in stochastic graphs: H. Beigy, MR Meybodi | |
| Tsenov | Simulated annealing and genetic algorithm in telecommunications network planning | |
| Alkhli | Sea Turtle Foraging Optimization-Based Controller Placement with Blockchain-Assisted Intrusion Detection in Software-Defined Networks. | |
| Chirita et al. | Knowing Where to Search: Personalized Search Strategies for Peers in P2P Networks. | |
| Min | Load balancing of sdn controller for migration optimization based on metaheuristics | |
| Mao et al. | High throughput database structures for location management in PCS networks | |
| KR102570245B1 (en) | AI-based autonomous control method and system for IT infrastructure | |
| Rathore et al. | Adaptive searching and replication of images in mobile hierarchical peer-to-peer networks |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AK | Designated states |
Kind code of ref document: A1 Designated state(s): AE AL AM AT AU AZ BA BB BG BR BY CA CH CN CU CZ DE DK 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 MD MG MK MN MW MX NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT UA UG US UZ VN YU ZA ZW |
|
| AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): GH GM KE LS MW SD SL SZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
| DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
| WWE | Wipo information: entry into national phase |
Ref document number: 1999934988 Country of ref document: EP |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 09743520 Country of ref document: US |
|
| WWP | Wipo information: published in national office |
Ref document number: 1999934988 Country of ref document: EP |
|
| REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
| WWW | Wipo information: withdrawn in national office |
Ref document number: 1999934988 Country of ref document: EP |