並行性制御は、データベース管理の重要な側面であり、複数のトランザクションが競合やデータの矛盾を引き起こすことなくデータに同時にアクセスおよび変更できるようにします。高いパフォーマンスデータベースシステムであるTibaseのサプライヤーとして、Tibaseで採用されている並行性制御メカニズムを掘り下げたいと思います。
1。ロックベースの並行性制御
1.1ロックの種類
Tibaseは、さまざまなロックを使用して、データへの同時アクセスを管理します。 2つの基本的なタイプのロックは、共有ロック(S-ロック)と排他的ロック(X -Locks)です。
トランザクションがデータを読み取るだけである場合に共有ロックが使用されます。複数のトランザクションは、同じデータ項目の共有ロックを同時に保持できます。たとえば、いくつかの読み取り - トランザクションのみがデータベース内の特定の顧客レコードにアクセスしたい場合、それらはすべてそのレコードで共有ロックを取得できます。これにより、複数の読み取り操作が互いにブロックせずに発生する可能性があるため、データの効率的な同時読み取り値が可能になります。
一方、トランザクションがデータを変更する予定の場合、排他的ロックが必要です。一度にデータ項目に排他的ロックを保持できるトランザクションは1つだけです。トランザクションが顧客のアドレスを更新したい場合、最初に対応する顧客レコードの排他的ロックを取得する必要があります。排他的ロックは保持されていますが、他のトランザクションはそのデータ項目の共有ロックまたは排他的ロックを取得することはできず、ロックがリリースされるまで他のトランザクションがデータを読み書きしたり書いたりするのを防ぎます。


