1 个不稳定版本
0.1.0 | 2024年4月10日 |
---|
#447 在 数据库接口
每月468次下载
50KB
1K SLoC
仓库模板
类似队列的磁盘WAL
发音为 Quál
—— 来自德语单词 agony
—— 因为它是。
特性
tokio
使用tokio类型
async-std
使用async-std类型
操作
基本概念很简单,qwal
支持4种基本操作
push
将新条目添加到队列末尾,返回其索引。
pop
从队列中读取下一个索引,如果有,返回前一个条目及其索引;如果没有,则返回无。
ack
确认处理条目,确认其已入队。
revert
回滚到队列中最后确认的条目 - 将清除/排空从该点以来的任何条目。
性能特性
push
将数据写入磁盘并执行fsync。如果在最后一次push之后执行了pop,可能还会执行一次seek
。
pop
从磁盘读取数据。如果在最后一次read之后执行了push,可能还会执行一次seek
。
ack
不执行任何磁盘操作,ack操作在push操作期间或作为关闭序列的一部分持久化。
操作
qwal
将所有限制视为软限制,这意味着在操作超过限制之后才会被认为是达到限制,而不是在操作之前。
chunk_size
为了允许更容易地回收空间,WAL 被存储在多个块中。块大小定义了限制。当 push
操作使块超出 chunk_size
时,块被认为是满的。
max_chunks
同时可以激活和打开的块软限制。当需要创建 max_chunks
+ 1 时,WAL 被认为是满的。
依赖项
~2–13MB
~155K SLoC