Zero  0.1.0
page_cleaner.h
Go to the documentation of this file.
1 #ifndef __PAGE_CLEANER_H
2 #define __PAGE_CLEANER_H
3 
4 #include "smthread.h"
5 #include "sm_options.h"
6 #include "lsn.h"
7 #include "allocator.h"
8 #include "generic_page.h"
9 
10 #include "worker_thread.h"
11 
12 namespace zero::buffer_pool {
13  class BufferPool;
14 }
15 class generic_page;
16 
18 public:
19  page_cleaner_base(const sm_options& _options);
20 
21  virtual ~page_cleaner_base();
22 
23  virtual void notify_archived_lsn(lsn_t) {}
24 
25 protected:
26  void write_pages(size_t from, size_t to);
27 
28  void mark_pages_clean(size_t from, size_t to);
29 
32 
34  vector<generic_page, memalign_allocator<generic_page>> _workspace;
35 
37 
38  vector<bf_idx> _workspace_cb_indexes;
39 
41 
43 };
44 
45 #endif // __PAGE_CLEANER_H
Definition: worker_thread.h:12
Definition: buffer_pool.hpp:34
A generic page view: any Zero page can be viewed as being of this type but it only exposes fields sha...
Definition: generic_page.h:121
zero::buffer_pool::BufferPool * _bufferpool
Definition: page_cleaner.h:31
Definition: page_cleaner.h:17
Start-up parameters for the storage engine. See OPTIONS.
Definition: sm_options.h:24
vector< bf_idx > _workspace_cb_indexes
Definition: page_cleaner.h:38
vector< generic_page, memalign_allocator< generic_page > > _workspace
Definition: page_cleaner.h:34
Log Sequence Number. See Log Sequence Numbers (LSN).
Definition: lsn.h:243
A buffer manager that exploits the tree structure of indexes.
Definition: buffer_pool.hpp:40
bool _write_elision
Definition: page_cleaner.h:42
virtual void notify_archived_lsn(lsn_t)
Definition: page_cleaner.h:23
size_t _workspace_size
Definition: page_cleaner.h:36
lsn_t _clean_lsn
Definition: page_cleaner.h:40