Commit graph

12 commits

Author SHA1 Message Date
martinsumner
72d16af2b1 Switch out implementation of manifest
This gives a new manifest implementation that is an array of lists.

Just basic unit testing of lookup insertion and removal in this module.
The API was changed subtly, and so nothing broader will work at this
stage
2017-01-16 23:27:42 +00:00
martinsumner
38c7c9be9b Attempt to fix manifets issues
ETS manifest is making eveyrthing SLOW.  Marked basement.  Perhaps fixed
some GC issues.
2017-01-15 12:41:16 +00:00
martinsumner
d16defa597 Remove non-compatible OTP16 option 2017-01-15 11:29:19 +00:00
martinsumner
e6c4c9eff8 Log deletions from mnaifest (via GC) 2017-01-15 11:04:26 +00:00
martinsumner
8f0a096dd2 More work on timeout 2017-01-14 20:57:43 +00:00
martinsumner
85c03a61f9 Log changes 2017-01-14 20:11:01 +00:00
martinsumner
13c81f0ed1 Basic working
Some basic tests working - but still outstanding issues.
2017-01-14 19:41:09 +00:00
martinsumner
76bdd83346 Manifest refactor - STILL BROKEN
Some working tests now, but sitll broken
2017-01-14 16:36:05 +00:00
martinsumner
0204a23a58 Refactor - STILL BROKEN
Will at least compile, but in need of a massive eunit rewrite and
associated debug to get back to a potentially verifiable state again
2017-01-13 18:23:57 +00:00
martinsumner
08641e05cf Manifest changes - BROKEN
Going to abandond this branch for now.  The change is beoming
excessively time consuming, and it is not clear that a smaller change
might not achieve more of the objectives.

All this is broken - but perhaps could get picke dup another day.
2017-01-12 13:48:43 +00:00
martinsumner
439ddfa4eb Add support for initiate
The penciller requires a starting manifest SQN as well as a list of
filenames to open on startup.  It is assumed that the penciller will
keep the mappings between fileames and PIDs outside of the manifest.
2017-01-09 15:19:11 +00:00
martinsumner
ed27a53452 New manifest code
The manifest had previously been a list for eveyr leevl of the manifest,
and keys were found by folding over the list.  By Level 4 the list will
be 4096 items long, and so the fold would be expensive, and would be
required many times.

To make this less expensive an ETS table is to use.  However, the ETS
table needs to be shared between snapshots and so in order to use the
ETS the entries to the table need to support multi-versioning - whereby
each clone can see a version of the table at the Manifest SQN the clone
is supporting.
2017-01-09 14:52:26 +00:00