Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions develop/dev-guide-optimistic-and-pessimistic-transaction.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ aliases: ['/ja/tidb/stable/dev-guide-optimistic-and-pessimistic-transaction/','/

## 悲観的トランザクション {#pessimistic-transactions}

以下のコードは、2つのスレッドを使用して、2人のユーザーが同じ本を悲観的トランザクションモードで購入するプロセスをシミュレートします。書店には10冊の本が残っています。ボブは6冊、アリスは4冊を購入します。2人はほぼ同時に注文を完了します。その結果、在庫にあるすべての本が売り切れます。
以下のコードは、2つのスレッドを使用して、2人のユーザーが同じ本を悲観的トランザクションモードで購入するプロセスをシミュレートします。書店には10冊の本が残っています。Bobは6冊、Aliceは4冊を購入します。2人はほぼ同時に注文を完了します。その結果、在庫にあるすべての本が売り切れます。

<SimpleTab groupId="language">

Expand Down Expand Up @@ -919,7 +919,7 @@ mysql> SELECT * FROM users;

### 過剰販売を防ぐ例 {#an-example-that-prevents-overselling}

この例のタスクはより難易度が高いです。在庫が10冊残っているとします。ボブは7冊、アリスは4冊、そしてほぼ同時に注文したとします。何が起こるでしょうか?前の例のコードを再利用してこの課題を解決し、ボブの購入数量を6から7に変更することができます
この例のタスクはより難易度が高いです。在庫が10冊残っているとします。Bobは7冊、Aliceは4冊、そしてほぼ同時に注文したとします。何が起こるでしょうか?前の例のコードを再利用してこの課題を解決し、Bobの購入数量を6から7に変更することができます

サンプルプログラムを実行します。

Expand Down Expand Up @@ -968,7 +968,7 @@ OPTIMISTIC=False ALICE=4 BOB=7 python3 txn_example.py

`txn 2`先行してロックリソースを取得し、ストックを更新するため、 `txn 1`の`affected_rows`の戻り値は0となり、 `rollback`処理に入ります。

注文の作成、ユーザー残高の減額、書籍在庫の減額を確認しましょう。アリスは4冊の注文に成功し、ボブは7冊の注文に失敗しました。残りの6冊は予想通り在庫があります。
注文の作成、ユーザー残高の減額、書籍在庫の減額を確認しましょう。Aliceは4冊の注文に成功し、Bobは7冊の注文に失敗しました。残りの6冊は予想通り在庫があります。
Comment thread
coderabbitai[bot] marked this conversation as resolved.

```sql
mysql> SELECT * FROM books;
Expand Down Expand Up @@ -999,7 +999,7 @@ mysql> SELECT * FROM users;

## 楽観的トランザクション {#optimistic-transactions}

以下のコードは、2つのスレッドを使用して、悲観的トランザクションの例と同様に、2人のユーザーが楽観的トランザクションで同じ本を購入するプロセスをシミュレートします。在庫には10冊の本が残っています。ボブは6冊、アリスは4冊購入します。2人はほぼ同時に注文を完了します。最終的に、在庫には本が残っていません。
以下のコードは、2つのスレッドを使用して、悲観的トランザクションの例と同様に、2人のユーザーが楽観的トランザクションで同じ本を購入するプロセスをシミュレートします。在庫には10冊の本が残っています。Bobは6冊、Aliceは4冊購入します。2人はほぼ同時に注文を完了します。最終的に、在庫には本が残っていません。

### 楽観的トランザクションの例を書く {#write-an-optimistic-transaction-example}

Expand Down Expand Up @@ -1286,7 +1286,7 @@ mysql> SELECT * FROM users;

### 過剰販売を防ぐ例 {#an-example-that-prevents-overselling}

このセクションでは、過剰販売を防ぐ楽観的トランザクションの例を説明します。在庫に10冊の本が残っているとします。ボブは7冊、アリスは4冊購入します。2人はほぼ同時に注文をしました。何が起こるでしょうか?この要件に対処するために、楽観的トランザクションの例のコードを再利用できます。ボブの購入数を6冊から7冊に変更してください
このセクションでは、過剰販売を防ぐ楽観的トランザクションの例を説明します。在庫に10冊の本が残っているとします。Bobは7冊、Aliceは4冊購入します。2人はほぼ同時に注文をしました。何が起こるでしょうか?この要件に対処するために、楽観的トランザクションの例のコードを再利用できます。Bobの購入数を6冊から7冊に変更してください

サンプルプログラムを実行します。

Expand Down
8 changes: 4 additions & 4 deletions develop/dev-guide-transaction-overview.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,10 @@ TiDBは完全な分散トランザクションをサポートし、 [楽観的

この章では、TiDBにおけるトランザクションの使用方法を紹介します。以下の例は、単純なトランザクションの処理を示しています。

ボブはアリスに20ドルを送金したいと考えています。このトランザクションには2つの操作が含まれます。
BobはAliceに20ドルを送金したいと考えています。このトランザクションには2つの操作が含まれます。

- ボブの口座残高は 20 ドル減少します。
- アリスの口座残高は 20 ドル増加しました。
- Bobの口座残高は 20 ドル減少します。
- Aliceの口座残高は 20 ドル増加しました。

トランザクションにより、上記の操作の両方が正常に実行されるか、または両方とも失敗するかを確認できます。

Expand Down Expand Up @@ -93,7 +93,7 @@ COMMIT;
ROLLBACK;
```

前の転送の例では、トランザクション全体をロールバックすると、アリスとボブの残高は変更されず、現在のトランザクションのすべての変更がキャンセルされます。
前の転送の例では、トランザクション全体をロールバックすると、AliceとBobの残高は変更されず、現在のトランザクションのすべての変更がキャンセルされます。

```sql
TRUNCATE TABLE `users`;
Expand Down
2 changes: 1 addition & 1 deletion develop/dev-guide-update-data.md
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ UPDATE {table} SET {update_column} = {update_value} WHERE {filter_column} = {fil

### `UPDATE`例 {#update-example}

[著者](/develop/dev-guide-bookshop-schema-design.md#authors-table)が名前を**ヘレン・ハルキ**に変更したとします。テーブルを変更する必要があります。彼女の固有の`id`が**1で**あると仮定すると、フィルターは`id = 1`になります。
[authors](/develop/dev-guide-bookshop-schema-design.md#authors-table)テーブルの著者が名前を**Helen Haruki**に変更したとします。[authors]テーブルを変更する必要があります。彼女の固有の`id`が**1**であると仮定すると、フィルターは`id = 1`になります。

<SimpleTab groupId="language">
<div label="SQL" value="sql">
Expand Down
Loading