dharma:用Rust编写的持久,容错键值存储

时间:2024-04-23 20:35:21
【文件属性】:

文件名称:dharma:用Rust编写的持久,容错键值存储

文件大小:33KB

文件格式:ZIP

更新时间:2024-04-23 20:35:21

Rust

法 Dharma是用Rust编写的容错,可靠的键值存储。 怎么运行的 在本节中,我们将介绍Dharma支持的操作及其实现方式。 Dharma支持通过REST API可访问的三个基本操作。 get-获取与键关联的值 put-设置与键关联的值 delete-删除与键关联的值 执行 Dharma内部使用LSM(日志结构化内存)树来存储和检索数据。 LSM树结合使用了内存中排序存储和一系列仅用于存储数据的追加日志的组合。 通过使用预写日志(WAL),我们还可以确保数据库的容错能力。 写的解剖 将值写入数据库后,将执行以下步骤。 为了确保可靠性,首先将数据写入预写日志(WAL)。 然后将数据插入到按键排序的内存AVL树中。 初始写入WAL可确保在保留数据时发生任何问题,数据库可以从WAL重新加载要保留的密钥集。 内存中的AVL树也称为内存表。 插入AVL树后,可以认为该值已成功插入数据库,并且数


【文件预览】:
dharma-main
----.gitignore(34B)
----src()
--------traits.rs(382B)
--------persistence.rs(7KB)
--------sparse_index.rs(2KB)
--------storage()
--------options.rs(2KB)
--------errors.rs(2KB)
--------dharma.rs(4KB)
--------lib.rs(126B)
----LICENSE(1KB)
----doc()
--------structure.md(978B)
--------record.md(2KB)
--------write_ahead_log.md(426B)
--------sstable_format.md(3KB)
--------basic_compaction.md(3KB)
----Cargo.toml(340B)
----.github()
--------workflows()
----README.md(4KB)
----tests()
--------dharma_test.rs(2KB)
--------persistence_test.rs(2KB)
--------sorted_string_table_test.rs(2KB)
--------common()

网友评论