Subscribe to Grim's Projects        RSS Feed

v2.14 Key Value Store as Opposed to a Database?

Icon Leave Comment
This is going to be a multi-part entry with a couple of things I want to address (not in this order):
  • v2.13
  • v2.14
  • Mutex
  • Key Value Store

Version 2.13 fixed a bug that caused an error in the write offset of the database files. It didn't produce a problem if you generated a table and then simply only read from it. However, if you tried to update it or refresh it the offset would be horribly messed up introducing errors. Also, for this version I decided to do away with the eta designation. The letter was added at the end to denote an experimental change in my code, but it's no longer experimental as I am satisfied with the direction Mimesis has taken and trust in its reliability.

Version 2.14 addressed a problem that cheako, a member of the forums, brought up. Apparently the 'x' flag is not respected on NFS file systems, which means a true file lock did not exist. Furthermore, flock is known not to work everywhere, and using combinations of stat with tempnam and whatever else are basically just possibility management. Instead I decided to use mkdir as the file locking mechanism and that should remove any issues. As I don't believe there's any system on which you can create a directory that already exists. This modifies the Mutex class along with some other minor aesthetic changes to various Mimesis components. Of note is that timeout is no longer relevant as to check the directory you would need to use filemtime or some other equivalent function for when the lock was created.

As an aside I think I will have to rewrite my About page to denote these new concepts and something of interest that I came across. I've been reading on a sort "database" which isn't really a database, it's called a key value store, or at least that's what it's being called presently. The term of ffdb or pseudo-relational never really fit well with Mimesis and I think a key-value store is a more accurate representation of what it does. I will be reading more on this and likely updating the site as such.

0 Comments On This Entry