[dna-issues] [JBoss JIRA] Updated: (DNA-40) Persistant storage for information not stored in other repository sources

Randall Hauch (JIRA) jira-events at lists.jboss.org
Wed Nov 19 14:32:36 EST 2008


     [ https://jira.jboss.org/jira/browse/DNA-40?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Randall Hauch updated DNA-40:
-----------------------------

    Fix Version/s: 0.4
                       (was: Future Releases)
          Affects: [Documentation (Ref Guide, User Guide, etc.), Interactive Demo/Tutorial, Release Notes]
         Assignee: Randall Hauch
       Complexity: Medium
         Priority: Major  (was: Minor)


Started work on this new connector, which uses Java Persistence Architecture (JPA) to work with EJB3 entities stored in a relational database, using Hibernate for the JPA implementation.  (Note that some Hibernate extensions are also used.)

The connector is capable of using one of several "models" (or schemas).  The initial model is called "Basic", but the connector supports having multiple models (which can be exist in separate packages) and allowing the user to choose via a JavaBean property in the JpaSource object.  (Note that the kind of model used in a particular database instance is recorded in the database, and may not be changed.  In this case, the JpaSource's model selection is changed to reflect what is in the database.  Changing a database's model would require migration, which is not currently supported, but could be provided by a "copy" utility that operates on a graph by generically copying the content from one source to another.)

Each model is also responsible for creating the RequestProcessor implementation, so the JpaSource and JpaConnection implementations can work with any model.

The "Basic" model stores for each node a single record containing the node ID (which is a UUID string) and a blob for the serialized properties.  Large property values (of type 'string' or 'binary') are not included in the serialized properties, but are instead stored separately in a table that stores the value (as a blob) keyed by the SHA-1 hash of the value.  This means that if multiple "large" properties (on the same or multiple nodes) have the exact same value, that property value will be stored only once in the database.  Also, each parent-child relationship is also stored as a separate record, allowing direct manipulation of the database when finding, creating, or moving children (including adjusting the same-name-sibling indexes).  Each of these child entities has the local name of the node, a reference to the namespace in which the node's name exists, the same-name-sibling index, and the index in the parent list of children.  All namespaces are centralized in a single table so they can be reused.

The current implementation is probably close to 75% complete.  The "Basic" entities are mostly completed (minor changes are anticipated), and all of the source infrastructure has been completed.  Most of the outstanding work is in the BasicRequestProcessor implementation.

> Persistant storage for information not stored in other repository sources
> -------------------------------------------------------------------------
>
>                 Key: DNA-40
>                 URL: https://jira.jboss.org/jira/browse/DNA-40
>             Project: DNA
>          Issue Type: Feature Request
>          Components: Connectors
>            Reporter: Randall Hauch
>            Assignee: Randall Hauch
>             Fix For: 0.4
>
>
> Create a federation connector that is able to manage information in a relational database using a DNA-defined schema.  This would enable the persistant storage of information that isn't being managed by other connectors.
> Requirements include efficiently storing and accessing large numbers of nodes, large property values (e.g., Binary values), and large numbers of children on nodes.  

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       




More information about the dna-issues mailing list