华为HarmonyOS鸿蒙Next AGC云数据库数据并发问题
华为HarmonyOS鸿蒙Next AGC云数据库数据并发问题
1、出现问题时,您做了哪些操作?
回答:
- 我将100条数据一次性上传云数据库会出现上传错误,但是有部分数据会上传成功,例如上传100条数据会有30条上传成功,但是上传少量数据,比如30条之内则会上传成功。
- 我通过多台设备同时对云数据库上传数据,例如我通过三台设备同时上传数据,每台设备各上传30条数据,其中一台设备上传成功,数据完整,其余两台上传失败,数据不全(但是也会上传成功几条数据)。但是三台设备同时上传5条数据则会三台设备数据都上传成功。
2、在哪个步骤出现了问题?
回答:在向AGC云数据库上传数据时出现了错误。传大量数据会出现错误,少量数据则不会。例如100条数据则会上传失败,30条数据则上传成功。同理多个设备同时上传传少量数据会上传成功,同时上传数据超过某个值会其中一个成功。
3、您希望得到什么结果?
回答:希望单设备上传大量数据成功,多设备共同上传数据时也成功。
4、您实际得到什么结果?
回答:
- 实际上单设备上传少量数据会上传成功,正常。但是上传大量数据则会失败,但是也会有部分数据上传成功,也就是说数据量太大时会上传,但是只能上传部分数据,上传成功的数据不完全。例如上传50条数据会上传失败,但是上传30条数据则会成功。
- 实际上多设备同时上传数据,当全部上传少量数据,例如3个设备每个都上传5条数据则都会成功,但当3台设备每台上传30条数据,则有设备数据上传成功,有设备数据上传会不完全,只能上传部分数据。
5、出现故障的手机型号以及操作系统版本?
回答:测试手机是华为Mate 70 Pro
手机型号是PLR—AL00
操作系统版本为5.0.0.155 SP6
上传50条时会失败,但是去查看数据库却有部分数据录入成功。
一次性上传30条数据,则会顺利上传成功。
多设备同时上传也是如此,当超过某一个值则会失败(经过测试好像在40条数据左右)
更多关于华为HarmonyOS鸿蒙Next AGC云数据库数据并发问题的实战教程也可以访问 https://www.itying.com/category-93-b0.html
您好,能否提供一下您的项目id,以及具体的操作时间,以供问题定位?
更多关于华为HarmonyOS鸿蒙Next AGC云数据库数据并发问题的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
这里我将我开的工单内容放在了这里,请求各位大佬帮忙解决一下数据并发问题
鸿蒙Next AGC云数据库支持多设备数据同步,采用分布式架构处理并发。通过版本号机制实现冲突检测,当多端同时修改数据时,服务端会基于时间戳和操作顺序进行自动合并。开发者无需手动处理锁机制,系统默认提供最终一致性保障。对于高频写入场景,建议合理设计数据分片策略。数据库操作API中已封装了原子性操作接口,单条记录修改具备原子性。
从描述来看,这明显是AGC云数据库的并发写入限制问题。HarmonyOS Next的云数据库对单次批量写入和多设备并发写入都有默认限制。
针对批量写入问题:
- 云数据库单次批量写入建议控制在30条以内,超过此数量建议分批次写入
- 可以使用事务处理确保数据完整性,失败时自动回滚
- 考虑使用
addAll()
方法替代循环单条写入
针对多设备并发问题:
- 云数据库默认有QPS限制,多设备同时写入时容易触发限流
- 建议在客户端实现写入队列,控制并发量
- 可以适当增加重试机制,对失败写入自动重试
这些限制是云数据库的通用设计,目的是保障服务稳定性。建议优化写入策略,将大数据量拆分为小批次处理,并合理控制并发量。