图解PostgreSQL,缓冲的分配

  

  

  

  

  

  

  

  

  <>之前进程1:   (gdb), p  BufferDescriptors   1美元,=,(BufferDescPadded  *), 0 xa615fb80   (gdb), p  * BufferDescriptors   2美元,=,{bufferdesc =, {tag =, {rnode =, {=spcNode  1664年,dbNode =, 0,,   ,,,,,,,relNode =, 1262}, forkNum =, MAIN_FORKNUM,, blockNum =, 0},, buf_id =, 0,,   ,,,state =, {=value  2199126016},, wait_backend_pid =, 0,, freeNext =,,,   ,,,content_lock =, {tranche =, 53岁,state =, {=value  536870912},, waiters =, {   ,,,,,,,head =, 2147483647,, tail =, 2147483647}}},, pad =,“\ 200“;}   进程2:   (gdb), p  BufferDescriptors   1美元,=,(BufferDescPadded  *), 0 xa615fb80   (gdb), p  * BufferDescriptors   2美元,=,{bufferdesc =, {tag =, {rnode =, {=spcNode  1664年,dbNode =, 0,,   ,,,,,,,relNode =, 1262}, forkNum =, MAIN_FORKNUM,, blockNum =, 0},, buf_id =, 0,,   ,,,state =, {=value  2199126016},, wait_backend_pid =, 0,, freeNext =,,,   ,,,content_lock =, {tranche =, 53岁,state =, {=value  536870912},, waiters =, {   ,,,,,,,head =, 2147483647,, tail =, 2147483647}}},, pad =,, \“200}   

  

  

  

  
      <李>   

      李

      <李>   

      李

      <李>   

      李

      <李>   

      李

      <李>   

      李

      <李>   

      

  

  

  

  

     

  <强>   

  

  

  

  

  <>之前(gdb), p  SharedBufHash   1美元,=,(HTAB  *), 0 x87f5b04   ,   (gdb), p  SharedBufHash   1美元,=,(HTAB  *), 0 x87f5b04      

  

  <>以前StrategyInitialize→InitBufTable (NBuffers  +, NUM_BUFFER_PARTITIONS)→   时间=SharedBufHash  ShmemInitHash      

  

  

  

  

  

  

  

  

  

  

  <强>   

  

  

  

  

  

  

  

  

  

  

  

  

  

  <强>   

  

  

  

  

  

  

  

  

  

  

  

  

  

  <强>   

  

  

  

  

  

  

  

     

  

  

  

  

  

  

  

  

     

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

     

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

     

  

  

  

  

  

  

  

  

  

  

  

  

  

  

  

图解PostgreSQL,缓冲的分配