参考:Teradata RDBMS SQL Reference - Volume 2 Statement and Transaction Processing
| ACID属性 | |
| Atomicity | A transaction either occurs or it does not. No matter how many component SQL operations are specified within the boundaries of a transaction, they must all complete successfully and commit or they must all fail and rollback. There are no partial transactions. |
| Consistency | A transaction transforms one consistent database state into another. Intermediate inconsistencies in the database are not permitted. |
| Isolation | The operations of any transaction are concealed from all other transactions until that transaction commits. |
| Durability | Once a commit has been made, the new consistent state of the database survives even if the underlying system crashes. |
ACID属性に関しては、上記のように全てサポートすると記載されている。
例えば、トランザクション単位でのCommit/RollbackはOracleと同じようにサポートされている。
しかし、行ロック機能はサポートされておらず(*1)、ユニークキー(パーティション・インデックスあるいはサブパーティション・インデックス)の場合にはハッシュキー単位、非ユニークの場合にはTable単位のロックとなる。
(*1) DWHに特化したマシンであり、複数ユーザの行単位の同時更新などは無いはずである。当然Select処理はロックされない。
CAP定理
前提条件として、分散コンピューティングとパラレル(コンカレント)コンピューティングとの違いを定義しておく必要がある。
前者は別筐体で独立したCPUやメモリを使用して複数のシステム間で処理を分散する。(Loosely-coupled)
後者は一般的に共有メモリでCPU処理を分散するクラスタ型システムであったり、独立した複数のCPU同士がメモリ間通信を行うMPP(Massive Parallel Server)型システムを指す。(Tightly-coupled)
TeradataはTightly-coupledのパラレルコンピューティング方式であり、AvailabilityやPartition Toleranceに対しハードウェアの完全な二重化構成をとっている。
| Consistency | 保障するが、データウェアハウス専用機のため行ロック機能をサポートしていない。 |
| Availability | ブレード(*1)単位にディスク群を管理し、パラレルにリクエストを処理する。1台のブレードが故障した場合でもデータは冗長化されているため他のブレードに代替されサービスを中断する必要はない。 |
| Partition Tolerance | Tightly-coupled構成のTeradataでは複数のブレードでのパラレル処理がノード間での分散処理ということになる(*2)。この場合、ノード間通信の完全な切断などは基本的には考慮すべきでないし、必要もない。(*3) |
(*1) CPUやメモリおよびマザーボードのサーバ筐体の中身を指すのに便宜上ブレードと呼びました。Teradata用語ではありません。Teradataでは、その機能からAMP(Access Module Processor)と呼びます。
(*2) 複数のTeradataシステムを並べた巨大なDWHの場合、1台のTeradata/HWをノードと呼ぶことはありませんが、1台全ての故障を想定して2台のTeradata/HWを導入するのは高額なため一般的ではありません。
(*3) ノード間通信の二重化やデータの冗長化によりサービスを継続できるHWであるため。
Recent comments
17 weeks 22 hours ago
26 weeks 6 days ago
28 weeks 4 days ago
31 weeks 5 days ago
34 weeks 10 hours ago
43 weeks 4 days ago
45 weeks 1 day ago
46 weeks 1 day ago
46 weeks 2 days ago
49 weeks 5 hours ago