Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bamboo Pipe Engine (BPE)

以 Java 技术栈(SQL + ASM codegen + offheap ring buffer + bitmap filter + window aggregation)实现的高性能流式单表处理引擎

构建

export JAVA_HOME=$HOME/lang/Temurin-1.8.0_382-b05 && mvn test

运行测试

# 基础测试
mvn test

# 生成类 dump 调试
mvn test -Dbpe.codegen.dump=true

# 自定义槽数量
mvn test -Dbpe.slotCount=4096

# CPU 绑核
mvn test -Dbpe.cpu.prd.selected=1 -Dbpe.cpu.con.selected=2

基准测试

mvn test-compile dependency:build-classpath -Dmdep.outputFile=target/cp.txt -Dmdep.includeScope=test
java -cp target/classes:target/test-classes:$(cat target/cp.txt) \
     org.openjdk.jmh.Main "PositionWindowBench|PositionAvgBench"

设计文档

详见 docs/bpe_design.md

状态

M0-M4 全部完成,63/63 测试通过。

  • M0: 骨架(offheap 缓冲 + Unsafe 门面 + canary + SQL 解析)
  • M1: filter codegen + 位图扫描 + SYNC 交付
  • M2: FieldReader + 聚合内核(含 stddev/Welford)
  • M3: 窗口/watermark/per-key/维表
  • M4: ASYNC 模式 + watchdog + Esper 对标

关键决策

  1. JSqlParser 4.9 静默丢弃 LIMIT n OFFSET m 的 OFFSET
  2. JSqlParser 4.9 无 BooleanValue;true/false 解析为裸 Column
  3. ASM:long→double 用 L2D;跨分支栈必须平衡
  4. SYNC 模式 CallbackParams 是瞬时视图,需在回调内消费
  5. ASYNC 模式 egress 模式是引擎级,切换后所有 mapper/窗口均走异步交付

许可

MIT

About

以 Java 技术栈(SQL + ASM codegen + offheap ring buffer + bitmap filter + window aggregation)实现的高性能流式单表处理引擎

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages