diskv
diskv copied to clipboard
A disk-backed key-value store.
Would love to have a way to track TTLs and have items auto-expire.
Per our discussion on #62, this makes all writes atomic.
The siphon will now stop writing to its internal buffer once the size of the buffer exceeds the maximum cache size. Because we write until we *exceed* the max cache...
If the cache is enabled, `readWithRLock` always reads the file using a `siphon`. The siphon code copies *every byte* it reads into a bytes.Buffer. When the full file has been...
If someone calls ReadStream, then proceeds to read from it slowly, then someone else calls WriteStream, the reader will start to get the *new* resource contents part-way through. This is...
We would rather not have a `panic()` if the memory limit is exceeded due to concurrent access. This makes the panic optional.
write key with expiration. while the expire time arrives, delete the key file.
As currently implemented, `Diskv.ReadStream` is not a purely streaming reader, because it buffers an entire copy of the value (in the `siphon`) _before_ attempting to put the value into the...
We use diskv in one of the services I help maintain at work. Attached is a screenshot of the write performance (in seconds) across a few instances. Have you ever...
Currently diskv maintains in-memory values in []byte format. It would be excellent from a performance standpoint if arbitrary structs could be maintained instead as this would eliminate the overhead of...