#write-ahead-log #iterator #snapshot #storage #identifier #stateful #time

已删除 wal-s

基于预写日志的存储实现

2 个不稳定版本

0.2.0 2022年7月24日
0.1.1 2022年7月18日

#11#write-ahead-log

自定义许可协议

45KB
1K SLoC

WAL-S

基于预写日志的存储实现。

特性

  • 预写日志
  • 读取快照
  • 写入批处理
  • 元数据支持
  • 无状态迭代器
  • 有状态迭代器
  • 滑动窗口
  • 基于计数器和时间的标识符
  • 距离度量
  • 数据导出

入门指南

WALS::new("stream1", db)
    .snapshot()
    .iter()
    .for_each(|record| {
        let stream2 = WALS::from("stream2", db);
        let result = process(record);
        stream2.append(result);
    })
 stream
    .flush()
    .snapshot()
    .unwrap()
    .window(10, &StreamID::default())
    .for_each(|batch| {
        println!("size={}", batch.len());
        assert_eq!(batch.len(), 10);
        counter += 1;
    });

文档

待定

依赖项

~28MB
~564K SLoC