分布式数据库一致性解决方案
作品完成和提交方式:选择本赛题的参赛队伍需要首先复刻(Fork)本项目,然后在复刻的项目中添加参赛队员、合作完成作品开发即可,无需提交PR到赛题项目。如果作品为文档形式,也请将作品文档提交到项目代码库中。在作品完成过程中,围绕作品的相关讨论等可以以疑修(Issue)形式发布和讨论,也可使用里程碑对整个任务进行规划管理。
1. 赛题说明
OpenHarmony操作系统是一个天然支持设备互联互通的操作系统,而分布式数据库服务是开源OpenHarmony底层的基础服务,OpenHarmony操作系统具有屏蔽通讯协议,方便快捷的完成数据交互传输协同这一天然特性。基于这一特性,OpenHarmony系统可以广泛应用在如矿井、远洋船舶、电塔建设施工等作业环境恶劣,通讯网络困难的场景中。利用OpenHarmony的分布式数据能力,可以不依赖特定网络通讯手段,实现设备间互联互通,数据协同。在这些特定作业场所OpenHarmony发挥着巨大优势,但随着网络情况的不稳定波动,导致设备上下线频繁,如何让组网内的设备稳定高效协同工作成了一个重要的解决问题。
基于分布式数据管理服务提供的数据协同能力,可以同步汇聚各个传感器设备信息,分享各工种作业数据,实现高效协同工作。
当前OpenHarmony的数据管理已经实现了设备间的自由同步,多设备协同场景下业务场景可以更具有创造性,利用OpenHarmony系统天然的互联互通能力,我们可以创造出来很多的解决方案,解决实实在在的实际问题。目前,这些作业场景下,主要为边缘传感器等设备采集数据执行动作,中心节点汇聚分析计算数据,而恶劣工作场合下,设备故障,通选断连时有发生,为确保不稳定网络下异构设备的系统工作, 各端采集操作数据多端数据一致,需要解决以下问题:
- 实现分布式共识算法,可进行自主主节点选取(主节点聚合组网内全量数据,计算统计后下发),基于现有分布式数据同步能力保障内数据的一致性,各端数据操作可进行实时分发同步;
- 支持组网内设备的退出/加入(包括主节点)。
2. 赛题要求
实现一个Demo, 可以达成3个以上设备的数据操作一致性,支持各节点的上下线,保证组网内数据实时一致。
基础目标
实现支持3个设备以上的组网,可根据设备优先级进行自动选主,设备的数据可进行实时同步,达到分布式一致。
数据同步时延<500ms(wifi连接场景,数据量<1K)
支持组网内任意节点的加入及退出,主节点下线后组网内设备可进行自行重新选组,维持组网内各设备正常协同工作。
挑战目标
组网设备5+, 组网变化后,在5s内能达成新的主节点规划,组网数据同步正常(wifi连接场景)
各设备预置不同数据数据量,设备数据量(动态变化), 设备级别需要做为组网权重参考。
示例
数据格式为KV格式,格式如下:
各条记录为实时采集的各节点环境信息,Key为设备采集信息的时间点,Value为获取到的当前环境信息以JSON串形式保存。
key:20240228115450
Value:
{
"name": "Overview",
"onDuty": "zhangshan",
"deviceID": "deviceA",
"humidity": 100,
"temperature": 31
}
其中,每个设备包含一条整体环境的数据平均值,根据数据采集情况及同步情况实时刷新计算,汇总信息条目key值为Avg,value为计算的平均值结果对应格式的json串,可以用于反应整个工况的实时环境信息。
例1:各设备等级相同场景以数据量大的优先
设备 |
设备级别 |
数据量 |
选主结果 |
A |
S0 |
500 |
|
B |
S0 |
800 |
主节点 |
C |
S0 |
200 |
|
假设设备权重比为s2(1.2):s1(0.9):s0(0.8)
设备数据量相同场景以数据设备登记权重大的优先
设备 |
设备级别 |
数据量 |
选主结果 |
A |
S0 |
600 |
|
B |
S1 |
600 |
|
C |
S2 |
600 |
主节点 |
例2:
假设设备权重比为s2(1.2):s1(0.9):s0(0.8)
设备数据量不同场景且设备等级不同,根据加权计算结果大者优先
若B设备下线,应选取E节点作为主节点
设备 |
设备级别 |
数据量 |
加权结果 |
选主结果 |
A |
S2 |
400 |
480 |
|
B |
S1 |
700 |
630 |
主节点 |
C |
S0 |
200 |
160 |
|
D |
S1 |
300 |
270 |
|
E |
S2 |
500 |
600 |
|
3. 赛题导师
徐少华 — xushaohua@huawei.com
孙朋 — sunpeng26@huawei.com
4. 参考资料
依赖代码仓
https://gitee.com/openharmony/distributeddatamgr_appdatamgr
https://gitee.com/openharmony/distributeddatamgr_kv_store
开发及验证指南
分布式数据管理子系统介绍
https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md
OpenHarmony自验证指南
https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E6%B5%8B%E8%AF%95%E5%AD%90%E7%B3%BB%E7%BB%9F.md
推荐硬件
Rk3568开发板* 3
分布式数据库一致性解决方案
作品完成和提交方式:选择本赛题的参赛队伍需要首先复刻(Fork)本项目,然后在复刻的项目中添加参赛队员、合作完成作品开发即可,无需提交PR到赛题项目。如果作品为文档形式,也请将作品文档提交到项目代码库中。在作品完成过程中,围绕作品的相关讨论等可以以疑修(Issue)形式发布和讨论,也可使用里程碑对整个任务进行规划管理。
1. 赛题说明
OpenHarmony操作系统是一个天然支持设备互联互通的操作系统,而分布式数据库服务是开源OpenHarmony底层的基础服务,OpenHarmony操作系统具有屏蔽通讯协议,方便快捷的完成数据交互传输协同这一天然特性。基于这一特性,OpenHarmony系统可以广泛应用在如矿井、远洋船舶、电塔建设施工等作业环境恶劣,通讯网络困难的场景中。利用OpenHarmony的分布式数据能力,可以不依赖特定网络通讯手段,实现设备间互联互通,数据协同。在这些特定作业场所OpenHarmony发挥着巨大优势,但随着网络情况的不稳定波动,导致设备上下线频繁,如何让组网内的设备稳定高效协同工作成了一个重要的解决问题。 基于分布式数据管理服务提供的数据协同能力,可以同步汇聚各个传感器设备信息,分享各工种作业数据,实现高效协同工作。 当前OpenHarmony的数据管理已经实现了设备间的自由同步,多设备协同场景下业务场景可以更具有创造性,利用OpenHarmony系统天然的互联互通能力,我们可以创造出来很多的解决方案,解决实实在在的实际问题。目前,这些作业场景下,主要为边缘传感器等设备采集数据执行动作,中心节点汇聚分析计算数据,而恶劣工作场合下,设备故障,通选断连时有发生,为确保不稳定网络下异构设备的系统工作, 各端采集操作数据多端数据一致,需要解决以下问题:
2. 赛题要求
实现一个Demo, 可以达成3个以上设备的数据操作一致性,支持各节点的上下线,保证组网内数据实时一致。 基础目标 实现支持3个设备以上的组网,可根据设备优先级进行自动选主,设备的数据可进行实时同步,达到分布式一致。 数据同步时延<500ms(wifi连接场景,数据量<1K) 支持组网内任意节点的加入及退出,主节点下线后组网内设备可进行自行重新选组,维持组网内各设备正常协同工作。 挑战目标 组网设备5+, 组网变化后,在5s内能达成新的主节点规划,组网数据同步正常(wifi连接场景) 各设备预置不同数据数据量,设备数据量(动态变化), 设备级别需要做为组网权重参考。 示例 数据格式为KV格式,格式如下: 各条记录为实时采集的各节点环境信息,Key为设备采集信息的时间点,Value为获取到的当前环境信息以JSON串形式保存。
其中,每个设备包含一条整体环境的数据平均值,根据数据采集情况及同步情况实时刷新计算,汇总信息条目key值为Avg,value为计算的平均值结果对应格式的json串,可以用于反应整个工况的实时环境信息。 例1:各设备等级相同场景以数据量大的优先
假设设备权重比为s2(1.2):s1(0.9):s0(0.8) 设备数据量相同场景以数据设备登记权重大的优先
例2: 假设设备权重比为s2(1.2):s1(0.9):s0(0.8) 设备数据量不同场景且设备等级不同,根据加权计算结果大者优先 若B设备下线,应选取E节点作为主节点
3. 赛题导师
徐少华 — xushaohua@huawei.com 孙朋 — sunpeng26@huawei.com
4. 参考资料
依赖代码仓 https://gitee.com/openharmony/distributeddatamgr_appdatamgr https://gitee.com/openharmony/distributeddatamgr_kv_store 开发及验证指南 分布式数据管理子系统介绍 https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E5%88%86%E5%B8%83%E5%BC%8F%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E5%AD%90%E7%B3%BB%E7%BB%9F.md OpenHarmony自验证指南 https://gitee.com/openharmony/docs/blob/master/zh-cn/readme/%E6%B5%8B%E8%AF%95%E5%AD%90%E7%B3%BB%E7%BB%9F.md 推荐硬件 Rk3568开发板* 3