Changes between Initial Version and Version 1 of persistence


Ignore:
Timestamp:
Jun 19, 2008, 1:54:31 AM (16 years ago)
Author:
etj
Comment:

Initial revision

Legend:

Unmodified
Added
Removed
Modified
  • persistence

    v1 v1  
     1
     2----
     3'''WORK IN PROGRESS'''
     4
     5----
     6
     7
     8= Proposal number : Persistence framework =
     9
     10|| '''Date''' || 2008/06/19 ||
     11|| '''Contact(s)''' || etj ||
     12|| '''Last edited''' || [[Timestamp]] ||
     13|| '''Status''' || draft ||
     14|| '''Assigned to release''' || to be determined ||
     15|| '''Resources''' || ??? Indicate if the required resources are available to complete the proposal ||
     16
     17== Overview ==
     18
     19Short description of the improvement proposal.
     20...
     21
     22=== Proposal Type ===
     23 * '''Type''': GUI Change, Core Change, Module Change, Guideline and project governance procedures, ...
     24 * '''App''': !GeoNetwork
     25 * '''Module''': eg. Harvester, Kernel, Data Manager, Metadata Import, Lucene Index, Search Interface ...
     26
     27=== Links ===
     28 * '''Documents''': [http://www.hibernatespatial.org/ Hibernate spatial], [http://www.hibernate.org/ Hibernate]
     29 * '''Email discussions''': [http://www.nabble.com/Re%3A-Agenda-for-GeoNetwork-hacking-in-Bolsena--release-planning--SEC%3DUNCLASSIFIED--td17770112.html#a17770112 GN-devel thread]
     30 * '''Other wiki discussions''':
     31
     32=== Voting History ===
     33 * Vote proposed by X on Y, result was +/-n (m non-voting members).
     34
     35----
     36
     37== Motivations ==
     38The current configuration is .... A change to ....
     39
     40
     41 As of version 2.2.0 the GeoNetwork application cannot be deployed to a
     42 cluster. Existing deployments probably haven't gotten to the size where
     43 clustering is necessary, but if this were to happen, deployment to a cluster
     44 will fail.
     45 
     46 There are several reasons for this. Firstly, the application is storing
     47 non-Serializable objects in the HttpSession. Not terribly difficult to fix
     48 but is still a show stopper.
     49 
     50 Secondly, and this is the real killer, the current mechanism of generating
     51 unique primary keys in jeeves.util.SerialFactory will fail in a cluster due
     52 to duplicate primary keys. The SerialFactory caches the max primary key
     53 values for each table. In a cluster multiple SerialFactory instances will
     54 exist and are oblivious of each other. The first node to insert a record will
     55 succeed, other nodes will fail.
     56 
     57 Geoscience Australia has deployed GeoNetwork using Oracle. The correct way to
     58 deal with this in Oracle is to use a SEQUENCE. This requires generating
     59 Oracle specific SQL, something the project has avoided doing.
     60 
     61 In my humble opinion, if GeoNetwork is to achieve its full potential it needs
     62 to be scalable. Issues like in memory key generation prevent this from
     63 occurring. The bottom line is you need to need to be DB independent but
     64 scalable. The project should seriously consider the adoption of a persistence
     65 framework such as Hibernate.
     66
     67== Proposal ==
     68An in depth proposal can be found here : link
     69...
     70
     71=== Backwards Compatibility Issues ===
     72
     73== Risks ==
     74
     75== Participants ==
     76 * List of participants and role (if necessary) in current GIP
     77