Autonomy Software C++ 24.5.1
Welcome to the Autonomy Software repository of the Mars Rover Design Team (MRDT) at Missouri University of Science and Technology (Missouri S&T)! API reference contains the source code and other resources for the development of the autonomy software for our Mars rover. The Autonomy Software project aims to compete in the University Rover Challenge (URC) by demonstrating advanced autonomous capabilities and robust navigation algorithms.
Loading...
Searching...
No Matches
duckdb::TemporaryFileManager Class Reference
Collaboration diagram for duckdb::TemporaryFileManager:

Classes

struct  CompressionResult
 
struct  TemporaryFileManagerLock
 

Public Member Functions

 TemporaryFileManager (DatabaseInstance &db, const string &temp_directory_p, atomic< idx_t > &size_on_disk)
 
idx_t WriteTemporaryBuffer (block_id_t block_id, FileBuffer &buffer)
 Create/Read/Update/Delete operations for temporary buffers.
 
bool HasTemporaryBuffer (block_id_t block_id)
 
unique_ptr< FileBufferReadTemporaryBuffer (QueryContext context, block_id_t id, unique_ptr< FileBuffer > reusable_buffer)
 
idx_t DeleteTemporaryBuffer (block_id_t id)
 
bool IsEncrypted () const
 
vector< TemporaryFileInformationGetTemporaryFiles ()
 Get the list of temporary files and their sizes.
 
optional_idx GetMaxSwapSpace () const
 Get/set maximum swap space.
 
void SetMaxSwapSpace (optional_idx limit)
 
idx_t GetTotalUsedSpaceInBytes () const
 Get temporary file size.
 
void IncreaseSizeOnDisk (idx_t amount)
 Register temporary file size growth.
 
void DecreaseSizeOnDisk (idx_t amount)
 Register temporary file size decrease.
 

Private Member Functions

CompressionResult CompressBuffer (TemporaryFileCompressionAdaptivity &compression_adaptivity, FileBuffer &buffer, AllocatedData &compressed_buffer)
 Compress buffer, write it in compressed_buffer and return the size/level.
 
string CreateTemporaryFileName (const TemporaryFileIdentifier &identifier) const
 Create file name for given size/index.
 
TemporaryFileIndex GetTempBlockIndex (TemporaryFileManagerLock &, block_id_t id)
 Get/erase a temporary block.
 
void EraseUsedBlock (TemporaryFileManagerLock &lock, block_id_t id, TemporaryFileHandle &handle, TemporaryFileIndex index)
 
optional_ptr< TemporaryFileHandleGetFileHandle (TemporaryFileManagerLock &, const TemporaryFileIdentifier &identifier)
 Get/erase a temporary file handle.
 
void EraseFileHandle (TemporaryFileManagerLock &, const TemporaryFileIdentifier &identifier)
 

Private Attributes

DatabaseInstancedb
 Reference to the DB instance.
 
string temp_directory
 The temporary directory.
 
mutex manager_lock
 Lock for parallel access.
 
TemporaryFileMap files
 The set of active temporary file handles.
 
unordered_map< block_id_t, TemporaryFileIndexused_blocks
 Map of block_id -> temporary file position.
 
unordered_map< TemporaryBufferSize, BlockIndexManager, EnumClassHashindex_managers
 Map of TemporaryBufferSize -> manager of in-use temporary file indexes.
 
atomic< idx_t > & size_on_disk
 The size in bytes of the temporary files that are currently alive.
 
idx_t max_swap_space
 The max amount of disk space that can be used.
 
array< TemporaryFileCompressionAdaptivity, COMPRESSION_ADAPTIVITIEScompression_adaptivities
 Class that oversees when/how much to compress.
 

Static Private Attributes

static constexpr idx_t COMPRESSION_ADAPTIVITIES = 64
 How many compression adaptivities we have so that threads don't all share the same one.
 

Friends

struct BlockIndexManager
 
class TemporaryFileHandle
 

The documentation for this class was generated from the following file: