-
Notifications
You must be signed in to change notification settings - Fork 1
Home
AndyHitchman edited this page Oct 8, 2010
·
5 revisions
Welcome to the Stash wiki!
Stash is a persistence engine for .NET. It eschews relational models and object/relational mapping
and instead follows the No-Sql paradigm of storing serialised graphs or ‘documents’.
It is effectively a Key/value store with access via Indexes.
Stash currently uses BerkeleyDB as its persistence store. Other persistent engines may be implemented.
Read:
Executable documentation can be found in the Stash.ExecutableDoco project. I’m also trying to think of
a suitable example application.
Improvement in the pipeline are:
- Have queries work over the current session as well as the backing store.
- Implement Azure Table Storage backing store (possibly build on Lokad.Cloud).
- Look at other potential backing stores (e.g. Lucene.Net, ESENT, SQLServer).
- Create a Linq provider for StashedSet.
- Finish the implementation of Map/Reduce.
- Implement BSON and JSON serialisers.
- Implement web server to serve graphs/documents directly over HTTP using a RESTful API.
- Build a meaningful example application.
- Refine executable documentation.
- Explore migration strategies/tooling for:
- New/changed indexes (calculate new index/recalculate existing index).
- Migrating updated serialized objects (handle changes to type members).
- Meaure performance and optimise if possible.
- Look at how Stash could leverage Berkeley Replication and HA.
- Explore options for sharding/partitioning data:
- Probably a RemoteBackingStore and a ParititionBackingStore working in concert.
- Need to examine ‘hard’ problems about adding/removing nodes and resilience.
- Rhino DHT could be useful here?