AntDB-M高效能設計之hash索引動態rehash

亞信AntDB資料庫發表於2023-11-13

A n t D B - M h a s h b t r e e h a s h h a s h h a s h 1 h a s h h a s h h a s h h a s h


AntDB-M高效能設計之hash索引動態rehash

                1 h a s h   t a b l e


使   s e l e c t   *   f r o m   t a b l e   w h e r e   a   =   v a l u e ;   v a l u e h a s h h a s h h a s h a v a l u e

 

h a s h


struct node{        uint8            oid;   // 資料行行號或者其它含義的value        node *    node_prev;  // 上一個節點        node *    node_next;  // 下一個節點}


s i z e o f ( n o d e )   8 + 8 + 8   = 2 4


A n t D B - M h a s h m n h a s h n h a s h h a s h m h a s h   n * ( h a s h   +   m * 2 4 ) 2 4



A n t D B - M   h a s h


A n t D B - M 使


struct array_node{uint8   prev_oid;   // 上一個節點的位置uint8   next_oid;   // 下一個節點的位置}


s i z e o f ( a r r a y _ n o d e )   8 + 8   = 1 6 o i d 0 n a r r a y _ n o d e [ n ] a r r a y _ n o d e [ k ] k


  • a r r a y _ n o d e [ k ] .   p r e v _ o i d a r r a y _ n o d e [ k ] .   n e x t _ o i d

  • a r r a y _ n o d e [ k ] k k u i n t 8   o i d ( ) 1 / 3 h a s h 2 / 3

 


m h a s h b u c k e t n ( n m ) h a s h n u i n t 8   b u c k e t _ h e a d [ n ] ,   b u c k e t _ h e a d ( a r r a y _ n o d e ) a r r a y _ n o d e [ m ] ,   b u c k e t


h a s h ,   3 2 9 3 6 8 1 5 2 2 3 ,   a r r a y _ n o d e 3


bucket_head[2]=3;array_node [3] ->prev_oid=0;          array_node [3] -> next_oid=29;array_node [29] ->prev_oid=3;               array_node [29] ->next_oid=36815;array_node [36815] ->prev_oid=29;array_node [36815] ->next_oid=0;


( n e x t _ o i d = 0 )

 

1 0 0 0 5 0 0 0 h a s h b u c k e t 1 0 0 0 b u c k e t 5 h a s h r e h a s h 調 h a s h h a s h h a s h   t a b l e



A n t D B - M   r e h a s h


2 h a s h l o c k m i g r a t e _ n o d e b u c k e t b u c k e t b u c k e t b u c k e t m i g r a t e _ n o d e b u c k e t .


1 .   h a s h _ t a b l e h a s h _ t a b l e


2 .   h a s h _ t a b l e ,   h a s h _ t a b l e h a s h _ t a b l e


3 .   h a s h _ t a b l e h a s h _ t a b l e ;


AntDB-M高效能設計之hash索引動態rehash

2 A n t D B - M r e h a s h


r e h a s h h a s h   t a b l e ( + + ) h a s h b u c k e t


AntDB-M高效能設計之hash索引動態rehash

3 r e h a s h f i n d

 

AntDB-M高效能設計之hash索引動態rehash

4 r e h a s h i n s e r t




h a s h A n t D B - M A n t D B - M h a s h h a s h 使 h a s h


h a s h r e h a s h 使 A n t D B - M h a s h 滿

 

A n t D B


A n t D B 2 0 0 8 A n t D B - M A n t D B 2 4 1 0 1 5


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70026696/viewspace-2994941/,如需轉載,請註明出處,否則將追究法律責任。

相關文章