Go to the documentation of this file.    1 #ifndef STORAGE_FILEMANAGER_H 
    2 #define STORAGE_FILEMANAGER_H 
  100 static_assert(std::is_standard_layout<PageHeaderData>::value &&
 
  101               std::is_trivial<PageHeaderData>::value);
 
  200     void Init(std::string datadir, 
size_t init_size, 
bool create);
 
  495 #endif      // STORAGE_FILEMANAGER_H 
 
PageNumber GetNextFreePageNumber(FreePageList *fpl, BufferId meta_bufid)
Definition: FileManager.cpp:576
 
constexpr FileId MinRegularFileId
Definition: FileManager.h:106
 
constexpr bool IsWalFile() const
Definition: FileManager.h:466
 
std::string m_datadir
Definition: FileManager.h:291
 
PageNumber GetLastPageNumber() const
Returns the last page's PID.
Definition: FileManager.cpp:1006
 
LatchMode
Definition: Latch.h:11
 
std::unique_ptr< File > CreateTmpFile()
Definition: FileManager.cpp:306
 
void LoadMeta()
Definition: FileManager.cpp:248
 
void __real_taco_fileman_writepage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, const char *buf)
 
void __real_taco_fileman_readpage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, char *buf)
 
void WritePage(PageNumber pid, const char *buf)
Writes a page at the specified page number.
Definition: FileManager.cpp:778
 
T Release()
Releases the underlying resource without relinquishing it and returns it to the caller.
Definition: ResourceGuard.h:137
 
constexpr PageNumber INVALID_PID
The invalid page number.
Definition: tdb_base.h:236
 
std::string GetMainDataFilePath(uint64_t DataFileId) const
Returns the path to the specified main data file.
Definition: FileManager.cpp:207
 
FileId m_fileid
Definition: FileManager.h:482
 
std::vector< std::unique_ptr< FSFile > > m_mainfiles
Definition: FileManager.h:299
 
constexpr FileId NEW_REGULAR_FID
Definition: FileManager.h:111
 
PageNumber AllocatePage()
Allocates a new page in the file and returns it page number.
Definition: FileManager.h:377
 
FMMetaPageData * m_meta
Definition: FileManager.h:301
 
void ReadPage(PageNumber pid, char *buf)
Reading a page pid in the main data file into buf.
Definition: FileManager.h:229
 
std::unique_ptr< File > OpenRegularFile(FileId fid)
Definition: FileManager.cpp:407
 
File()
Definition: FileManager.h:471
 
Definition: FileManager_private.h:91
 
std::unique_ptr< File > Open(FileId fid)
Creates or opens a virtual file.
Definition: FileManager.cpp:262
 
constexpr FileId INVALID_FID
Definition: FileManager.h:108
 
constexpr int FileIdBits
Definition: FileManager.h:105
 
FileId FindFreeFileId()
Definition: FileManager.cpp:448
 
uint64_t AllocatePageImpl(bool need_latch, LatchMode mode)
The actual implementation of AllocatePage().
Definition: FileManager.cpp:826
 
uint64_t BufferId
Definition: tdb_base.h:215
 
std::string m_tmpdir
Definition: FileManager.h:295
 
constexpr FileId MaxRegularFileId
Definition: FileManager.h:107
 
void AddToFreePageList(FreePageList *fpl, BufferId pg_bufid, BufferId meta_bufid)
Definition: FileManager.cpp:688
 
std::string m_waldir
Definition: FileManager.h:297
 
~File()
Destructor.
Definition: FileManager.cpp:719
 
std::string m_maindir
Definition: FileManager.h:293
 
constexpr FileId WAL_FILEID_MASK
Definition: FileManager.h:103
 
void FreePage(BufferId bufid)
Returns a page that belongs to this file to its free page list.
Definition: FileManager.cpp:921
 
FileManager exposes a virtual file interface based on FSFile.
Definition: FileManager.h:174
 
constexpr FileId NEW_TMP_FID
Definition: FileManager.h:112
 
PageNumber m_meta_pid
Definition: FileManager.h:485
 
std::mutex m_meta_latch
Definition: FileManager.h:289
 
void AllocateL2FileDirectory(BufferId fdir1_bufid, size_t fdir1_off)
Definition: FileManager.cpp:514
 
void InitFreePageList(FreePageList *fpl, PageNumber last_pg)
Definition: FileManager.cpp:569
 
std::mutex m_fsfile_extension_latch
Definition: FileManager.h:285
 
uint32_t FileId
The file ID.
Definition: tdb_base.h:222
 
constexpr bool IsMainFile() const
Definition: FileManager.h:456
 
constexpr FileId GetFileId() const
Definition: FileManager.h:451
 
std::mutex m_fdir1_latch
Definition: FileManager.h:287
 
~FileManager()
Definition: FileManager.cpp:25
 
void WritePage(PageNumber pid, const char *buf)
Writing a buffered page in buf to the page pid in the main data file.
Definition: FileManager.h:242
 
constexpr bool IsTmpFile() const
Definition: FileManager.h:461
 
Represents an open virtual file managed by the FileManager.
Definition: FileManager.h:322
 
BufferId AllocatePage(LatchMode mode)
Allocates a new page in the file and returns a valid buffer ID where is pinned.
Definition: FileManager.h:388
 
void taco_fileman_readpage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, char *buf)
Definition: FileManager_wrappable.cpp:13
 
std::unique_ptr< FSFile > m_fsfile
Definition: FileManager.h:488
 
void Close()
Closes the file.
Definition: FileManager.cpp:724
 
void FreePage(ScopedBufferId &bufid)
Same as FreePage(BufferId) but prevents double free.
Definition: FileManager.h:408
 
void FormatMeta()
Definition: FileManager.cpp:214
 
Definition: FileManager_private.h:99
 
std::unique_ptr< File > CreateRegularFile()
Definition: FileManager.cpp:338
 
void Flush()
Flushes bytes already written to the file.
Definition: FileManager.cpp:807
 
void __wrap_taco_fileman_readpage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, char *buf)
 
constexpr bool IsOpen() const noexcept
Definition: FileManager.h:335
 
std::unique_ptr< File > OpenTmpFile(FileId fid)
Definition: FileManager.cpp:331
 
PageNumber AllocatePageGroup()
Definition: FileManager.cpp:535
 
void CloseAll()
Definition: FileManager.cpp:31
 
void taco_fileman_writepage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, const char *buf)
Definition: FileManager_wrappable.cpp:34
 
void ReadPage(PageNumber pid, char *buf) const
Reads a page at the specified page number.
Definition: FileManager.cpp:749
 
void __wrap_taco_fileman_writepage_impl(::taco::FileManager *fileman, ::taco::PageNumber pid, const char *buf)
 
PageNumber GetFirstPageNumber() const
Returns the first page's PID.
Definition: FileManager.cpp:989
 
void Flush()
Flushes all buffered writes to the main data file to disk.
Definition: FileManager.cpp:713
 
constexpr FileId TMP_FILEID_MASK
Definition: FileManager.h:104
 
FileManager()
Definition: FileManager.cpp:15
 
void Init(std::string datadir, size_t init_size, bool create)
Initializes the FileManager with a specified data directory path datadir.
Definition: FileManager.cpp:117
 
uint32_t PageNumber
Definition: tdb_base.h:214