zenoh 存储复制以及校准

zenoh通过存储管理插件可以灵活的支持存储的处理(通过key_expr 配置存储位置,进行分片)同时对于处理的key 会自动进行持久化

但是如果是多个节点的就会存在一致性的问题,zenoh 提供了最总一致性语义可以进行数据的校准

参考配置

  • zenoh 1.0.0 之后版本的
"plugins": {
    "storage_manager": {
        "storages": {
            "replication-test": {
                "key_expr": "test/replication/*",
                "strip_prefix": "test/replication",
                "volume": "memory",
                // This field was named replica_config.
                "replication": {
                // This field was named publication_interval.
                "interval": 10,
                // This field was named delta.
                "sub_intervals": 5,
                "propagation_delay": 250,
                // These fields did not exist before.
                "hot": 6,
                "warm": 30,
                }
            }
        }
    }
}

早期版本

{
  plugins: {
    storage_manager: {
      storages: {
        demo: {
          key_expr: "demo/memory/**",
          volume: "memory",
          replica_config: {         
            publication_interval: 5,
            propagation_delay: 200,
            delta: 1000,
          }
        }
      }
    }
  }
}

说明

配置复制校准策略可以实现数据的最终一致性,利用好配置策略可以实现数据访问的可靠性,内部zenoh 实际上包包含了long running 任务进行数据处理,详细的可以通过阅读源码学习

参考资料

plugins/zenoh-plugin-storage-manager/src/replication/service.rs

plugins/zenoh-plugin-storage-manager/src/replication/core.rs

https://zenoh.io/blog/2022-11-29-zenoh-alignment/

https://zenoh.io/blog/2024-10-21-zenoh-firesong/#storage-alignment-protocol

posted on 2024-12-18 08:00  荣锋亮  阅读(9)  评论(0编辑  收藏  举报

导航