0
0
Fork 0
mirror of https://github.com/matrix-construct/construct synced 2024-06-02 18:18:56 +02:00
Commit graph

712 commits

Author SHA1 Message Date
Jason Volk 2e1fc0c234 ircd::db: Inline some trivial default comparators. 2020-07-28 01:22:02 -07:00
Jason Volk f2c182b403 ircd::db: Set max_open_files=-1 when required for secondary mode.
ircd:Ⓜ️:dbs: Condition option from being set in slave/secondary mode.

ircd::db: Skip snapshot creation in slave/secondary mode (required).

ircd::db: Slave implies read-only.
2020-07-28 00:38:46 -07:00
Jason Volk 41db97fec0 ircd::db: Make default comparators noexcept. 2020-07-28 00:38:46 -07:00
Jason Volk a0ae5162eb ircd::db: Add preliminary enum case for future use. 2020-07-25 09:10:49 -07:00
Jason Volk d371fba034 ircd::db: Use reference to prevent string copy.
ircd:Ⓜ️ Fix reference/copy related warnings in clang-10.
2020-07-10 23:58:07 -07:00
Jason Volk 27fcfb3175 ircd::db: Align column cache allocations to block size. 2020-07-08 16:27:27 -07:00
Jason Volk 1c9ee622e5 ircd::db: Provide database stats instance for default column cache requirement. 2020-06-20 05:41:14 -07:00
Jason Volk c41c632e94 ircd::db: Remove trailing newline in ABI version string. 2020-06-19 03:04:55 -07:00
Jason Volk ba4c98d7e8 ircd::db: Minor remove cruft. (related 942e8330e6)
ircd::ios: Minor cleanup.
2020-06-18 20:07:40 -07:00
Jason Volk 22f4fd5046 ircd::db: Add fwd decl and accoutrements for rocksdb::PinnableSlice. 2020-06-18 20:07:40 -07:00
Jason Volk 7e3c1bf591 ircd::db: Increment per-column stats for items from 54996d2f29. 2020-06-17 22:08:20 -07:00
Jason Volk c8e11b7ffc ircd::db: Disable stats instance for unused default column. 2020-06-17 20:57:29 -07:00
Jason Volk 338cec879a ircd::db::database::stats: Incorporate column into item name scheme. 2020-06-17 19:24:02 -07:00
Jason Volk 54996d2f29 ircd::db: Additional custom stats tickers for PinnableSlice copy and referencing. 2020-06-17 19:24:00 -07:00
Jason Volk c0990e0c0b ircd::db::database::stats: Add ircd::stats::item's for rocksdb tickers. (#31) 2020-06-17 19:20:47 -07:00
Jason Volk e2654ddaed ircd::db: Add feature define for direct-io multiget; various cleanup. 2020-06-16 07:27:50 -07:00
Jason Volk 597052e5c0 ircd::db: Simplify internal _read() interface to single Get(). 2020-06-15 21:55:23 -07:00
Jason Volk aa096c93bd ircd::db: Cleanup MultiGet() constexpr branches to parallelize. 2020-06-14 22:05:15 -07:00
Jason Volk afcb22b726 ircd::db: Add support #ifdefs for MultiGet; add fallback path. 2020-06-11 17:09:56 -07:00
Jason Volk 5593ae3a60 ircd::db: Additional parallel seek log metric; assertion tool. 2020-06-11 17:09:56 -07:00
Jason Volk d9bfdc9678 ircd::db: Reenable index compression for compressed columns. 2020-06-11 03:51:49 -07:00
Jason Volk 35d4ee811b ircd::db: Add preliminary support for secondary-mode if available. 2020-06-11 03:51:49 -07:00
Jason Volk 65760fc93a ircd::db: Prevent use of delta encoding in SST files for zero-copy pinnable slices. 2020-06-10 22:36:28 -07:00
Jason Volk 7a53afc4c8 ircd::db: Add delta encoding indicator to SST info; add to console cmd output. 2020-06-10 22:36:28 -07:00
Jason Volk c037519246 ircd::db: Add additional recovery mode if supported. 2020-06-10 22:36:27 -07:00
Jason Volk b68b4d113a ircd::db: Add conf item to disable automatic compactions.
construct: Add -nocompact program option.
2020-06-10 22:36:27 -07:00
Jason Volk 2f1523ffb2 ircd::db: Fix coderot under RB_DEBUG_DB_SEEK. 2020-06-09 05:14:43 -07:00
Jason Volk c0c9c2c4f0 ircd::db: Add parallel has() to column interface. 2020-06-09 04:37:51 -07:00
Jason Volk fc9c952ba8 ircd::db: Add parallel read suite to internal interface. 2020-06-08 21:28:07 -07:00
Jason Volk 4a1f04823f ircd::db: Improve request pool initialization and size determination. 2020-06-08 17:16:07 -07:00
Jason Volk 6968f24921 ircd::db: Add compaction period parameter to descriptor. 2020-06-07 05:46:24 -07:00
Jason Volk b8521117c1 ircd::db::row: Add valid_all() to interface. 2020-06-07 03:26:31 -07:00
Jason Volk 9ee4afd560 ircd::db: Simplify and cleanup for cached()/has(). 2020-06-07 01:51:19 -07:00
Jason Volk 6ee817aec8 ircd::db: Add internal interface around PinnableSlice queries. 2020-06-07 01:51:19 -07:00
Jason Volk 8b7fe333ec ircd::db: Add valid(rocksdb::Status) to suite. 2020-06-07 01:51:19 -07:00
Jason Volk a4447054e5 ircd::db: Fix O_DIRECT test file path mismatch regression. 2020-06-04 15:51:48 -07:00
Jason Volk 774cd6c7c2 ircd::db: Split allocator related into unit. 2020-06-04 15:38:38 -07:00
Jason Volk e12774595c ircd::db: Disable cache lock feature when valgrinding. 2020-06-04 00:25:43 -07:00
Jason Volk 635cccdb9d ircd::db: Fix integer literal for comparison. 2020-05-30 18:15:03 -07:00
Jason Volk 1a0ee0ece4 ircd::db: Add missing #ifdefs covering rocksdb 5.x (thanks @grinapo). 2020-05-30 03:59:10 -07:00
Jason Volk a61a67961a ircd::db: Lock database cache extents in RAM if possible. (closes #144) 2020-05-29 23:40:24 -07:00
Jason Volk 77b0fc9e1e ircd::db: Elaborate all extent hooks; move cache_arena to database::allocator. 2020-05-29 23:40:24 -07:00
Jason Volk 67ddcf074a ircd::db: Add a global cache arena w/ lifetime of subsystem. 2020-05-29 23:40:24 -07:00
Jason Volk 085b1acfe9 ircd::db: Add jemalloc arena and flags support to allocators. 2020-05-29 23:40:24 -07:00
Jason Volk 8bc371d7fb ircd::db::txn: Fix has() queries. 2020-05-12 22:27:53 -07:00
Jason Volk fe3c051f8a ircd::db: Fix missing #ifdefs for cache allocator. 2020-05-10 03:02:25 -07:00
Jason Volk 1c11e6b2c1 ircd::db: Minor cleanup. 2020-05-08 14:12:19 -07:00
Jason Volk 516d7e8ad7 ircd::db::database::allocator: Support aligned allocations.
ircd::db::database::allocator: Implement callback for true allocated size hint.
2020-05-08 00:05:46 -07:00
Jason Volk f77f36904e ircd::db::database::cache: Fix construction of the proxy w/ custom allocator. 2020-05-07 21:06:08 -07:00
Jason Volk 15cd10f843 ircd::db::database: Use scoped tag; fix allocator passed to cache; LRUCacheOptions; final override. 2020-05-07 17:58:38 -07:00
Jason Volk 2c7f81d1e1 ircd:;db: Disambiguate KeyMaxExist() overload for rocksdb 6.10.0. 2020-05-07 17:05:12 -07:00
Jason Volk fd127472b9 ircd::db: Use some symbols in the library for ABI string info for now. 2020-05-05 22:52:00 -07:00
Jason Volk 86bacdfcb5 ircd::db: RocksDB >= 6.0.0 CompactionFilter::IgnoreSnapshots() must always be true. 2020-05-05 22:24:25 -07:00
Jason Volk b448156da4 ircd::db: Interface to get the charge value of cache entry. 2020-05-05 19:58:37 -07:00
Jason Volk 1eaf52d2eb ircd::db: Reflect ColumnFamilyDropped (6.3.6). 2020-05-05 19:58:37 -07:00
Jason Volk 572396f5f4 ircd::db: Add Env::Priority:USER (6.1.1). 2020-05-05 19:58:37 -07:00
Jason Volk 5fbcc5b982 ircd::db: Reflect kPeriodicCompaction (6.6.2). 2020-05-05 19:58:37 -07:00
Jason Volk 3ebc8f8a33 ircd::db: Reflect kErrorRecovery (5.17.2). 2020-05-05 19:58:37 -07:00
Jason Volk 36a0394184 ircd::db::database: Add custom allocator stub; apply per-cache allocators. 2020-05-05 19:58:37 -07:00
Jason Volk 9f2bdd3ca2 Upgrade to RocksDB 6.6.4.
ircd::db::database::cache: Remove deprecated interface override.

ircd::db::database::cache: Add new GetCharge() abstract virtual override.

ircd::db: Use set_stats_level() for privated member.
2020-05-05 19:58:37 -07:00
Jason Volk 7df29b7ebe ircd::db: Minor cleanup. 2020-05-02 23:57:53 -07:00
Jason Volk 693d3c72bb ircd::db: Supply our own created SstFileManager instance. 2020-04-29 03:37:35 -07:00
Jason Volk 030286fed2 ircd::db: Use critical log level for kFatalError. 2020-04-22 01:51:55 -07:00
Jason Volk 2bf38286ba ircd::fs: Callsite changes for fs::base reorg. 2020-04-19 06:13:23 -07:00
Jason Volk a6cf4c3c91 ircd::fs: Refactor base paths into conf::items. 2020-04-19 06:13:23 -07:00
Jason Volk a867cfa51a ircd::fs: Add gauge for rlimit_nofile in support section. 2020-03-20 10:56:55 -07:00
Jason Volk 472ce01b50 ircd::fs: Reorg support section and indicators. 2020-03-20 10:56:55 -07:00
Jason Volk 7f4b5fb69e ircd::db: Add experimental universal compaction options section; minor reorg. 2020-03-16 00:30:28 -07:00
Jason Volk 829516afde ircd::db: Add compaction priority option to descriptor.
ircd:Ⓜ️:dbs: Tune compaction priority algorithm.
2020-03-13 15:12:22 -07:00
Jason Volk 84039ad1e7 ircd::db: Don't issue log warning for positive write-stall transition. 2020-03-01 14:08:21 -08:00
Jason Volk c89ddc4cbf ircd::db: Additional iterator validity indication in logmsg. 2020-02-28 17:15:25 -08:00
Jason Volk 9b5e4f8d48 ircd::db: Improve error propagation and reporting on _seek(). 2020-02-27 14:49:26 -08:00
Jason Volk 79786f7076 ircd::db: Improve error string generation; cases for custom severity. 2020-02-27 14:48:19 -08:00
Jason Volk 7dd821fd55 ircd::db: Add reflection for rocksdb::Status::Code. 2020-02-27 14:47:07 -08:00
Jason Volk 59d90f69c2 ircd::db: Fix formatting; fix format string. 2020-02-27 14:22:52 -08:00
Jason Volk e886e79073 ircd::db: Inline pointer-conditional overloads for cache interface. 2020-02-19 08:50:36 -08:00
Jason Volk 5f7dffbc59 ircd::db: Fix missing log facilities. 2020-01-12 17:38:45 -08:00
Jason Volk b0a773c922 ircd::db: Add conf item to repair on open. 2020-01-11 23:31:53 -08:00
Jason Volk 9469099508 ircd::db: Add cases for validity w/ critical log. 2020-01-11 23:31:53 -08:00
Jason Volk a95f448805 ircd::db: Cases for traps; minor cleanup. 2020-01-11 23:31:53 -08:00
Jason Volk e76035cc28 ircd::db: Log exceptions and continue loop for db compaction. 2020-01-09 13:42:43 -08:00
Jason Volk cdfdde3334 ircd::db: Add interface to checksum files per column.
modules/console: Add column params to db check cmd.
2020-01-08 12:32:56 -08:00
Jason Volk ffcc49b9e5 ircd::db: Add interface to checksum per file. 2020-01-08 12:32:56 -08:00
Jason Volk ec6c3bbc0f ircd::db: Improve fd limit range in db opts. 2019-10-10 13:24:18 -07:00
Jason Volk 5b28f51d1e ircd::db::prefetcher: Move all counters into a dedicated structure. 2019-09-20 11:12:16 -07:00
Jason Volk dc5a335968 ircd::db::prefetcher: Add fetched byte counters; accumulated timers. 2019-09-18 22:25:05 -07:00
Jason Volk 8e116e3578 ircd::db::prefetcher: Add yield point. 2019-09-18 20:29:18 -07:00
Jason Volk 9d2e506253 ircd::db: Add direct-dispatch if request worker available; various optimizations. 2019-09-18 20:23:34 -07:00
Jason Volk 788542e833 ircd::db: Simplify seek() templates. 2019-09-18 19:14:52 -07:00
Jason Volk 35d39a7d70 ircd::db: Move prefetcher to header; reorg definitions; minor reorg. 2019-09-18 15:15:02 -07:00
Jason Volk 35b0670690 ircd::db: Add stack usage assertions before entering rocksdb. 2019-09-12 18:37:33 -07:00
Jason Volk 24986e76f9 ircd::db: Increase default non-conf maximums for now. 2019-09-10 21:39:00 -07:00
Jason Volk 80de67476c ircd::db: Notify the prefetcher dock on cancel and empty queue condition. 2019-09-10 21:39:00 -07:00
Jason Volk 27a1997ab1 ircd::db: Cancel all prefetches on database shutdown. 2019-09-08 14:42:11 -07:00
Jason Volk 0422f29a66 ircd::db::prefetcher: Add cancel() mechanism to remove items from queue. 2019-09-08 14:42:11 -07:00
Jason Volk b2a306bc26 ircd::db: Enable all stats timers. 2019-09-01 21:06:30 -07:00
Jason Volk f073657b5a ircd::db: Add granular compaction size related to column descriptor. (#13) 2019-08-26 12:14:26 -07:00
Jason Volk 4013c4cb23 ircd::db: Add preliminary prefetch unit.
ircd::db::prefetcher: Add timestamp to request in debugmode.
2019-08-24 19:19:34 -07:00
Jason Volk ac03c9a13b ircd: Use bool return values through prefetching stack. 2019-08-19 21:18:26 -07:00
Jason Volk f5b45f32d0 ircd::db: Fix comment/label. [skip ci] 2019-08-12 21:17:45 -07:00
Jason Volk 198fbfa20b ircd::db: No compaction readahead for direct IO. 2019-08-08 19:50:33 -07:00
Jason Volk 7dcd3fdcd8 ircd: Improve log format consistency. 2019-07-23 17:31:16 -07:00
Jason Volk 62f861c54a ircd::db::database::env: Add missing fdno in log output.
ircd::db: Add missing validator in debug.
2019-07-21 16:41:05 -07:00
Jason Volk b6903bf643 Wrap clang diagnostics in #ifdef to prevent GCC warning. 2019-07-20 18:42:15 -07:00
Jason Volk 0704625401 ircd::log: Simplify log class member interface. 2019-07-19 17:15:47 -07:00
Jason Volk 4b53217939 ircd::db: Improve readability. 2019-07-16 16:06:40 -07:00
Jason Volk 80655da66e Misc fixes for clang. 2019-06-24 01:34:14 -07:00
Jason Volk 809d01d7df ircd: Mark explicit unreachables for clang's failure to elide dtors of noreturn constructed objects. 2019-06-24 02:22:55 -06:00
Jason Volk 2f74142737 ircd::db: Fix erroneous calls when stacking overloads.
modules/s_keys: Fix erroneous calls when stacking overloads (regression).
2019-06-24 02:22:55 -06:00
Jason Volk cf3b1218c4 ircd: Misc fixes for clang. 2019-06-23 16:22:06 -06:00
Jason Volk 2e7f272570 ircd: Add plain string terminate. 2019-06-23 16:16:39 -06:00
Jason Volk 82a7d736d1 ircd::fs::path: Use scoped enum for fs::path::base paths. 2019-06-23 07:37:23 -06:00
Jason Volk 5bf62fc33f ircd: Degrade enum addressing for clang. 2019-06-23 07:37:23 -06:00
Jason Volk 801f0d57b7 ircd: Fix attributes for clang. 2019-06-23 07:37:23 -06:00
Jason Volk a371bc3e1f ircd: Fix cast-conversion based reference-constructions. 2019-06-22 17:36:42 -06:00
Jason Volk 534afe8859 ircd: No need to move x-values. 2019-06-22 17:36:42 -06:00
Jason Volk b78ea359b6 ircd::db: Rename db::index to db::domain; fix userspace. 2019-06-11 12:57:52 -07:00
Jason Volk 9fe4d07556 ircd::db: Use high priority index block cache feature; increase pct. 2019-06-08 00:05:14 -07:00
Jason Volk 70c6c9ea86 ircd::db: Expose subroutines from db::init. 2019-06-06 18:47:44 -07:00
Jason Volk a348db4767 ircd::db: Rename possibly conflicting constant. 2019-06-04 14:59:05 -07:00
Jason Volk 364e98d564 ircd::info: Do autogeneration of missing version string in ctor. 2019-06-02 14:21:40 -07:00
Jason Volk f2e84a6b0e ircd::db: Fix compression identification on init. 2019-06-02 01:15:03 -07:00
Jason Volk eb73595c50 ircd: Apply uniform info::versions for all dependency version identification. 2019-05-31 16:15:01 -07:00
Jason Volk 2b95a65709 ircd::db: Fix various error handling around db::init. 2019-05-23 22:43:41 -07:00
Jason Volk 96dfcaa122 ircd::db::txn: Minor interface cleanup. 2019-05-09 16:58:29 -07:00
Jason Volk 41d60ec2f7 ircd::db: Minor move attribute. 2019-05-08 05:19:04 -07:00
Jason Volk 85aee354c1 ircd::db: Handle read-only shutdown case. 2019-05-02 21:43:27 -07:00
Jason Volk 604c103bbc ircd::db::database::cache: Fix the shard bits default. 2019-04-24 02:19:14 -07:00
Jason Volk 124f62d159 Revert "ircd::db: Lock writes after memtable sealed until flush to prevent rocksdb pthread use."
This reverts commit c370cdc123.
2019-04-22 19:08:01 -07:00
Jason Volk c370cdc123 ircd::db: Lock writes after memtable sealed until flush to prevent rocksdb pthread use. 2019-04-22 16:32:40 -07:00
Jason Volk c6d056421d ircd::db: Log warning when crc32c acceleration is not available. 2019-04-22 15:24:07 -07:00
Jason Volk db539c6268 ircd::db: Add write-ahead-log recovery callback surface. 2019-04-20 14:30:42 -07:00
Jason Volk 810888b53c ircd::db: Allow concurrent memtable write. 2019-04-19 00:17:00 -07:00
Jason Volk f27b56fac3 ircd::db: Show commit debuglog messages. 2019-04-19 00:15:14 -07:00
Jason Volk 4038973297 ircd::util: Use allocator::node for instance_list instances. 2019-04-16 20:48:00 -07:00
Jason Volk f9025cebb9 ircd: Support read-only and write-avoid modes via conf item / command line. 2019-04-15 11:16:31 -07:00
Jason Volk 15bd7282c7 ircd::db: Use rvalue refs here. 2019-04-12 09:36:53 -07:00
Jason Volk be18a1874d ircd::db: Increase file size target default. 2019-04-10 22:32:06 -07:00
Jason Volk c3480f9f79 ircd: Rename various matrix loggers; increase log name width. 2019-04-05 18:12:22 -07:00
Jason Volk ccf17d648c ircd::db: Add debug message for pool->wait() on bgcancel(). 2019-03-27 13:04:12 -07:00
Jason Volk 620e352a4f ircd::db::txn: Add a state enum to the txn. 2019-03-19 13:39:15 -07:00
Jason Volk 69f1fe7241 ircd::db: Fix macro condition. 2019-03-13 16:11:29 -07:00
Jason Volk 47bcfaecb4 ircd: Upgrade various templates with argument deduction. 2019-03-02 14:20:52 -08:00
Jason Volk 9aaba79919 ircd::db: Checkpoint coarse configuration values for now. 2019-02-25 18:20:48 -08:00
Jason Volk 6f7fc0a837 ircd::db: Add interface to query size of key in column. 2019-02-25 18:17:01 -08:00
Jason Volk 2db5278eb2 ircd::db: Log the error message on database constructor before rethrow. 2019-02-22 15:40:53 -08:00
Jason Volk 551168c643 ircd: Various quietudes. 2019-02-16 15:25:36 -08:00
Jason Volk a4bd140cc2 ircd::db: Add interruption threshold at seek call. 2019-02-07 22:16:19 -08:00
Jason Volk 72a3ff2856 ircd: Employ path_string() at various callsites. 2019-02-07 22:16:19 -08:00
Jason Volk a63f23fc2d ircd::db: Minor reorg; move db::index defs near db::column. 2019-02-06 16:42:27 -08:00