summaryrefslogtreecommitdiffstats
path: root/vespalib
Commit message (Collapse)AuthorAgeFilesLines
* Add function to lowercase an utf8 string while converting it to ucs4 codepoints.Geir Storli2022-03-183-7/+34
|
* Always use array of AtomicEntryRef in unique store remapper.Tor Egge2022-03-172-18/+13
|
* Use AtomicEntryRef and AtomicValueWrapper<uint32_t> in reference attribute.Tor Egge2022-03-171-0/+9
|
* Add acquire_elem_ref() member function to rcu vector.Tor Egge2022-03-153-6/+173
|
* Merge pull request #21662 from ↵Henning Baldersheim2022-03-142-0/+65
|\ | | | | | | | | vespa-engine/vekterli/use-atomic-values-in-btree-bucket-database-impl Make B-tree bucket database values atomic to ensure well-defined access [run-systemtest]
| * Make B-tree bucket database values atomic to ensure well-defined accessTor Brede Vekterli2022-03-112-0/+65
| | | | | | | | | | | | | | | | | | | | | | | | | | Existing implementation already used explicit acquire/release fences to ensure visibility from writer to concurrent readers, but the values written/read were not of an atomic type and thus _technically_ considered a data race. This commit adds an AtomicValueWrapper wrapper to vespalib which looks and acts much like the existing AtomicEntryRef, but for primitive types that are not related to EntryRefs. The bucket DB B-tree primitive u64 value type is replaced with an atomic wrapper and explicit memory fences are replaced with release stores and acquire loads on the atomic values themselves to ensure they form correct pairs between writer and readers.
* | Convert rcu vector unit test to gtest.Tor Egge2022-03-145-137/+164
|/ | | | Factor out generation holder test to separate unit test.
* Add noexceptHenning Baldersheim2022-03-106-24/+24
|
* Reduce exposure of SymbolTable, Stash and other classes not necessary for ↵Henning Baldersheim2022-03-1014-68/+134
| | | | users of Slime.
* Prefer std::vector<T, vespalib::allocator_large> over vespalib::Array<T> step 1.Henning Baldersheim2022-03-104-10/+7
|
* fix tsan warningsHåvard Pettersen2022-03-091-13/+33
| | | | | | | | | | Portal code calls attach from the reactor thread, so most of these warnings will not be relevant there. However, they indicate that we need to be careful about creating the object that will get the callback before creating the reactor token. Also, the token itself is in need of synchronization (like any smart-ptr-like-thing) which makes deleting it inside the call-back somewhat problematic unless there is a lock or it was created in the reactor thread in the first place.
* Merge pull request #21614 from vespa-engine/havardpe/avoid-mmap-fail-with-tsanHenning Baldersheim2022-03-091-0/+10
|\ | | | | tsan does not seem too happy about mmap failures
| * tsan does not seem too happy about mmap failuresHåvard Pettersen2022-03-091-0/+10
| |
* | Merge pull request #21609 from vespa-engine/balder/add-noexceptHenning Baldersheim2022-03-091-16/+16
|\ \ | | | | | | Add noexcept.
| * | Make noexcept conditional.Henning Baldersheim2022-03-091-3/+3
| | |
| * | Add noexcept.Henning Baldersheim2022-03-091-16/+16
| |/
* / Use AtomicEntryRef in MultiValueMappingBase.Tor Egge2022-03-093-31/+10
|/
* Merge pull request #21586 from vespa-engine/balder/gc-unused-threadpoolHenning Baldersheim2022-03-082-2/+1
|\ | | | | Balder/gc unused threadpool
| * Get VESPA_DLL_LOCAL from vespa/fastos/types.hHenning Baldersheim2022-03-072-2/+1
| |
* | Fix constexpr expression on clang.Tor Egge2022-03-081-6/+8
|/
* use atomic to make tsan happyHåvard Pettersen2022-03-072-4/+5
|
* gc old process codeHåvard Pettersen2022-03-0518-865/+139
| | | | also added read_line function to new Process code
* Merge pull request #21547 from ↵Geir Storli2022-03-044-7/+7
|\ | | | | | | | | vespa-engine/toregge/use-atomic-entry-ref-as-value-for-enum-store-dictionary-with-posting-lists Use AtomicEntryRef as value for enum store btree dictionary with posting lists.
| * Use AtomicEntryRef as value for enum store btree dictionary with posting lists.Tor Egge2022-03-044-7/+7
| |
* | use /bin/echo when using -n optionHåvard Pettersen2022-03-041-2/+2
| |
* | process codeHåvard Pettersen2022-03-0411-0/+413
|/
* Use AtomicEntryRef as key for unique store btree dictionary.Tor Egge2022-03-0318-42/+57
|
* Unconditionally un-toggle huge page failure flag when mapping was OKTor Brede Vekterli2022-03-031-3/+1
|
* Make global alloc hugepages failure flag atomicTor Brede Vekterli2022-03-031-5/+8
|
* relative std::this_thread::sleep_for is more efficient than absolute ↵Henning Baldersheim2022-03-031-3/+2
| | | | std::this_thread::sleep_until. This is the opposite of std::condition_variable::wait_until/wait_for.
* Follow api change pointer to referenceHenning Baldersheim2022-03-031-3/+3
|
* Use a reference instead of a pointer, as it will always be present now.Henning Baldersheim2022-03-032-2/+2
|
* Sample time prior to creating the InvokServiceImpl to ensure correct ↵Henning Baldersheim2022-03-031-1/+1
| | | | ordering of time.
* Let the InvocationService drive the clock instead of having its own ticking ↵Henning Baldersheim2022-03-034-14/+35
| | | | | | | loop. Also use sleep_until to get intervals indendant of invoke cost as long as cost is within interval. This also also saves a clock sample and simplifies implementation.
* make tsan happyHåvard Pettersen2022-03-031-3/+3
|
* Merge pull request #21491 from ↵Henning Baldersheim2022-03-021-1/+8
|\ | | | | | | | | vespa-engine/balder/run-sync-task-in-singlecommitter-thread Running the poll task in the singleCommitter thread removes the need …
| * Since we schedule the last chunk for commit in triggerSyncNow, we can assert ↵Henning Baldersheim2022-03-021-1/+8
| | | | | | | | | | | | that we will be fully synced on the next pull when it happens in the singleCommitter thread. That allows for further simplification.
* | Merge pull request #21490 from ↵Geir Storli2022-03-021-4/+119
|\ \ | |/ |/| | | | | vespa-engine/toregge/stress-test-lifetime-of-held-data Test lifetime of indirect values accessed via atomic pointer.
| * Remove unneeded preprocessor directives.Tor Egge2022-03-021-5/+15
| | | | | | | | Make stopping of readers more robust.
| * Test lifetime of indirect values accessed via atomic pointer.Tor Egge2022-03-011-4/+109
| |
* | Merge pull request #21481 from vespa-engine/balder/gc-unused-code-1v7.553.2v7.552.18Henning Baldersheim2022-03-011-2/+2
|\ \ | | | | | | GC unused code.
| * | GC unused code.Henning Baldersheim2022-03-011-2/+2
| | |
* | | Merge pull request #21477 from ↵Henning Baldersheim2022-03-013-10/+12
|\ \ \ | |_|/ |/| | | | | | | | vespa-engine/balder/use-wait_until-to-reduce-need-for-sampling-time Use wait_until and a deadline instead of a timeout.
| * | timeout_end -> deadlineHenning Baldersheim2022-03-012-5/+5
| | |
| * | Use wait_until and a deadline instead of a timeout.Henning Baldersheim2022-03-013-9/+11
| | | | | | | | | | | | This reduces the need to smaple the time significantly.
* | | Merge pull request #21478 from ↵Geir Storli2022-03-014-109/+126
|\ \ \ | |_|/ |/| | | | | | | | vespa-engine/toregge/convert-generation-handler-tests-to-gtest Convert generation handler tests to gtest.
| * | Sync executors at end of stress test.Tor Egge2022-03-011-0/+2
| | |
| * | Convert generation handler tests to gtest.Tor Egge2022-03-014-109/+124
| |/
* | Merge pull request #21469 from ↵Geir Storli2022-03-014-44/+183
|\ \ | |/ |/| | | | | vespa-engine/toregge/compact-indirect-keys-and-values-in-btree-stress-test Compact indirect keys and values in btree stress test.
| * Compact indirect keys and values in btree stress test.Tor Egge2022-02-284-44/+183
| |