Hello,

In order to facilitate clustering, we are planning to get rid of ALL 
remaining file-based configurations in geoserver and move them to a db, 
like was already done for the catalog with jdbcconfig. Not entirely 
clear yet what "all" entails yet, but I'm doing some research and 
investigating different possible approaches and then come up with a 
realistic scope.

Currently we have the interface ResourceStore which forms the basis for 
retrieving configurations and data from the data directory. This 
interface assumes a directory structure. I think the least intrusive 
approach would be to emulate a directory structure in a relational 
database, with the files as blobs, and then create a different 
implementation of ResourceStore to access it. I'll call this plan (A).

Alternatively, we could create a whole new configuration API which 
allows a more structural and efficient usage of the relational database 
to store and retrieve configuration settings. I'll call this plan (B). 
This plan just seems way too big of a change to me.

Issues with plan (A):
* Although the Resource interface offers an inputstream and outputstream 
through its API, most code does not use these functions; but rather 
accesses the file system directly with FileInputStream and 
FileOutputStream. The ResourceLoader is often only used for one thing 
and that is to get paths from the data directory. This is the case for 
core code such as the security system, GWC, and extensions such as CSW 
and XSLT (and properly a lot more than I have found so far). Still, 
these modifications would still be far less than would be the case in 
plan (B).

* The data directory is not only used for settings but also for 
temporary files (for example WPS). It would perhaps be 
strange/undesirable/problematic if the database was used for this.

* What about configurations read from geotools. For example, the 
application schema extension is implemented in geotools, and the 
location of the app-schema specific config files are specified as a path 
from the store configuration. If there was a solution for that, perhaps 
an interesting side effect would be that even the data itself could be 
stored this way. For example, one could upload a shapefile through rest 
which would then be stored in the db.

Either way this seems like a huge change, that will need to a lot of 
discussion. Perhaps some people have a completely different and better 
idea. Any suggestions, opinions ... ?

Regards
Niels

------------------------------------------------------------------------------
Don't Limit Your Business. Reach for the Cloud.
GigeNET's Cloud Solutions provide you with the tools and support that
you need to offload your IT needs and focus on growing your business.
Configured For All Businesses. Start Your Cloud Today.
https://www.gigenetcloud.com/
_______________________________________________
Geoserver-devel mailing list
Geoserver-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geoserver-devel

Reply via email to