Help Center/ GaussDB(for MySQL)/ API Reference/ APIs (Recommended)/ SQL Statement Concurrency Control/ Configuring Concurrency Control Rules of SQL Statements
Updated on 2023-10-18 GMT+08:00

Configuring Concurrency Control Rules of SQL Statements

Function

This API is used to configure concurrency control rules of SQL statements. Before calling this API:

URI

PUT /v3/{project_id}/instances/{instance_id}/sql-filter/rules

Table 1 URI parameters

Parameter

Mandatory

Type

Description

project_id

Yes

String

Project ID of a tenant in a region.

To obtain this value, see Obtaining a Project ID.

instance_id

Yes

String

Instance ID.

Request Parameters

Table 2 Request header parameters

Parameter

Mandatory

Type

Description

X-Auth-Token

Yes

String

User token.

If the following response body is returned for calling the API used to obtain a user token, the request is successful.

After the request is processed, the value of X-Subject-Token in the message header is the token value.

X-Language

No

String

Request language type. The default value is en-us.

Value:

  • en-us
  • zh-cn
Table 3 Request body parameter

Parameter

Mandatory

Type

Description

sql_filter_rules

Yes

Array of NodeSqlFilterRuleInfo objects

Concurrency control rules of SQL statements for nodes.

Table 4 NodeSqlFilterRuleInfo

Parameter

Mandatory

Type

Description

node_id

Yes

String

Node ID.

rules

Yes

Array of NodeSqlFilterRule objects

Concurrency control rules of SQL statements. The sql_type value must be unique.

Table 5 NodeSqlFilterRule

Parameter

Mandatory

Type

Description

sql_type

Yes

String

SQL statement type.

Valid value:

  • SELECT
  • UPDATE
  • DELETE

patterns

Yes

Array of NodeSqlFilterRulePattern objects

Concurrency control rules of SQL statements.

Table 6 NodeSqlFilterRulePattern

Parameter

Mandatory

Type

Description

pattern

Yes

String

A concurrency control rule of SQL statements. A rule can consist of up to 128 keywords. The keywords are separated by tildes (~), for example, select~from~t1. The rule cannot contain backslashes (\), commas (,), or double tildes (~~). It cannot end with tildes (~).

max_concurrency

Yes

Integer

Maximum number of concurrent SQL statements.

Value: a non-negative integer.

Response Parameters

Status code: 200

Table 7 Response body parameters

Parameter

Type

Description

job_id

String

ID of the task for configuring concurrency control rules of SQL statements.

Status code: 400

Table 8 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Status code: 500

Table 9 Response body parameters

Parameter

Type

Description

error_code

String

Error code.

error_msg

String

Error message.

Example Request

Configuring concurrency control rules of SQL statements (SQL statement types include SELECT, UPDATE, and DELETE.)

PUT https://{endpoint}/v3/054e292c9880d4992f02c0196d3ea468/instance/af315b8e6aaa41799bd9a31f2de15abcin07/sql-filter/rules
{
  "sql_filter_rules" : [ {
    "node_id" : "c01a5645eb2c4fb6a9373542f5366e50no07",
    "rules" : [ {
      "sql_type" : "SELECT",
      "patterns" : [ {
        "pattern" : "select~from~t1",
        "max_concurrency" : 0
      }, {
        "pattern" : "select~from~t3~where~id",
        "max_concurrency" : 10
      } ]
    }, {
      "sql_type" : "UPDATE",
      "patterns" : [ {
        "pattern" : "update~t3~where~id",
        "max_concurrency" : 10
      } ]
    } ]
  }, {
    "node_id" : "b234a5645eb2c4ji3b9372342f5362397no07",
    "rules" : [ {
      "sql_type" : "SELECT",
      "patterns" : [ {
        "pattern" : "select~from~t3~where~id",
        "max_concurrency" : 10
      } ]
    }, {
      "sql_type" : "DELETE",
      "patterns" : [ {
        "pattern" : "delete~t3~where~id",
        "max_concurrency" : 10
      } ]
    } ]
  } ]
}

Example Response

Status code: 200

Success.

{
  "job_id" : "aef6a470-fb63-4d5b-b644-12ead7e019b3"
}

Status Code

For details, see Status Codes.

Error Code

For details, see Error Codes.