[ 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)