Skip to content

geek-frio/trace_db

Repository files navigation

目标

解决低成本存储分布式链路跟踪数据的问题

场景

现有公司在使用的 Skywalking 的存储是基于ElasticSearch实现,

  1. ElasticSearch 为通用型的搜索解决方案,代码量巨大,对于tracing 日志型存储没有专项的优化,调优维护起来难度较高。 (一些针对特定场景型的优化改动起来难度较大)
  2. Tracing存储场景较为简单,数据只写不读,而且数据有时序特征,方便做针对性的存储优化和查询优化
  3. 基于Rust语言的实现的项目安全并且性能更高,基于Rust实现的高性能存储,分析的框架最近层出不穷,大量新的标准和新的设计,Tantivy,Arrow项目等,都可以作为 基础依赖的框架,基于这些框架来实现目标会更为方便容易。
  4. Rust技术积累需要,完整实现此类项目可以很好锻炼编码能力。

Road map

  • Stage1 (Working On): 基于Tantivy实现多机器存储, 多条件分布式查询tracing数据的能力
    • 数据传输层实现
    • tracing 存储多机器分片
    • 对接存储对接
    • k8s调度对接(服务器down掉存储自动挂载)
    • 历史数据自动搬运
    • 分布式搜索能力
  • Stage2: 接入DataFustion能力,实现SQL查询tracing数据能力

About

Solve skywalking tracedb storing problem based on tantivy.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages