Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Code Block
titleUnstructured DAO Interface
package org.openmrs.module.shr.unstructureddata.dao;

public interface UnstructuredDAO {
	
    Boolean saveObject(String key, Object value);
    
    Object getObject(String key);
    
    Boolean purgeObject(String key);
}

 

Possible Database / File Storage Options

 

As we suspect we'll be storing a lot of XML documents as blobs, a native XML database that supports XPath and XQuery is something we could be looking at.

BaseX seems to be the open-source XML database with the most freely available features, as shown by this comparison. We will have to decide whether to support XPath And XQuery on document-level data through the unstructured storage module.

 

For binary data storage a distributed file system seems like it will provide the best redundancy and scalabiltiy. RiakCS is a cloud storage platform that uses the Amazon S3 API and the Riak cluster module to provide high-availability storage. OpenStack Swift and Hadoop HDFS are other options to look at.

 

This blog post provides a good comparison of cloud storage architectures. As we are looking at solutions we can implement in our own data stores solutions like RiakCS, Ceph and OpenStack Swift are the main contenders for binary storage.

RiakCS provides easy distribution over multiple data centres and high availability. It has good documentation, and a widely used API and is released under the Apache2 licence.


Status
titleThis page is a work in progress