kismet-cache 0.2.1

A bounded multiprocess cache of files on disk.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Kismet: a Second Chance cache for files on disk
===============================================
[![Crates.io](https://img.shields.io/crates/v/kismet-cache)](https://crates.io/crates/kismet-cache) [![docs.rs](https://img.shields.io/docsrs/kismet-cache)](https://docs.rs/kismet-cache) [![Build Status](https://app.travis-ci.com/pkhuong/kismet-cache.svg?branch=main)](https://app.travis-ci.com/pkhuong/kismet-cache) [![Coverage Status](https://coveralls.io/repos/github/pkhuong/kismet-cache/badge.svg?branch=main)](https://coveralls.io/github/pkhuong/kismet-cache?branch=main)

Kismet implements multiprocess lock-free crash-safe and (roughly)
bounded persistent caches stored in filesystem directories, with a
[Second Chance](https://en.wikipedia.org/wiki/Page_replacement_algorithm#Second-chance)
eviction strategy.  The maintenance logic is batched and invoked at
periodic jittered intervals to make sure accesses amortise to a
constant number of filesystem system calls and logarithmic (in the
number of cached file) time complexity, without requiring any
persistent in-memory statistics.  That's good for application
simplicity and performance, and enables lock-freedom, but does mean
that caches are expected to temporarily grow past their capacity
limits, although rarely by more than a factor of 2 or 3.