6 #include <absl/container/flat_hash_map.h>
BufferManager implements a steal and no-force buffer pool with a fixed number of page frames to buffe...
Definition: BufferManager.h:77
void MarkDirty(BufferId bufid)
Marks a buffered page as dirty.
Definition: BufferManager.cpp:81
~BufferManager()
Destructs a buffer manager in any valid or invalid state.
Definition: BufferManager.cpp:19
char * buffer_frames
Definition: BufferManager.h:227
void Destroy()
Flushes all dirty pages back to disk and destroys the buffer manager.
Definition: BufferManager.cpp:38
void UnlatchPage(BufferId bufid)
You may ignore this function since we won't be implementing concurrency control and recovery.
Definition: BufferManager_private.cpp:39
BufferId clock_hand
Definition: BufferManager.h:225
BufferId PinPage(PageNumber pid, char **frame)
Pins the page in a buffer frame and sets *frame to the buffer frame (you may assume frame is never a ...
Definition: BufferManager.cpp:46
BufferManager()
Constructs a buffer manager that is uninitialized.
Definition: BufferManager.cpp:16
BufferId GetFreeFrame()
Definition: BufferManager.cpp:105
char * GetBuffer(BufferId bufid) const
Returns a pointer to the buffer frame with the given buffer ID.
Definition: BufferManager.cpp:146
absl::flat_hash_map< PageNumber, BufferId > lookup_table
Definition: BufferManager.h:223
void Flush()
Flushes all dirty page back to disk.
Definition: BufferManager.cpp:89
PageNumber GetPageNumber(BufferId bufid) const
Returns the page number of the pinned page in the specified buffer frame.
Definition: BufferManager.cpp:137
void UnlatchPage(ScopedBufferLatch bufid)
You may ignore this function since we won't be implementing concurrency control and recovery.
Definition: BufferManager.h:181
void Init(BufferId buffer_size)
Initializes a buffer manager.
Definition: BufferManager.cpp:27
bool initialized
Definition: BufferManager.h:222
BufferId LatchPage(BufferId bufid, LatchMode mode)
You may ignore this function since we won't be implementing concurrency control and recovery.
Definition: BufferManager_private.cpp:33
void UnpinPage(BufferId bufid)
Unpins the buffered page.
Definition: BufferManager.cpp:72
void UnpinPage(ScopedBufferId &bufid)
Unpins the buffered page.
Definition: BufferManager.h:161
BufferMeta * metas
Definition: BufferManager.h:226
BufferId n
Definition: BufferManager.h:224
void Reset()
Relinquishes the underlying resource and sets its to an invalid value.
Definition: ResourceGuard.h:124
LatchMode
Definition: Latch.h:11
uint64_t BufferId
Definition: tdb_base.h:214
uint32_t FileId
The file ID.
Definition: tdb_base.h:221
uint32_t PageNumber
Definition: tdb_base.h:213
constexpr BufferId INVALID_BUFID
Definition: tdb_base.h:266
Definition: BufferManager.h:20
void operator()(BufferId bufid)
Definition: BufferManager_private.cpp:12
Definition: BufferManager.h:16
void operator()(BufferId bufid)
Definition: BufferManager_private.cpp:7