kasvith / kache

A simple in memory cache written using go
https://kasvith.github.io/kache
MIT License
351 stars 26 forks source link

Improved data structures #104

Open kasvith opened 5 years ago

kasvith commented 5 years ago

Description Currently, we use a map as the main backend for database. Which requires locking on manipulating keys. Map is implemented using a linked list along with buckets. This leads to a severe issue when we want to take snapshots of data and saving them to disk.

We would have to lock the map when we wanna make a snapshot

The time to duplicate a map is also high, when we have more data we need more time to copy a snapshot. We need a highly optimized data structure which gives maximum performance and minimal locking when we wanna persist data

Steps to reproduce the behavior:

Expected behavior

Actual Behavior

OS and Other informations

Additional details