[ 
https://issues.apache.org/jira/browse/DERBY-7073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17074846#comment-17074846
 ] 

Richard N. Hillegas commented on DERBY-7073:
--------------------------------------------

I am not familiar with the capabilities of PolarDB 
(https://dbdb.io/db/polardb). It sounds as though it runs on top of a 
distributed file system. Derby's crash-recovery logic assumes that the data 
files (tables and indexes) are located on a single disk. Derby lets you put the 
recovery logs on a separate disk. You should be able to replace either of these 
disks with something like a RAID cluster in order to push much of the recovery 
problem into the hardware layer.

I don't understand your proposal about harnessing multiple Derby nodes into a 
single, logical storage layer.

You are on the right track to use a subprotocol in order to swap out the 
default file system with something fancier. As an example of how to do this, 
look at how in-memory databases (the memory subprotocol) were implemented.

Hope this helps,
-Rick


> Can we override the underlying storage to implement a distributed Derby using 
> Derby's subsubprotocol mechanism
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: DERBY-7073
>                 URL: https://issues.apache.org/jira/browse/DERBY-7073
>             Project: Derby
>          Issue Type: Task
>            Reporter: liaochuntao
>            Priority: Trivial
>
> /**
>  * derby.subSubProtocol.xxx
>  *<p>
>  *
>  * A new subsubprotocol can be defined by specifying the class that handles 
> storage for the
>  * subsubprotocol by implementing the
>  * org.apache.derby.io.StorageFactory StorageFactory or
>  * org.apache.derby.io.WritableStorageFactory WritableStorageFactory 
> interface. This
>  * is done using a property named db2j.subsubprotocol.<i>xxx</i> where 
> <i>xxx</i> is the subsubprotocol name.
>  * Subsubprotocol names are case sensitive and must be at least 3 characters 
> in length.
>  *<p>
>  *
>  * For instance:
>  *<br>
>  * derby.subSubProtocol.mem=com.mycompany.MemStore
>  *<br>
>  * defines the "mem" subsubprotocol with class com.mycompany.MemStore as its 
> StorageFactory implementation.
>  * A database implemented using this subsubprotocol can be opened with the 
> URL "jdbc:derby:mem:myDatabase".
>  *<p>
>  *
>  * Subsubprotocols "directory", "classpath", "jar", "http", and "https" are 
> built in and may not be overridden.
>  */
>  
> Can we take advantage of this capability to implement a distributed 
> contribution storage, with Derby acting as the computing layer and multiple 
> Derby nodes contributing a storage layer, and realize Ploar DB similar to ali 
> cloud, namely a distributed Derby



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to