开发者社区 > 云存储 > 正文

表格存储OTS 是不是会有锁的概念啊?

表格存储OTS 是不是会有锁的概念啊?我同时写再同时去读 就容易卡死

展开
收起
嘟嘟嘟嘟嘟嘟 2023-12-20 08:28:32 71 0
4 条回答
写回答
取消 提交回答
  • 表格存储OTS(如阿里云的表格存储)通常不支持行级锁,但可能会有版本控制机制来处理并发写入和读取。同时写入和读取数据可能会导致数据版本的冲突,而不是“卡死”。具体的行为取决于你使用的云服务商和表格存储服务的具体实现。

    2023-12-20 15:24:24
    赞同 展开评论 打赏
  • 面对过去,不要迷离;面对未来,不必彷徨;活在今天,你只要把自己完全展示给别人看。

    是的,表格存储OTS(Open Table Service)的确存在锁的概念。在处理并发读写情况时,可能会出现锁定的情况,从而导致同时写入和读取的操作阻塞。为了避免这种情况,您可以采取以下策略:

    1. 优化事务设计: 在进行批量操作时,尽量将多个写操作合并为一个事务,以减少锁的使用。通过合理的事务设计,可以降低锁冲突的概率。

    2. 使用乐观锁: 乐观锁是一种非阻塞性锁机制,适用于读多写少的场景。您可以在数据更新时检查版本号或时间戳,如果数据未被其他事务修改,则执行更新操作,否则放弃更新并重试。

    3. 横向分片: 将一个大表按照某个字段进行水平分片,使得不同的读写操作可以并行处理,从而减少锁的竞争。但请注意,分片会引入一定的复杂性和性能开销。

    4. 异步处理: 对于一些非关键性的读写操作,可以考虑采用异步方式进行处理。通过将写入操作放入消息队列中,可以缓解锁的竞争压力,提高系统的吞吐量。

    5. 服务端优化: 如果业务场景允许,您还可以考虑升级到更高配置的表格存储实例,以提高系统的并发处理能力。

    综合考虑业务需求、性能要求和实际情况,您可以选择合适的策略来应对锁竞争问题,确保系统的稳定性和性能 。

    2023-12-20 14:14:03
    赞同 展开评论 打赏
  • 多个请求写同一行会导致冲突。此回答整理自钉群“表格存储技术交流群-2”

    2023-12-20 08:57:09
    赞同 展开评论 打赏
  • 在使用局部事务期间,对应分区键值的数据会被加上写锁,只有持有局部事务ID在局部事务范围内的写请求才会成功。其他非事务请求或持有其他局部事务ID在局部事务范围内的写请求均会失败。在局部事务提交、丢弃或超时后,对应的锁也会被释放。https://help.aliyun.com/zh/tablestore/local-transactions?spm=a2c4g.11186623.0.i16

    2023-12-20 08:57:11
    赞同 展开评论 打赏

阿里云存储基于飞天盘古2.0分布式存储系统,产品多种多样,充分满足用户数据存储和迁移上云需求。

相关电子书

更多
TableStore在社交类场景下的应用 立即下载
表格存储实时数据流Steam的技术揭秘和应用场景 立即下载
表格存储(TableStore) 立即下载