|
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 | ||
| ) |