2017-09-15 3 views
0

B +ツリー、4バイトのID、8バイトのロケーション、8バイトのエラー信号、および8バイトの時間内に5000レコードのレコードが格納されています。場所は毎分収集されます。ディスクブロックが8Kで、64ビットアドレスであると仮定します。さらに、B +ツリー頂点が64ビットアドレスを有すると仮定する。私たちは(time、id)でクラスタ化し、(time + id)で密なインデックスを構築します。 100日間10000人を追跡していると仮定します。B +ツリーリーフノードのブロッキングファクタの計算

B +ツリーリーフノードのブロック係数を計算する際、順方向ブロックへの順方向ポインタと逆方向ポインタを使用していますが、以下のように正しいかどうかはわかりません。

R = 4 + 8 + 8 + 8 = 28 
B = 8K = 8*1024 = 8192 
BF = B/R = 8192/28 = 292 

また、私はあなたの計算はあなたがスペースを減算すべきことを除いて、リーフノードがデータを保存することを想定し、正しい内部B +ツリーのノードの順序

答えて

0

を計算する方法がわかりません分割前のブロックサイズからの左右のポインタ。内部ノードの計算は、すべてのデータバイトを必要とせず、キーを構成するデータの部分と、それぞれのデータの下向きのポインタのみを必要とすることを除いて、同じです。

ここでは「ブロック要因」という用語に夢中ではありません。どちらの場合も「順序」です。

+0

ありがとう、しかし私は計算にポインタを追加しませんでした。また、内部ノードの順序を計算する方法は? – SMH

+0

あなたは持っている必要があります。分割する前に、左右のポインタのスペースをブロックサイズから差し引く必要があります。私はあなたの最後の文に答えました。 – EJP

+0

あなたの理解のために私の例の数字を使って解答を編集してください。 – SMH

関連する問題