怎样实现一个kv数据库

为了能够说明,将问题再简单化一点,实现一个kv全部存储在内存里面,但能够支持持久化的kv数据库。这样实现起来,分为两部分:1.通过hashmap实现内存部分2.通过wal实现持久化部分的事情然后讨论一下处理思路:一、添加只需要在wal文件中追加kv块,然后写入到内存,就完成了二、删除在wal中,追加写入删除操作三、加载在加载时,合并wal,构造hashmap这样处理后,每次写入,都只需要一次的磁盘操作,速度妥妥的。优化建议:1、定期合并wal,减少加载时间对于不能完全存储在内存里面的情况,通过将内存的内容,定期刷到磁盘中,形成镜像,且排序好,查询时,通过虚拟内存方式加载镜像,执行查询。但这样做还要处理合并的情况,后续讨论。


    推荐阅读