#low-latency #operator #zenoh #distributed #data-flow #composable #run-time

dora-coordinator

dora的目标是成为一个低延迟、可组合和分布式数据流

40个版本

0.3.6-rc02024年8月17日
0.3.5 2024年7月3日
0.3.5-rc02024年6月26日
0.3.2 2024年1月29日
0.1.0 2022年6月24日

#3 in #data-flow

Download history 2/week @ 2024-04-20 3/week @ 2024-04-27 1/week @ 2024-05-04 100/week @ 2024-05-11 228/week @ 2024-05-18 18/week @ 2024-05-25 24/week @ 2024-06-01 22/week @ 2024-06-08 5/week @ 2024-06-15 78/week @ 2024-06-22 227/week @ 2024-06-29 166/week @ 2024-07-06 9/week @ 2024-07-13 2/week @ 2024-07-20 114/week @ 2024-07-27 2/week @ 2024-08-03

每月 131次下载
用于 dora-cli

Apache-2.0

59KB
1.5K SLoC

协调器

基于进程/库的dora-rs实现的原型,而不是基于框架的。想法是每个操作员作为一个独立的可执行文件编译。dora-coordinator运行时负责读取数据流描述文件并根据需要启动操作员。操作员使用一个名为dora-api的通用库,该库基于zenoh实现通信层。

这种方法有以下优点

  • 更少的开销
    • 运行时和操作员之间没有数据传输
    • 编译器可以内联和优化整个进程
  • 更大的灵活性
    • 操作员可以是同步或异步的
    • 它们可以决定使用多少线程和哪种执行模型
    • 操作系统确保资源(例如CPU时间)公平分配 -> 不需要与其他操作员合作
    • 操作员可以立即获取所有输入 -> 不需要输入规则
    • 保持本地状态很容易实现
  • 独立的地址空间
    • 操作员彼此隔离。

也存在一些缺点,例如

  • 控制更少
    • 进程独立运行 -> 需要与运行时合作,例如在停止信号上
    • 操作员迁移更困难
  • 操作员始终隔离
    • 无法使用内存中的通道
    • 本地套接字和共享内存仍然可能

依赖关系

~14–45MB
~736K SLoC