Dear Wiki user,

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

The "ArchitectureInternals_JP" page has been changed by yukim.
http://wiki.apache.org/cassandra/ArchitectureInternals_JP?action=diff&rev1=15&rev2=16

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

   * 
!StorageProxyが!ReplicationStrategyからそのキーのレプリカを保持しているノードを取得し、それらに読み取りメッセージを送信します。
     * 
メッセージは!SliceFromReadCommand、!SliceByNamesReadCommand、もしくは!RangeSliceReadCommandです。
   * 
データを保持しているノードでは、!ReadVerbHandlerが!ColumnFamilyStore.getColumnFamilyを使用してデータを取得し、!ReadResponseとして送り返します。
+    * SSTableReader.getPosition内でインデックスに対してバイナリサーチを行い、行を特定します。
     * 
1行の問い合わせでは、!QueryFilterのサブクラスを使用して、MemtableとSSTableから探しているデータを取得します。Memtableからの読み込みは直接的です。SSTableからの読み取りはリクエストの種類に応じて多少異なります。
       * 
カラムのスライスを読み込もうとしている場合、行レベルのカラムインデックスを用いて読み取りの開始場所を決定し、1度に1ブロックづつデシリアライズします。("ブロック"とはひとつのインデックスによってカバーされるカラムのグループです。)そうすることで、"逆の"場合に大部分をメモリに読み込む事なく処理できます。
       * 
カラムのグループを名前で読み込もうとしている場合もカラムインデックスを用いて各カラムの位置を特定しますが、まず最初に行レベルのブルームフィルタをチェックし、そのファイルからの読み込みがそもそも必要かをチェックします。

Reply via email to