|  | The following references and ideas may be of use to people interested | 
|  | in writing an SQL back end for Subversion. | 
|  |  | 
|  | * Glenn Thompson's pluggable FS document | 
|  |  | 
|  | A new filesystem implementation has to plug into Subversion alongside | 
|  | the BDB one.  Currently, we have a framework allowing complete | 
|  | reimplementations of the FS API to plug into Subversion alongside each | 
|  | other, but it may (or may not) be more prudent to abstract the BDB | 
|  | implementation at the table level so that the same code can use | 
|  | multiple database implementations. | 
|  |  | 
|  | Glenn Thompson wrote a document about FS abstraction, located at | 
|  | <http://www.cdrguys.com/subversion/>.  This document predates the FSFS | 
|  | implementation, so it is a bit dated, but it is still highly relevant | 
|  | to the hypothetical table-level abstraction described above. | 
|  |  | 
|  | The document posits two abstraction layers, the FSAP (filesystem | 
|  | abstract provider) layer which abstracts at the API level, and the FSP | 
|  | (filesystem provider) layer which abstracts at the table level.  The | 
|  | FSP layer would only apply to libsvn_fs_base, which implements the BDB | 
|  | back end.  The document's FSAP abstraction proposal was used as a | 
|  | basis (though not as gospel) for the API-level abstraction we | 
|  | currently have. | 
|  |  | 
|  | * Edmund Horner's prototype MySQL implementation | 
|  |  | 
|  | http://homepages.paradise.net.nz/~ejrh/subversion/mysql/ describes a | 
|  | prototype implementation of a MySQL back end, also made before the | 
|  | FSFS implementation.  There is a little more about this back end in | 
|  | the mail thread at | 
|  | http://www.contactor.se/~dast/svn/archive-2004-02/0470.shtml. |