[discussion] cache backend redesign
Let's discuss problems we have with current LMDB-based cache backend. We need to analyze if these are fixable or we need to redesign cache backend.
Problems with LMDB itself
-
Database overfill leads to irrecoverable state where while DB practically becomes read only and the only ways forward are either enlarge database or delete it. Together with inability to detect if committing a transaction will lead to this state prevents us from reliably keeping cache with constant size, leading to race conditions in overflow handling etc. (#605)
-
Transactions have undefined limits on them, forcing us to jump through hoops.
-
LMDB depends on unique PID values - this assumption does not hold when sharing cache across containers (#637).