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.