Thrill
0.1
|
Group of classes which help controlling external memory space, managing disks, and allocating and deallocating blocks of external storage. More...
Modules | |
Allocation Functors | |
Block Scheduling Sublayer | |
Internals | |
Namespaces | |
foxxll::mng_local | |
Block Manager Internals. | |
Classes | |
class | BID< Size > |
class | BID< 0 > |
Specialization of block identifier class (BID) for variable size block size. More... | |
class | block_manager |
Block manager class. More... | |
class | config |
class | disk_block_allocator |
This class manages allocation of blocks onto a single disk. More... | |
class | disk_config |
class | typed_block< RawSize, Type, NRef, MetaInfoType > |
Typedefs | |
template<size_t BlockSize> | |
using | BIDArray = tlx::simple_vector< BID< BlockSize > > |
Functions | |
template<size_t BlockSize> | |
void | delete_block (const BID< BlockSize > &bid) |
template<typename BIDIterator > | |
void | delete_blocks (const BIDIterator &bid_begin, const BIDIterator &bid_end) |
template<typename DiskAssignFunctor , typename BIDIterator > | |
void | new_blocks (const DiskAssignFunctor &functor, BIDIterator bid_begin, BIDIterator bid_end, size_t alloc_offset=0) |
Allocates new blocks. More... | |
template<size_t BlockSize> | |
std::ostream & | operator<< (std::ostream &s, const BID< BlockSize > &bid) |
Group of classes which help controlling external memory space, managing disks, and allocating and deallocating blocks of external storage.
using BIDArray = tlx::simple_vector<BID<BlockSize> > |
void delete_block | ( | const BID< BlockSize > & | bid | ) |
Deallocates a block.
bid | block identifier |
Definition at line 251 of file block_manager.hpp.
References block_manager::block_allocators_, block_manager::current_allocation_, block_manager::disk_files_, BID< Size >::is_managed(), block_manager::mutex_, BID< Size >::offset, BID< Size >::size, BID< Size >::storage, TLX_LOG, TLX_LOGC, BID< Size >::valid(), and block_manager::verbose_block_life_cycle.
Referenced by block_manager::delete_blocks(), swappable_block< ValueType, BlockSize >::free_external_block(), and block_manager::new_block().
void delete_blocks | ( | const BIDIterator & | bid_begin, |
const BIDIterator & | bid_end | ||
) |
Deallocates blocks.
Deallocates blocks in the range [ bid_begin, bid_end)
bid_begin | iterator object of bid_iterator concept |
bid_end | iterator object of bid_iterator concept |
Definition at line 271 of file block_manager.hpp.
References block_manager::delete_block().
Referenced by block_manager::new_block().
void new_blocks | ( | const DiskAssignFunctor & | functor, |
BIDIterator | bid_begin, | ||
BIDIterator | bid_end, | ||
size_t | alloc_offset = 0 |
||
) |
Allocates new blocks.
Allocates new blocks according to the strategy given by functor and stores block identifiers to the range [ bid_begin, bid_end) Allocation will be lined up with previous partial allocations of alloc_offset blocks. For BID<0> allocations, the objects' size field must be initialized.
functor | object of model of allocation_strategy concept |
bid_begin | bidirectional BID iterator object |
bid_end | bidirectional BID iterator object |
alloc_offset | advance for functor to line up partial allocations |
Definition at line 165 of file block_manager.hpp.
References block_manager::block_allocators_, block_manager::current_allocation_, block_manager::disk_files_, SimpleVector< ValueType, Mode >::fill(), max(), block_manager::maximum_allocation_, block_manager::mutex_, block_manager::ndisks_, SimpleVector< ValueType, Mode >::resize(), SimpleVector< ValueType, Mode >::size(), TLX_LOGC, block_manager::total_allocation_, and block_manager::verbose_block_life_cycle.
Referenced by block_manager::new_block().
std::ostream& foxxll::operator<< | ( | std::ostream & | s, |
const BID< BlockSize > & | bid | ||
) |