使用表格存储过程中返回503错误码

更新时间:2024-07-23 02:59:38

问题描述

在使用表格存储的过程中,偶尔会出现503错误,详细错误信息请参见下表。

HTTPStatus

ErrorCode

ErrorMsg

HTTPStatus

ErrorCode

ErrorMsg

503

OTSPartitionUnavailable

The partition is not available.

503

OTSServerUnavailable

Server is not available.

503

OTSServerBusy

Server is busy.

503

OTSTimeout

Operation timeout.

问题原因

表格存储使用的是共享存储的机制,以数据分区为逻辑单位,因此在负载均衡的过程中不会有实际数据的迁移,只是数据表元信息的变更。

在元信息变更的过程中,为了保证数据的一致性,涉及到的数据分区会有短暂的不可用时间,正常情况下影响时间为百毫秒级别,在数据分区负载较大时可能会持续到秒级别,在这段时间内对该分区的读写操作有可能会出现上述的503错误。

解决方案

一般重试即可解决。

在表格存储SDK中默认提供了一些重试策略,在初始化Client时可以指定重试策略。更多信息,请参见初始化Client。同时,表格存储提供了标准Restful API协议,由于网络环境的不可控,所有的读写操作均建议增加重试策略,能够对网络错误等有一定的容错能力。

重要

批量读写操作BatchWriteRowBatchGetRow读写的数据可能属于多张表或者一张表的多个数据分区,有可能某一个分区正在分裂,所以整个操作是非原子性的,只能够保证每个单行操作的原子性,该操作返回码为200时,仍然需要检查response中的getFailedRows()是否有失败的单行操作。

  • 本页导读 (1)
  • 问题描述
  • 问题原因
  • 解决方案

点击开启售前

在线咨询服务