假设我要编写简单的数据库(在Linux上工作),但必须满足以下条件:
它只有两个功能:
其中索引是0到1M之间的整数,字节是100字节的块。 我希望在每次调用write_chunk之后自动传输文件状态。
所以我想确定:
我想像这样的实现:
编写函数实现:
读取函数实现:
如果我们开始读取和回滚文件不为空且无效,则我们 从回滚还原100个字节并删除回滚或只是删除 如果哈希无效,则回滚。
我们从位置索引* 100中读取数据块并返回数据
使用以下算法是否安全?
因此,我想确保与mysql或postgresql之类的数据库处于同一安全级别。提交后执行插入语句。
我可以使用什么技术来保证原子性和持久性写入,我的意思是可能我需要在块上使用一些哈希以确保其有效或使用回滚文件的双重副本。或者一次将数据存储在回滚文件中一次,以确保磁盘子系统刷新。 (我听说即使写入后我调用fsync也不安全,它取决于磁盘子系统,然后它才实际写入数据。)
答案 0 :(得分:0)
只要没有并发性,那应该就可以工作,也就是说,这些功能中只有一个可以同时运行。
为什么不使用简单的嵌入式数据库?