OmniSciDB  72c90bc290
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
CachingFileMgr.h File Reference

This file details an extension of the FileMgr that can contain pages from multiple tables (CachingFileMgr). The main differences between a CFM and an FM: More...

#include <optional>
#include <ostream>
#include "DataMgr/ForeignStorage/CacheEvictionAlgorithms/LRUEvictionAlgorithm.h"
#include "FileMgr.h"
#include "Shared/File.h"
#include "Shared/SysDefinitions.h"
+ Include dependency graph for CachingFileMgr.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  File_Namespace::DiskCacheConfig
 
class  File_Namespace::TableFileMgr
 
class  File_Namespace::CachingFileBuffer
 
class  File_Namespace::CachingFileMgr
 A FileMgr capable of limiting it's size and storing data from multiple tables in a shared directory. For any table that supports DiskCaching, the CachingFileMgr must contain either metadata for all table chunks, or for none (the cache is either has no knowledge of that table, or has complete knowledge of that table). Any data chunk within a table may or may not be contained within the cache. More...
 

Namespaces

 File_Namespace
 

Enumerations

enum  File_Namespace::DiskCacheLevel { File_Namespace::DiskCacheLevel::none, File_Namespace::DiskCacheLevel::fsi, File_Namespace::DiskCacheLevel::non_fsi, File_Namespace::DiskCacheLevel::all }
 

Functions

std::ostream & File_Namespace::operator<< (std::ostream &os, DiskCacheLevel disk_cache_level)
 
std::string File_Namespace::get_dir_name_for_table (int db_id, int tb_id)
 

Detailed Description

This file details an extension of the FileMgr that can contain pages from multiple tables (CachingFileMgr). The main differences between a CFM and an FM:

  • CFM can contain pages from multiple different tables in the same file.
  • CFM will only retain a single version of each page (no support for rolloff or rollback functionality).
  • CFM maintains a separate epoch for each table in it's files.

Definition in file CachingFileMgr.h.