Persistence: Difference between revisions

From Adam Colton
Jump to navigation Jump to search
No edit summary
No edit summary
Line 14: Line 14:
* Every record has a Type that describes it's fields
* Every record has a Type that describes it's fields
* Index are an ordered subset of fields and allow O(m log n) look up of sets where m is the members of the set and n is type membership
* Index are an ordered subset of fields and allow O(m log n) look up of sets where m is the members of the set and n is type membership
* A record can have many indexes
* A record can belong to many categories
* A record can belong to many categories



Revision as of 14:17, 1 August 2018

This document is meant to build an abstract model of a persistence engine. I am specifically trying to avoid implementation details.

Also See

Persistence is complex. Goals are

  • Data should move between memory and disk transparently
  • Types can be migrated to add, remove or rename fields, change the type of a field or perform arbitrary changes via a migrate function.

Model

  • The Store is collection of all records
  • Every record has an ID unique to the store
  • Every record has a Type that describes it's fields
  • Index are an ordered subset of fields and allow O(m log n) look up of sets where m is the members of the set and n is type membership
  • A record can have many indexes
  • A record can belong to many categories

Resources