Changes between Version 2 and Version 3 of LoadBalanceable
- Timestamp:
- 03/22/12 08:18:54 (13 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
LoadBalanceable
v2 v3 11 11 == Overview == 12 12 13 It is currently not possible to load-balance GeoNetwork, for various reasons described [http://trac.osgeo.org/geonetwork/wiki/MultipleInstancesOfGN here]. This proposal aims to make it possibl yto horizontally scale GeoNetwork by implementing the changes described below.13 It is currently not possible to load-balance GeoNetwork, for various reasons described [http://trac.osgeo.org/geonetwork/wiki/MultipleInstancesOfGN here]. This proposal aims to make it possible to horizontally scale GeoNetwork by implementing the changes described below. 14 14 15 15 === Proposal Type === … … 35 35 36 36 === database primary key values === 37 Currently, new records in the database receive primary key values that are generated in-memory, by the Jeeves class !SerialFactory. To avoid clashes when multiple GeoNetwork nodes write to the same database, this should be changed. We propose to generate unique values by using random UUIDs for this. Another option would be using auto-increment column type, but that would make dat base replication all but impossible.37 Currently, new records in the database receive primary key values that are generated in-memory, by the Jeeves class !SerialFactory. To avoid clashes when multiple GeoNetwork nodes write to the same database, this should be changed. We propose to generate unique values by using random UUIDs for this. Another option would be using auto-increment column type, but that would make database replication all but impossible. 38 38 39 The generated UUIDs are slightly modified to replace their hyphens with underscores and to replace the first character, if it is a digit, with a letter character mapped to that digit. The reason for this is that the resulting values might be used as identifiers in languages like Javascript and are valid values for ID attributes in X(H )TML.39 The generated UUIDs are slightly modified to replace their hyphens with underscores and to replace the first character, if it is a digit, with a letter character mapped to that digit. The reason for this is that the resulting values might be used as identifiers in languages like Javascript and are valid values for ID attributes in X(HT)ML. 40 40 41 41 Because there is no vendor-independent database column type for UUIDs, they will be stored in a column of type varchar2(36). Current databases will be migrated to use this type for their ID columns, without changing the current values (except for their type, obviously).