aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorasmyasnikov <asmyasnikov@ydb.tech>2023-03-03 10:39:00 +0300
committerasmyasnikov <asmyasnikov@ydb.tech>2023-03-03 10:39:00 +0300
commit6c4279de8b9fcd286ed33e03d89c857dad6e6272 (patch)
tree1cf22d2d1cc5f42a38b529eb4be4877d951affb9
parent5f92e28da94623bf77457128d29720bb545aceae (diff)
downloadydb-6c4279de8b9fcd286ed33e03d89c857dad6e6272.tar.gz
added tx-control.md
added tx-control.md
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md5
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/toc_i.yaml13
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-online-read-only.md44
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-serializable-read-write.md44
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-snapshot-read-only.md44
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-stale-read-only.md44
-rw-r--r--ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control.md194
7 files changed, 388 insertions, 0 deletions
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
index 7c50af6ec57..67403a5ce27 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/index.md
@@ -27,6 +27,11 @@ description: "В данном разделе содержатся рецепты
- [Установить размер пула сессий](session-pool-limit.md)
- [Вставка данных](upsert.md)
- [Пакетная вставка данных](bulk-upsert.md)
+<!-- - [Установка режима выполнения транзакции](tx-control.md)
+ - [SerializableReadWrite](tx-control-serializable-read-write.md)
+ - [OnlineReadOnly](tx-control-online-read-only.md)
+ - [StaleReadOnly](tx-control-stale-read-only.md)
+ - [SnapshotReadOnly](tx-control-snapshot-read-only.md) -->
- [Диагностика проблем](debug.md)
- [Включить логирование](debug-logs.md)
- [Подключить метрики в Prometheus](debug-prometheus.md)
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/toc_i.yaml b/ydb/docs/ru/core/reference/ydb-sdk/recipes/toc_i.yaml
index 0f6618d9910..8edb7689e79 100644
--- a/ydb/docs/ru/core/reference/ydb-sdk/recipes/toc_i.yaml
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/toc_i.yaml
@@ -37,6 +37,19 @@ items:
href: upsert.md
- name: Пакетная вставка данных
href: bulk-upsert.md
+- name: Установка режима выполнения транзакции
+ hidden: true
+ items:
+ - name: Обзор
+ href: tx-control.md
+ - name: SerializableReadWrite
+ href: tx-control-serializable-read-write.md
+ - name: OnlineReadOnly
+ href: tx-control-online-read-only.md
+ - name: StaleReadOnly
+ href: tx-control-stale-read-only.md
+ - name: SnapshotReadOnly
+ href: tx-control-snapshot-read-only.md
- name: Диагностика проблем
items:
- name: Обзор
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-online-read-only.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-online-read-only.md
new file mode 100644
index 00000000000..f05dc0e3ecb
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-online-read-only.md
@@ -0,0 +1,44 @@
+# OnlineReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithOnlineReadOnly(table.WithInconsistentReads())),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-serializable-read-write.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-serializable-read-write.md
new file mode 100644
index 00000000000..3c3f2ab4d3f
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-serializable-read-write.md
@@ -0,0 +1,44 @@
+# SerializableReadWrite
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithSerializableReadWrite()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-snapshot-read-only.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-snapshot-read-only.md
new file mode 100644
index 00000000000..f40ee562b24
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-snapshot-read-only.md
@@ -0,0 +1,44 @@
+# SnapshotReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithSnapshotReadOnly()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-stale-read-only.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-stale-read-only.md
new file mode 100644
index 00000000000..07d9d90af3b
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control-stale-read-only.md
@@ -0,0 +1,44 @@
+# StaleReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithStaleReadOnly()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
diff --git a/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control.md b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control.md
new file mode 100644
index 00000000000..45c0b5b413e
--- /dev/null
+++ b/ydb/docs/ru/core/reference/ydb-sdk/recipes/tx-control.md
@@ -0,0 +1,194 @@
+---
+title: "Обзор рецепта кода по установке режима выполнения транзакции в {{ ydb-short-name }}"
+description: "В статье вы ознакомитесь как в разных SDK установить режим выполнения транзакции для выполнения запросов к {{ ydb-short-name }} ."
+---
+
+# Установка режима выполнения транзакции
+
+{% include [work in progress message](_includes/addition.md) %}
+
+В SDK для выполнения запросов к {{ ydb-short-name }} необходимо всегда указывать режим выполнения транзакции.
+
+<[Тут умные слова или отсылка к разделу документации о том, какие режимы выполнения транзакций поддерживаются в YDB.]>
+
+Ниже приведены примеры кода использования встроенных в {{ ydb-short-name }} SDK средств создания объекта режим выполнения транзакции:
+
+## SerializableReadWrite
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithSerializableReadWrite()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
+
+## OnlineReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithOnlineReadOnly(table.WithInconsistentReads())),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
+
+## StaleReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithStaleReadOnly()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}
+
+## SnapshotReadOnly
+
+{% list tabs %}
+
+- Go (native)
+
+ ```go
+ package main
+
+ import (
+ "context"
+ "os"
+
+ "github.com/ydb-platform/ydb-go-sdk/v3"
+ "github.com/ydb-platform/ydb-go-sdk/v3/table"
+ )
+
+ func main() {
+ ctx, cancel := context.WithCancel(context.Background())
+ defer cancel()
+ db, err := ydb.Open(ctx,
+ os.Getenv("YDB_CONNECTION_STRING"),
+ ydb.WithAccessTokenCredentials(os.Getenv("YDB_TOKEN")),
+ )
+ if err != nil {
+ panic(err)
+ }
+ defer db.Close(ctx)
+ txControl := table.TxControl(
+ table.BeginTx(table.WithSnapshotReadOnly()),
+ table.CommitTx(),
+ )
+ err := driver.Table().Do(scope.Ctx, func(ctx context.Context, s table.Session) error {
+ _, _, err := s.Execute(ctx, txControl, "SELECT 1", nil)
+ return err
+ })
+ if err != nil {
+ fmt.Printf("unexpected error: %v", err)
+ }
+ }
+ ```
+
+
+{% endlist %}