Changes between Version 2 and Version 3 of LoadBalanceable


Ignore:
Timestamp:
Mar 22, 2012, 8:18:54 AM (12 years ago)
Author:
heikki
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • LoadBalanceable

    v2 v3  
    1111== Overview ==
    1212
    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 possibly to horizontally scale GeoNetwork by implementing the changes described below.
     13It 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.
    1414
    1515=== Proposal Type ===
     
    3535
    3636=== 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 datbase replication all but impossible.
     37Currently, 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.
    3838
    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.
     39The 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.
    4040
    4141Because 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).