1.2ロック粒度
Tibaseは、さまざまなレベルのロック粒度をサポートします。これは、ロックを適用できるデータ項目のサイズを指します。ロックの粒度は、非常に細かい粒度(テーブルの単一の列など)から非常に粗い - 粒子(データベース全体など)までの範囲です。
微細なロックは、トランザクションが必要な特定のデータのみをロックし、他のトランザクションが無関係なデータにアクセスできるため、より高い並行性を提供します。たとえば、トランザクションで大きなテーブルで1つの行を更新する必要がある場合、行を取得できます。レベルロックを取得でき、他のトランザクションは同じテーブル内の他の行にアクセスできます。
一方、粗いロックは、管理がより簡単ですが、並行性が低下する可能性があります。トランザクションがテーブル - レベルロックを取得した場合、ロックが解放されるまで他のトランザクションはそのテーブルのどの部分にアクセスできません。 Tibaseを使用すると、データベース管理者は、アプリケーションの要件に基づいて適切なロック粒度を選択できます。
1.3ロック互換性マトリックス
ロック要求を許可できるかどうかを判断するために、Tibaseはロック互換性マトリックスを使用します。このマトリックスは、複数のロックが同じデータ項目に存在する場合のルールを定義します。以下は、単純化されたロック互換性マトリックスです。
| 共有ロック | 排他的ロック | |
|---|---|---|
| 共有ロック | はい | いいえ |
| 排他的ロック | いいえ | いいえ |
このマトリックスは、複数の共有ロックを同じデータ項目に保持できることを示していますが、排他的なロックは共有ロックまたは排他的ロックのいずれかで存在することはできません。トランザクションがロックを要求すると、Tibaseはこのマトリックスを使用してデータアイテムの現在のロックステータスをチェックします。要求されたロックが既存のロックと互換性がある場合、リクエストは許可されます。それ以外の場合、トランザクションは、競合するロックがリリースされるまで待つ必要があります。
2。タイムスタンプベースの並行性制御
2.1タイムスタンプの割り当て
ロックベースの並行性制御に加えて、Tibaseはタイムスタンプベースの並行性制御もサポートします。各トランザクションは、システムに入るときに一意のタイムスタンプが割り当てられます。タイムスタンプは、トランザクションが開始される順序を表します。
タイムスタンプを使用して、トランザクションの実行順序を決定し、競合を防ぐことができます。たとえば、2つのトランザクションが同じデータ項目にアクセスしようとする場合、以前のタイムスタンプとのトランザクションは優先度が高いと見なされます。
2.2タイムスタンプ注文プロトコル
Tibaseは、タイムスタンプの注文プロトコルを使用して、トランザクションのシリアル化可能性を確保します。そのようなプロトコルの1つは、基本的なタイムスタンプ注文プロトコルです。このプロトコルでは、トランザクションがデータ項目の読み取りまたは書き込みを試みると、システムはトランザクションのタイムスタンプとデータ項目の最後の記述されたタイムスタンプをチェックします。
後のタイムスタンプを使用したトランザクションが、以前のタイムスタンプを使用したトランザクションによって作成されたデータ項目の作成を試みた場合、後のトランザクションは新しいタイムスタンプで中止され、再起動されます。同様に、後のタイムスタンプとのトランザクションが、以前のタイムスタンプとのトランザクションによって記述されるデータ項目を読み込もうとする場合、後のトランザクションも中止される可能性があります。
3.多額の並行性制御(MVCC)
3.1データの複数のバージョン
TIBASEは、同じデータ項目の複数のバージョンがデータベースに存在することを許可する多額の並行性制御(MVCC)を実装します。トランザクションが既存のデータを上書きする代わりにデータ項目を更新すると、データの新しいバージョンが作成されます。
データの各バージョンはタイムスタンプに関連付けられており、バージョンが作成された時間を示します。これにより、トランザクションは、同時書き込み操作によってブロックされることなく、トランザクションが開始されたときに有効なデータのバージョンを読み取ることができます。
3.2読み取り - コミットと繰り返し可能 - 分離レベルを読む
TibaseのMVCCは、読み取りなどのさまざまな分離レベルをサポートしています。
読み取り - コミットされた分離レベルでは、トランザクションは最新のコミットバージョンのデータを読み取ります。これは、別のトランザクションがデータ項目の更新をコミットした場合、読み取りトランザクションに更新されたバージョンが表示されることを意味します。
繰り返し可能な - 分離レベルを読み取ると、トランザクションはトランザクションの開始時に有効なデータのバージョンを読み取ります。これにより、トランザクションが実行中にデータ項目を複数回読み取ると、他のトランザクションがその間にデータを変更した場合でも、常に同じバージョンのデータが表示されます。
4。歯科インプラントへの影響 - 関連アプリケーション
歯科インプラント - 関連アプリケーションでは、患者の記録を管理するためにチバゼを使用できる場合、在庫の歯ラボモデルアナログ、一時的なアバットメント、 そしてヒーリングキャップ、チバゼの並行性制御メカニズムが重要な役割を果たします。
たとえば、複数の歯科診療所が同じ在庫データベースにアクセスして、歯科インプラント部品の利用可能性を確認する場合があります。ロック - ベースの並行性制御は、1つのクリニックが留保するときに一時的なアバットメント、他の診療所は同じアイテムを同時に予約することはできず、予約を防ぎます。
タイムスタンプベースの並行性制御を使用して、患者の記録が正しい順序で更新されるようにすることができます。 2つの診療所が同時に患者の治療履歴を更新しようとする場合、システムはタイムスタンプを使用して、最初にどの更新を適用するかを判断できます。
MVCCを使用すると、診療所は、同時の更新によってブロックされることなく、患者の記録を表示できます。たとえば、歯科医は、読み取り操作の開始時に有効なレコードのバージョンを表示するため、他のスタッフがレコードを更新している間、歯科医は患者の記録を読むことができます。
5。結論と行動への呼びかけ
結論として、Tibaseは、ロックベースの制御、タイムスタンプベースのコントロール、MVCCなど、包括的な同時制御メカニズムを提供します。これらのメカニズムは、トランザクションの高い並行性、データの一貫性、およびシリアル化可能性を確保するために連携します。
歯科インプラント業界であろうと、効率的なデータベース管理を必要とするその他の分野であろうと、Tibaseは必要な信頼性とパフォーマンスを提供できます。 Tibaseの並行性制御メカニズムがビジネスにどのように利益をもたらすかについて詳しく知りたい場合、または調達ディスカッションを開始する準備ができている場合は、お気軽にご連絡ください。データベースシステムを最大限に活用できるようになりました。
参照
- 日付、CJ(2004)。データベースシステムの紹介。アディソン - ウェスリー。
- ペンシルベニア州バーンスタイン、ハジラコス、V。、およびグッドマン、N。(1987)。データベースシステムの並行性制御と回復。アディソン - ウェスリー。
