本文主要为您介绍局部事务相关接口。

StartLocalTransaction

创建事务,获取事务ID(分区级别的事务)。

  • 接口
        /**
         * 开始事务,获取事务ID
         * @api
         * @param [] $request
         *            请求参数:表名、分区键。
         * @return [] 请求返回。
         * @throws OTSClientException 当参数检查出错或服务端返回校验出错时。
         * @throws OTSServerException 当OTS服务端返回错误时。
         * @example "src/examples/StartLocalTransaction.php" 50
         */
        public function startLocalTransaction(array $request)
  • 示例
    $response = $this->otsClient->startLocalTransaction (array (
        'table_name' => 'TransactionTable',
        'key' => array(  //主键 [PK0:INTEGER,PK1:STRING]
            array('PK0', 0)
        )
    ));

    获取事务ID后,PutRow、UpdateRow、BatchWriteRow时携带事务ID请求。

    $updateRequest = array(
        'table_name' => 'TransactionTable',
        'condition' => RowExistenceExpectationConst::CONST_IGNORE,
        'primary_key' => array (
            array('PK0', 0),
            array('PK1', '1')
        ),
        'update_of_attribute_columns'=> array(
            'PUT' => array (
                array('attr0', 'new value')
            )
        ),
        'transaction_id' => $response['transaction_id']
    );
    $this->otsClient->updateRow($updateRequest);

CommitTransaction

提交事务

  • 接口
        /**
         * 提交事务。
         * @api
         *
         * @param [] $request
         *            请求参数,表名。
         * @return [] 请求返回。
         * @throws OTSClientException 当参数检查出错或服务端返回校验出错时。
         * @throws OTSServerException 当OTS服务端返回错误时。
         * @example "src/examples/CommitTransaction.php" 50
         */
        public function commitTransaction(array $request)
  • 示例
    $this->otsClient->commitTransaction(array(
        'transaction_id' => $response['transaction_id']
    ));

AbortTransaction

舍弃事务。携带次事务ID的所有请求都会被舍弃。

  • 接口
        /**
         * 舍弃事务。
         * @api
         *
         * @param [] $request
         *          请求参数,事务ID。
         * @return [] 请求返回。
         * @throws OTSClientException 当参数检查出错或服务端返回校验出错时。
         * @throws OTSServerException 当OTS服务端返回错误时。
         * @example "src/examples/AbortTransaction.php" 20
         */
        public function abortTransaction(array $request)
  • 示例
    $this->otsClient->abortTransaction(array(
        'transaction_id' => $response['transaction_id']
    ));