blob: 97ccdc415be0b2e4372c8e6b768106ba14999570 [file] [log] [blame] [view]
Core Persistence
===============
A Framework to provide basic component services for persistence frameworks
Data Templates
==============
Below are the basic data templates this system should support
Collections
-----------
A scope storage and indexing framework. Properties should be secondary indexed, and should be able to be queried efficiently.
*MVCC Semantics*
Transaction/Checkpoint logging on indexing.
Consistent data view. Can potentially be for long running jobs.
Optimistic Locking (maybe)
Atomic updates (maybe)
*Operation Chaining* (maybe)
Possible ability to define an operation context where a set of all writes must either succeed or fail as a group
(can probably be done with MVCC)
Graphs
-----------
A system for creating relationships between scope entities. The directed edges can be named (a type) and
an index query can be executed on those edges.
Maps
-----------
A map that can store hierarchical keys. Shorter keys are better. This should allow for range "scanning". I.E.
key1: => org1/app1/env1/version1
key2: => org1/app1/env2/version1
Operations:
Put by key
Get by key
Iterate by scan
Delete by key
Get me all keys present in org1/app1.
Start => org1/app1
End => org1/app1 inclusive
-----------
===========
A write through distributed cache backed by the cassandra map implementation for persistence