reviewed vcache for use by git-annex; found it wanting

This commit is contained in:
Joey Hess 2015-02-15 12:37:38 -04:00
parent d876ec966e
commit 2fbbb7fab0
2 changed files with 19 additions and 8 deletions

View file

@ -0,0 +1,19 @@
[[!comment format=mdwn
username="joey"
subject="""vache"""
date="2015-02-15T16:35:12Z"
content="""
<https://github.com/dmbarbour/haskell-vcache>
It uses LMDB, which is a C library, and its PVar is a variable named by a
bytestring, so it's essentially a key/value store where the values can be
arbitrary Haskell data types. Since git-annex already has Keys, and most
of the need for the database is to look up some cached value for a Key,
this seems like a pretty good fit!
Unfortunately, "A VCache file may be opened by only one process at a time,
and only once within said process."
But, git-annex needs multiple read-only access, as many git-annex processes
can run concurrently.
"""]]

View file

@ -45,14 +45,6 @@ DB into memory. In the comments of
other haskell database-like things, and found them all wanting, except for
possibly TCache.
TODO: This seems promising; investigate it:
<https://awelonblue.wordpress.com/2014/12/19/vcache-an-acid-state-killer/>
It uses LMDB, which is a C library, and its PVar is a variable named by a
bytestring, so it's essentially a key/value store where the values can be
arbitrary Haskell data types. Since git-annex already has Keys, and most
of the need for the database is to look up some cached value for a Key,
this seems like a pretty good fit!
## case study: persistent with sqllite
Here's a non-normalized database schema in persistent's syntax.