[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
[geogig-dev] mapdb storage module prototype
|
Hi all,
during the last days, I've been experimenting with mapdb (www.mapdb.org)
in order to find out if it would be suitable as a backend for geogig. So
I prototyped a mapdb storage plugin for geogig both for objects and graph
databases.
https://github.com/sebastian-r-schmidt/geogig/tree/mapdb-storage
On Linux Systems I am able to do import, log, status, branch, merge and
show commands from the commandline. But don't expect it to be production
ready, it's more a functional prototype and would need a bit of
polishing before using it in a production context. For example, on a
Windows machines I ran into some weird problem with background writing
processes and file deletion coming from mapdb storage system. I will
look into that further.
If you would like to try it out have a look at
https://github.com/sebastian-r-schmidt/geogig/tree/mapdb-storage/src/storage/mapdb
how to activate, current status and todos.
My Experiences with mapdb:
* Very easy to use interface
* Performance "feels" ok, but I didn't stress test it really yet.
* Currently Beta releases of 2.0 are happening about every four weeks.
There are quite a few issues reported on the issue tracker, the author
seems to work on them. I'm not so sure how to judge on that - no issues
could also mean that no-one is using it.
* I ran into a problem with multi key Maps and "submapping" (fixed in
current Snapshot Release).
* No so sure if "beta" means Feature Completeness in the case of mapdb.
From 2.0-beta5 to 2.0-beta6 the internal storage format changed. Well,
that's we're currently doing with geogig as well, so I should not
complain :-)
* Single Process Database. If one Process (or Thread) is accessing it,
others cannot reopen. I ran into this while trying to access a geogig
repo with the geoserver-geogig extension. The Code for UI integration
opens the DB to check which branches exist, and then it holds the
lock to the DB preventing the data store to be created.
Comments or even help on coding would be warmly welcomed.
Kind regards,
Sebastian