MCPcopy Create free account
hub / github.com/brunocalza/buffer-pool-manager / DeletePage

Method DeletePage

buffer_pool_manager.go:128–148  ·  view source on GitHub ↗

DeletePage deletes a page from the buffer pool.

(pageID PageID)

Source from the content-addressed store, hash-verified

126
127// DeletePage deletes a page from the buffer pool.
128func (b *BufferPoolManager) DeletePage(pageID PageID) error {
129 var frameID FrameID
130 var ok bool
131 if frameID, ok = b.pageTable[pageID]; !ok {
132 return nil
133 }
134
135 page := b.pages[frameID]
136
137 if page.pinCount > 0 {
138 return errors.New("Pin count greater than 0")
139 }
140 delete(b.pageTable, page.id)
141 (*b.replacer).Pin(frameID)
142 b.diskManager.DeallocatePage(pageID)
143
144 b.freeList = append(b.freeList, frameID)
145
146 return nil
147
148}
149
150// FlushAllpages flushes all the pages in the buffer pool to disk.
151func (b *BufferPoolManager) FlushAllpages() {

Callers 1

deletePageFunction · 0.80

Calls 2

PinMethod · 0.80
DeallocatePageMethod · 0.65

Tested by

no test coverage detected