cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Cassandra Wiki] Update of "MemtableSSTable_JP" by yukim
Date Sun, 25 Apr 2010 13:08:19 GMT
Dear Wiki user,

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

The "MemtableSSTable_JP" page has been changed by yukim.
http://wiki.apache.org/cassandra/MemtableSSTable_JP?action=diff&rev1=7&rev2=8

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

  
  一旦フラッシュされると、SSTableのファイルは変更不可能になります。それ以上の書き込みはできません。したがって読み込み時には、要求されたデータを生成するためにサーバーは(潜在的にはブルームフィルタなどのトリックを使用して余計な読み込みは回避しているのですが)すべてのディスク上のSSTableとまだフラッシュされていないMemtableから行の断片を組み合わせる必要があります。
  
- 読み込む必要があるSSTableファイルの数を制限するため、また[[DistributedDeletes_JP|使用されていないデータによって埋められているスペース]]を取り戻すために、Cassandraはコンパクションを行います。コンパクションとは複数の古いSSTableファイルをひとつの新しいファイルにマージすることです。コンパクションは少なくとも4つのSSTableがディスクにフラッシュされた場合に実行されます。入力元となるSSTableはすべてキーでソートされているため、マージは効率良く行われランダムI/Oを必要としません。コンパクションが終了すると古いSSTableファイルは削除されます。注意点としては、最悪の場合(上書きや削除がないデータで構成されている場合)今使用している容量の倍のディスク容量が一時的に必要になります。数TBのディスクが主流の現在はあまり問題になりませんが、警告のための閾値を設定する場合には注意しておくと良いでしょう。
+ 読み込む必要があるSSTableファイルの数を制限するため、また[[DistributedDeletes_JP|使用されていないデータによって埋められているスペース]]を取り戻すために、Cassandraはコンパクションを行います。コンパクションとは複数の古いSSTableファイルをひとつの新しいファイルにマージすることです。コンパクションは少なくとも4つのSSTableがディスクにフラッシュされた場合に実行されます。4つの似たようなサイズのSSTableが1つのSSTableにマージされます。SSTableはMemtableのフラッシュ時のサイズと同じサイズから始まって、サイズが倍になりながら階層的に形作っていきます。したがって、まずMemtableと同じサイズのSSTableが4つまで作成され、次にそれらの倍のサイズで4つまで作成され、そして次にそれらの倍のサイズで4つまで作成され、というように形成されます。
+ 
+ "マイナー"コンパクションは同じようなサイズのSSTableをマージします。"メジャー"コンパクションはある!ColumnFamilyのすべてのSSTableをマージします。メジャーコンパクションの時だけ[[DistributedDeletes_JP|tombstone]]のついたデータの削除が行われます。
+ 
+ 入力元となるSSTableはすべてキーでソートされているため、マージは効率良く行われランダムI/Oを必要としません。コンパクションが終了すると古いSSTableファイルは削除されます。注意点としては、最悪の場合(上書きや削除がないデータで構成されている場合)今使用している容量の倍のディスク容量が一時的に必要になります。数TBのディスクが主流の現在はあまり問題になりませんが、警告のための閾値を設定する場合には注意しておくと良いでしょう。
+ 
+ コンパクションによって廃棄されたSSTableはJVMがGCを行う際に非同期に削除されます。必要に応じてjconsoleからGCを実行できますが、Cassandraはディスク容量が少なくなってきたのを検知すると自動でGCを実施します。また、GCが行われずに再起動した時のために、起動時に削除されるよう廃棄されるはずのSSTableにコンパクションの印を追加しておきます。
+ 
+ CFStoreMBeanはSSTableが使用している領域に関して、getLiveDiskSpaceUsed(廃棄されていないファイルのみ含む)とgetTotalDiskSpaceUsed(すべてを含む)の操作を公開しています。
  
  (Memtable/SStableの高レベルな設計と名前は、[[http://labs.google.com/papers/bigtable.html|GoogleのBigtableに関する論文]]のセクション5.3と5.4を参考にしています。ただしコンパクション周りの用語は若干異なります。)
  

Mime
View raw message