文档

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

更新时间:

问题描述

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

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.

问题原因

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

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

解决方案

一般重试即可解决。

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

说明

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

  • 本页导读 (1)
文档反馈