|
Thrill
0.1
|
FOXXLL library namespace
More...
Namespaces | |
| async_schedule_local | |
| mng_local | |
| Block Manager Internals. | |
Classes | |
| class | addressable_fifo_queue |
| class | addressable_priority_queue |
| struct | aligned_alloc_settings |
| class | bad_ext_alloc |
| class | bad_parameter |
| struct | basic_allocation_strategy |
| class | BID |
| class | BID< 0 > |
| Specialization of block identifier class (BID) for variable size block size. More... | |
| class | block_manager |
| Block manager class. More... | |
| class | block_prefetcher |
| class | block_scheduler |
| class | block_scheduler_algorithm |
| Interface of a block scheduling algorithm. More... | |
| class | block_scheduler_algorithm_offline_lfd |
| Block scheduling algorithm caching via the longest forward distance policy (offline). More... | |
| class | block_scheduler_algorithm_offline_lru_prefetching |
| class | block_scheduler_algorithm_online_lru |
| Block scheduling algorithm caching via the least recently used policy (online). More... | |
| class | block_scheduler_algorithm_simulation |
| Pseudo block scheduling algorithm only recording the request sequence. More... | |
| class | buf_istream |
| class | buf_istream_reverse |
| class | buf_ostream |
| class | buffered_writer |
| struct | CASE |
| class | config |
| class | disk_block_allocator |
| This class manages allocation of blocks onto a single disk. More... | |
| class | disk_config |
| class | disk_queued_file |
| Implementation of some file methods based on serving_request. More... | |
| class | disk_queues |
| class | fake_timer |
| Class fake_timer is a drop-in replacement for timer, which does nothing. More... | |
| class | file |
| class | file_stats |
| class | file_stats_data |
| class | fileperblock_file |
| struct | first_disk_only |
| struct | fully_random |
| struct | interleaved_alloc_traits |
| struct | interleaved_alloc_traits< fully_random > |
| struct | interleaved_alloc_traits< random_cyclic > |
| struct | interleaved_alloc_traits< random_cyclic_disk > |
| struct | interleaved_alloc_traits< random_cyclic_flash > |
| struct | interleaved_alloc_traits< simple_random > |
| struct | interleaved_alloc_traits< single_disk > |
| struct | interleaved_alloc_traits< striping > |
| struct | interleaved_fully_random |
| struct | interleaved_random_cyclic |
| struct | interleaved_simple_random |
| struct | interleaved_striping |
| class | io_error |
| class | memory_file |
| Implementation of file based on new[] and memcpy. More... | |
| class | new_alloc |
| struct | new_alloc_rebind |
| struct | new_alloc_rebind< Type, Type > |
| struct | NilCase |
| struct | offset_allocator |
| class | onoff_switch |
| class | prefetch_pool |
| Implements dynamically resizable prefetching pool. More... | |
| struct | random_cyclic |
| struct | random_cyclic_disk |
| struct | random_cyclic_flash |
| class | read_write_pool |
| Implements dynamically resizable buffered writing and prefetched reading pool. More... | |
| class | request |
| Request object encapsulating basic properties like file and offset. More... | |
| class | request_interface |
| class | request_queue |
| Interface of a request_queue to which requests can be added and canceled. More... | |
| class | request_queue_impl_1q |
| class | request_queue_impl_qwqr |
| class | request_queue_impl_worker |
| class | request_with_state |
| Request with completion shared_state. More... | |
| class | request_with_waiters |
| Request that is aware of threads waiting for it to complete. More... | |
| class | resource_error |
| class | scoped_print_iostats |
| Simple scoped iostats reporter which takes a message and reports the relative IO performance on destruction. More... | |
| class | scoped_print_timer |
| Simple scoped timer, which takes a text message and prints the duration until the scope is destroyed. More... | |
| class | serving_request |
| Request which serves an I/O by calling the synchronous routine of the file. More... | |
| class | set_switch_handler |
| class | shared_state |
| struct | simple_random |
| struct | single_disk |
| class | singleton |
| class | stats |
| class | stats_data |
| struct | striping |
| class | swappable_block |
| class | SWITCH |
| class | SWITCH< Tag, NilCase > |
| class | syscall_file |
| Implementation of file based on UNIX syscalls. More... | |
| class | timer |
| Class timer is a simple stop watch timer. More... | |
| class | typed_block |
| class | ufs_file_base |
| Base for UNIX file system implementations. More... | |
| class | uint_pair |
| Construct an 40-bit or 48-bit unsigned integer stored in five or six bytes. More... | |
| class | unreachable |
| class | write_pool |
| Implements dynamically resizable buffered writing pool. More... | |
Typedefs | |
| template<size_t BlockSize> | |
| using | BIDArray = tlx::simple_vector< BID< BlockSize > > |
| using | completion_handler = tlx::delegate< void(request *r, bool success)> |
| completion handler More... | |
| using | default_alloc_strategy = foxxll::random_cyclic |
| using | external_diff_type = int64_t |
| using | external_size_type = uint64_t |
| using | file_ptr = tlx::counting_ptr< file > |
A reference counting pointer for file. More... | |
| using | request_ptr = tlx::counting_ptr< request > |
A reference counting pointer for request. More... | |
| using | uint40 = uint_pair< uint8_t > |
| Construct a 40-bit unsigned integer stored in five bytes. More... | |
| using | uint48 = uint_pair< uint16_t > |
| Construct a 48-bit unsigned integer stored in six bytes. More... | |
Functions | |
| template<typename HighType > | |
| class foxxll::uint_pair | __attribute__ ((packed)) |
| static std::string | add_IEC_binary_multiplier (const external_size_type number, const std::string &unit="") |
| static std::string | add_SI_multiplier (external_size_type number, const std::string &unit="") |
| template<size_t Alignment> | |
| void * | aligned_alloc (size_t size, size_t meta_info_size=0) |
| template<size_t Alignment> | |
| void | aligned_dealloc (void *ptr) |
| template<typename Integral > | |
| std::make_signed< Integral >::type | as_signed (Integral value) |
| Return the given value casted to the corresponding signed type. More... | |
| template<typename Integral > | |
| std::make_unsigned< Integral >::type | as_unsigned (Integral value) |
| Return the given value casted to the corresponding unsigned type. More... | |
| int64_t | atoi64 (const char *s) |
| uint64_t | atouint64 (const char *s) |
| template<class RequestIterator > | |
| std::iterator_traits< RequestIterator >::difference_type | cancel_all (RequestIterator reqs_begin, RequestIterator reqs_end) |
| int | check_library_version () |
| Check for a mismatch between library and headers. More... | |
| void | compute_prefetch_schedule (size_t *first, size_t *last, size_t *out_first, size_t m, size_t D) |
| template<typename RunType > | |
| void | compute_prefetch_schedule (const RunType &input, size_t *out_first, size_t m, size_t D) |
| template<typename BidIteratorType > | |
| void | compute_prefetch_schedule (BidIteratorType input_begin, BidIteratorType input_end, size_t *out_first, size_t m, size_t D) |
| void | compute_prefetch_schedule (const size_t *first, const size_t *last, size_t *out_first, size_t m, size_t D) |
| file_ptr | create_file (const std::string &io_impl, const std::string &filename, int options, int physical_device_id=file::DEFAULT_QUEUE, int disk_allocator_id=file::NO_ALLOCATOR) |
| create fileio object from io_impl string and a few parameters More... | |
| file_ptr | create_file (disk_config &config, int mode, int disk_allocator_id=file::NO_ALLOCATOR) |
| create fileio object from disk_config parameter More... | |
| template<typename Integral , typename Integral2 > | |
| std::remove_const< Integral >::type | div_ceil (Integral n, Integral2 d) |
| static bool | exist_file (const std::string &path) |
| std::string | get_library_version_string () |
| returns "X.Y.Z" version string of library More... | |
| std::string | get_library_version_string_long () |
| returns longer "X.Y.Z (feature) (version)" string of library More... | |
| std::string | get_version_string () |
| Return "X.Y.Z" version string (of headers) More... | |
| std::string | get_version_string_long () |
| Return longer "X.Y.Z (feature) (version)" version string (of headers) More... | |
| size_t | longhash1 (uint64_t key_) |
| template<class Type1 , class Type2 > | |
| bool | operator!= (const new_alloc< Type1 > &, const new_alloc< Type2 > &) noexcept |
| std::ostream & | operator<< (std::ostream &out, const request &req) |
| template<size_t BlockSize> | |
| std::ostream & | operator<< (std::ostream &s, const BID< BlockSize > &bid) |
| std::ostream & | operator<< (std::ostream &o, const stats &s) |
| template<class Type1 , class Type2 > | |
| bool | operator== (const new_alloc< Type1 > &, const new_alloc< Type2 > &) noexcept |
| template<class RequestIterator > | |
| RequestIterator | poll_any (RequestIterator reqs_begin, RequestIterator reqs_end) |
| static bool | poll_any (request_ptr req_array[], size_t count, size_t &index) |
| template<class Container > | |
| Container::value_type | pop (Container &c) |
| template<class Container > | |
| Container::value_type | pop_back (Container &c) |
| template<class Container > | |
| Container::value_type | pop_begin (Container &c) |
| template<class Container > | |
| Container::value_type | pop_front (Container &c) |
| void | print_library_version_mismatch () |
| Check and print mismatch between header and library versions. More... | |
| int | register_exit_handler (void(*function)(void)) |
| template<typename Integral > | |
| Integral | round_up_to_power_of_two (Integral n, unsigned power) |
| round n up to next larger multiple of 2^power. example: (48,4) = 64, (48,3) = 48. More... | |
| void | run_exit_handlers () |
| template<class Type > | |
| void | swap_1D_arrays (Type *a, Type *b, size_t size) |
| static double | timestamp () |
| Returns number of seconds since the epoch, high resolution. More... | |
| template<typename Type > | |
| std::string | to_str (const Type &t) |
| Format any ostream-able type into a string. More... | |
| int | version_integer () |
| return integer version number of the FOXXLL library More... | |
| int | version_major () |
| return X if the FOXXLL library version is X.Y.Z More... | |
| int | version_minor () |
| return Y if the FOXXLL library version is X.Y.Z More... | |
| int | version_patch () |
| return Z if the FOXXLL library version is X.Y.Z More... | |
| template<class RequestIterator > | |
| void | wait_all (RequestIterator reqs_begin, RequestIterator reqs_end) |
| Collection of functions to track statuses of a number of requests. More... | |
| static void | wait_all (request_ptr req_array[], size_t count) |
| template<class RequestIterator > | |
| RequestIterator | wait_any (RequestIterator reqs_begin, RequestIterator reqs_end) |
| static size_t | wait_any (request_ptr req_array[], size_t count) |
Variables | |
| constexpr size_t | BlockAlignment = 4096 |
| constexpr bool | debug_aligned_alloc = false |
| constexpr bool | debug_typed_block = false |
| const int | DEFAULT = ~(~0u >> 1) |
FOXXLL library namespace
| using external_diff_type = int64_t |
| using external_size_type = uint64_t |
| class foxxll::uint_pair foxxll::__attribute__ | ( | (packed) | ) |
Referenced by uint_pair< HighType >::max().
|
inline |
Definition at line 48 of file aligned_alloc.hpp.
References div_ceil(), free(), malloc(), realloc(), TLX_LOG1, and TLX_LOGC.
|
inline |
Definition at line 122 of file aligned_alloc.hpp.
| std::make_signed<Integral>::type foxxll::as_signed | ( | Integral | value | ) |
Return the given value casted to the corresponding signed type.
Definition at line 39 of file types.hpp.
References gen_data::value.
Referenced by fileperblock_file< base_file_type >::export_files().
| std::make_unsigned<Integral>::type foxxll::as_unsigned | ( | Integral | value | ) |
Return the given value casted to the corresponding unsigned type.
Definition at line 32 of file types.hpp.
References gen_data::value.
|
inline |
Check for a mismatch between library and headers.
Definition at line 72 of file version.hpp.
References version_major(), version_minor(), and version_patch().
Referenced by print_library_version_mismatch().
|
inline |
Definition at line 34 of file async_schedule.hpp.
References compute_prefetch_schedule().
| void foxxll::compute_prefetch_schedule | ( | const RunType & | input, |
| size_t * | out_first, | ||
| size_t | m, | ||
| size_t | D | ||
| ) |
Definition at line 45 of file async_schedule.hpp.
References SimpleVector< ValueType, Mode >::begin(), compute_prefetch_schedule(), gen_data::D, and SimpleVector< ValueType, Mode >::end().
| void foxxll::compute_prefetch_schedule | ( | BidIteratorType | input_begin, |
| BidIteratorType | input_end, | ||
| size_t * | out_first, | ||
| size_t | m, | ||
| size_t | D | ||
| ) |
Definition at line 59 of file async_schedule.hpp.
References SimpleVector< ValueType, Mode >::begin(), compute_prefetch_schedule(), gen_data::D, and SimpleVector< ValueType, Mode >::end().
| void compute_prefetch_schedule | ( | const size_t * | first, |
| const size_t * | last, | ||
| size_t * | out_first, | ||
| size_t | m, | ||
| size_t | D | ||
| ) |
Definition at line 172 of file async_schedule.cpp.
References foxxll::async_schedule_local::debug, foxxll::async_schedule_local::simulate_async_write(), TLX_LOG, and tlx::unused().
Referenced by buf_istream< BlockType, BidIteratorType >::buf_istream(), buf_istream_reverse< BlockType, BidIteratorType >::buf_istream_reverse(), and compute_prefetch_schedule().
| file_ptr create_file | ( | const std::string & | io_impl, |
| const std::string & | filename, | ||
| int | options, | ||
| int | physical_device_id, | ||
| int | disk_allocator_id | ||
| ) |
create fileio object from io_impl string and a few parameters
Definition at line 29 of file create_file.cpp.
References file::DIRECT, disk_config::direct, disk_config::DIRECT_OFF, disk_config::DIRECT_ON, disk_config::DIRECT_TRY, disk_config::queue, and file::REQUIRE_DIRECT.
Referenced by block_manager::block_manager().
| file_ptr create_file | ( | disk_config & | cfg, |
| int | mode, | ||
| int | disk_allocator_id | ||
| ) |
create fileio object from disk_config parameter
Definition at line 44 of file create_file.cpp.
References disk_config::autogrow, file::DEFAULT_DEVICE_ID, file::DEFAULT_LINUXAIO_QUEUE, disk_config::delete_on_exit, disk_config::device_id, file::DIRECT, disk_config::direct, disk_config::DIRECT_OFF, disk_config::DIRECT_ON, disk_config::DIRECT_TRY, FOXXLL_THROW, singleton< config >::get_instance(), disk_config::io_impl, ufs_file_base::is_device(), ufs_file_base::lock(), memory_file::lock(), config::next_device_id(), disk_config::path, disk_config::queue, disk_config::queue_length, disk_config::raw_device, file::REQUIRE_DIRECT, disk_config::size, ufs_file_base::size(), ufs_file_base::unlink(), disk_config::unlink_on_open, and config::update_max_device_id().
|
inline |
Definition at line 64 of file utils.hpp.
Referenced by aligned_alloc().
|
inlinestatic |
| std::string get_library_version_string | ( | ) |
returns "X.Y.Z" version string of library
Definition at line 40 of file version.cpp.
References get_version_string().
Referenced by get_version_string_long(), and print_library_version_mismatch().
| std::string get_library_version_string_long | ( | ) |
returns longer "X.Y.Z (feature) (version)" string of library
Definition at line 45 of file version.cpp.
References get_version_string_long().
Referenced by get_version_string_long().
|
inline |
Return "X.Y.Z" version string (of headers)
Definition at line 34 of file version.hpp.
Referenced by get_library_version_string().
|
inline |
Return longer "X.Y.Z (feature) (version)" version string (of headers)
Definition at line 40 of file version.hpp.
References get_library_version_string(), get_library_version_string_long(), version_integer(), version_major(), version_minor(), and version_patch().
Referenced by get_library_version_string_long(), and config::initialize().
Definition at line 131 of file new_alloc.hpp.
| std::ostream& foxxll::operator<< | ( | std::ostream & | o, |
| const stats & | s | ||
| ) |
Definition at line 375 of file iostats.cpp.
Referenced by request::check_nref(), and stats::get_pio_time().
Definition at line 124 of file new_alloc.hpp.
|
inline |
|
inline |
Definition at line 133 of file utils.hpp.
Referenced by block_scheduler_algorithm_offline_lru_prefetching< SwappableBlockType >::evictable_blocks_pop(), block_scheduler_algorithm_offline_lru_prefetching< SwappableBlockType >::schedule_next_operations(), and block_scheduler_algorithm_offline_lru_prefetching< SwappableBlockType >::~block_scheduler_algorithm_offline_lru_prefetching().
|
inline |
|
inline |
Check and print mismatch between header and library versions.
Definition at line 84 of file version.hpp.
References check_library_version(), get_library_version_string(), and tlx_die.
Referenced by config::initialize().
| int register_exit_handler | ( | void(*)(void) | function | ) |
Definition at line 35 of file exithandler.cpp.
Referenced by singleton< disk_queues >::create_instance(), and run_exit_handlers().
|
inline |
| void run_exit_handlers | ( | ) |
Definition at line 41 of file exithandler.cpp.
References register_exit_handler().
|
inline |
Definition at line 89 of file utils.hpp.
References tlx::swap().
| std::string foxxll::to_str | ( | const Type & | t | ) |
Format any ostream-able type into a string.
Definition at line 36 of file utils.hpp.
Referenced by disk_config::parse_line().
| int version_integer | ( | ) |
return integer version number of the FOXXLL library
Definition at line 35 of file version.cpp.
References FOXXLL_VERSION_INTEGER.
Referenced by get_version_string_long().
| int version_major | ( | ) |
return X if the FOXXLL library version is X.Y.Z
Definition at line 20 of file version.cpp.
Referenced by check_library_version(), and get_version_string_long().
| int version_minor | ( | ) |
return Y if the FOXXLL library version is X.Y.Z
Definition at line 25 of file version.cpp.
Referenced by check_library_version(), and get_version_string_long().
| int version_patch | ( | ) |
return Z if the FOXXLL library version is X.Y.Z
Definition at line 30 of file version.cpp.
Referenced by check_library_version(), and get_version_string_long().
| constexpr bool debug_aligned_alloc = false |
Definition at line 26 of file aligned_alloc.hpp.
| constexpr bool debug_typed_block = false |
Definition at line 31 of file typed_block.hpp.