GOCDB/Doctrine
Main | EGI.eu operations services | Support | Documentation | Tools | Activities | Performance | Technology | Catch-all Services | Resource Allocation | Security |
GOC DB menu: | Home • | Documentation Index • |
<< Back to GOCDB/Release4/Development
Introduction
By replacing the PROM model with the Doctrine ORM GOCDB will support RDBMSs other than Oracle. This will be released as GOCDB 5.
Benefits
- Write code once, deploy to Oracle, MySQL, Postgres, SQLite.
- Much simpler than the GOCDB/PROM model (see query comparison below)]
- Easier for other projects to extend / modify
- Easier for new developers to learn
- Better performance
- Reduced risk of failover performance issues
Drawbacks
- Data will be deleted rather than marked as 'off'. We therefore require an audit table to record who/when performed data deletions/updates (this is on the requirements roadmap ).
- Loose some flexiblity as the DB will manage the relationships (FKs) between entities rather than the application (but in turn we gain performance/simplicity/db-agnostic).
- Changes to some PI methods (paging and carrying over v4 PKs)
- Changes to Portal URLs and object IDs (below)
Changes
The move to Doctrine will introduce changes to the GOCDB portal URLs and to the PRIMARY KEY, ID and GOCDB_PORTAL_URL fields of the GOCDB PI.
Portal URLs
In PROM, each "entity" (site, service endpoint, downtime) was assigned an ID from a global pool. There is only one object 123, the GRIDOPS-GOCDB site. The following URL is used to access an entity regardless of type:
https://goc.egi.eu/portal/index.php?Page_Type=View_Object&object_id=123&grid_id=0
In Doctrine, each entity receives an ID unique only to that entity type. There is a site with ID 123, a service endpoint with ID 123 and a downtime with ID 123. The new URL will reflect the entity type:
https://goc.egi.eu/portal/index.php?Page_Type=Site&id=123
https://goc.egi.eu/portal/index.php?Page_Type=Service_Endpoint&id=123
https://goc.egi.eu/portal/index.php?Page_Type=Downtime&id=123
(...and so on for each GOCDB entity type)
PI XML Output Values
In the GOCDB PI there are a number of PROM specific XML values that will change when we move to Doctrine: PRIMARY_KEY, ID and GOCDB_PORTAL_URL. These are highlighted in RED below:
The ID fields will NOT be consistent between v4 and v5 (each new object will get a new ID value).
Update Aug 2013 - Preserving v4 <PRIMARY_KEY> element values
- v4 <PRIMARY_KEY> element values are carried over for Sites to maintain backward compatiblity (get_site, get_site_list)
- v4 <PRIMARY_KEY> element values are carried over for Downtimes (get_downtime)
- No preservation of v4 <PRIMARY_KEY> element values planned for:
- get_service_endpoint (no report that v4 values are required)
- get_ngi
- get_service_group
- Please check!
Request for Comments
If these changes affect a system that reads from the GOCDB-PI or links to the web portal please let us know.