You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by Apache Wiki <wi...@apache.org> on 2011/03/15 02:39:15 UTC

[Cassandra Wiki] Update of "ArchitectureOverview_JP" by Kazuki Aranami

Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Cassandra Wiki" for change notification.

The "ArchitectureOverview_JP" page has been changed by Kazuki Aranami.
http://wiki.apache.org/cassandra/ArchitectureOverview_JP?action=diff&rev1=13&rev2=14

--------------------------------------------------

   * オンライン状態でのロードバランシングとクラスタの増加の実現
   * 柔軟なスキーマ
   * キー指向のクエリー
-  * CAP定理を認識すること
+  * CAP定理(経験則)を認識すること
  
  
- === CAP定理 ===
+ === CAP定理(経験則) ===
- Eric Brewer(エリック・ブルーワー)の'''[[http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf|CAP定理 (PDF)]]'''に支配された状況では、'''Consistency(一貫性、コンシステンシー)'''、'''Availability(可用性、アベイラビリティー)'''、'''Partition-tolerance(分断耐性、パーティショントレランス)'''のうち2つを選択する必要があります。同時に3つの性質を満たすことはできないため、それらを得るにはレイテンシー(遅延)を許容する必要があります。(訳注:BASEの考えを適用する必要があります)
+ Eric Brewer(エリック・ブルーワー)の'''[[http://www.cs.berkeley.edu/~brewer/cs262b-2004/PODC-keynote.pdf|CAP定理 (PDF)]]'''に支配された状況では、'''Consistency(一貫性、コンシステンシー)'''、'''Availability(可用性、アベイラビリティー)'''、'''Partition-tolerance(分断耐性、パーティショントレランス)'''のうち2つを選択する必要があります。同時に3つの性質を満たすことはできないため、それらを得るにはレイテンシー(遅延)を許容する必要があります。
  
  
  Cassandraは、可用性と分断耐性('''AP''')を重視しています。一貫性と遅延はトレードオフの関係にあり、Cassandraでは整合性レベルが調整可能(tunable)です。遅延を許容すればCassandraでは強い一貫性(Strong Consistency)を得ることができます。しかし、行ロックを取得することはできません。その点は、HBaseの方が優れています。
@@ -68, +68 @@

  Dynamoアーキテクチャー&ルックアップ
  
  
+ ノードA、B、C、D、E、F、そしてGのリングでは、ノードB、C、とDは、キーを重要な''k''を含む(''a'',''b'')の範囲の中でキーを格納します。
- In a ring of nodes A, B, C, D, E, F and G
- Nodes B, C and D store keys in the range (''a'',''b'') including key ''k''
  
  
  {{{パーティショナー}}}のために{{{IntitialToken}}}パラメーターを使用して、Cassandraのどこにキーがあるのか、その方向性を決定することができます。[[StorageConfiguration|ストレージの構成]]を参照してください。
@@ -160, +159 @@

  [[API|Thrift API]]ドキュメントも参照してください。
  
  
- 何か操作を行った後に、システムが一貫性を保持した状態を、どのようにして実現するのか、整合性について詳しく説明していきます。Cassandraのような分散システムのデータは、通常一度ライターが書き込みを試行し、すべて読み込みができることを確認した後に、実際に書き込みを行うことをまず理解してください。
+ Consistency describes how and whether a system is left in a consistent state after an operation. In distributed data systems like Cassandra, this usually means that once a writer has written, all readers will see that write.
  
+ On the contrary to the strong consistency used in most relational databases ('''ACID''' for ''Atomicity Consistency Isolation Durability'') Cassandra is at the other end of the spectrum ('''BASE''' for ''Basically Available Soft-state Eventual consistency'').
+ Cassandra weak consistency comes in the form of eventual consistency which means the database eventually reaches a consistent state.  As the data is replicated, the latest version of something is sitting on some node in the cluster, but older versions are still out there on other nodes, but eventually all nodes will see the latest version.
- 
- ほとんどのACIDなリレーショナルデータベースで使用されている、強い一貫性(Strong Consistency)とは違い、CassandraはBASEスペクトラム(連続体)の片隅に位置します。(訳注:Cassandraは、NoSQLの文脈で語られるBASEの概念を適用した分散データベースのひとつとして位置づけられます)
- 
- 
- Cassandraの弱い一貫性(Weak Consistency)は、データベースが一貫性のある状態にいつか到達するという、イベンチュアルコンシステンシー(Eventual Consistency)の考えに基づいています。
- 
- 
- データがレプリケート(複製)されるにつれて、クラスタ上のいくつかのノードに最新バージョンが存在することになります。しかし古いバージョンの複製も他のノード上に、まだ存在することになります。しかし、いつかすべてのノードが最新バージョンとなることを理解してください。
  
  
  More specifically:
@@ -187, +180 @@

  write replica count > replication factor).
  
  
- You get consistency if R + W > N, where R is the number of records to read, W is the number of records to write, and N is the replication factor.  A ConsistencyLevel of ONE means R or W is 1.  A ConsistencyLevel of QUORUM means R or W is ceiling((N+1)/2).  A ConsistencyLevel of ALL means R or W is N.  So if you want to write with a ConsistencyLevel of ONE and then get the same data when you read, you need to read with ConsistencyLevel ALL.
+ You get consistency if R + W > N, where R is the number of records to read, W is the number of records to write, and N is the replication factor.  A !ConsistencyLevel of ONE means R or W is 1.  A !ConsistencyLevel of QUORUM means R or W is ceiling((N+1)/2).  A !ConsistencyLevel of ALL means R or W is N.  So if you want to write with a !ConsistencyLevel of ONE and then get the same data when you read, you need to read with !ConsistencyLevel ALL.
  
- 
- Cassandra vs MySQL with 50GB of data
- 
- 
- || MySQL       || Cassandra    ||
- ||~300ms write || ~0.12ms write||
- ||~350ms read  || ~15ms read   ||
-