summaryrefslogtreecommitdiffstats
path: root/vespalib
Commit message (Collapse)AuthorAgeFilesLines
* Only let reindexing puts through locked bucket if their token matches that ↵Tor Brede Vekterli2020-12-113-0/+25
| | | | | | | | | | | of the lock Avoids race condition edge case where reindexing puts from an outdated visitor may pass through a bucket lock intended for a newly created visitor operation Tokens are 128-bit values derived from a CSPRNG, so uniqueness is for all intents and purposes guaranteed.
* Simplify simple method to find next hashtable size.Henning Baldersheim2020-12-072-23/+6
|
* some more shared string repo experimentsHåvard Pettersen2020-12-073-30/+165
| | | | | | | | | - use linked free list - wait with string overwrite until re-use - benchmark copy+hash and local-enum as well - experiment with hashtable force_insert - also benchmark strong/weak handle containers - benchmark for longer, since there are many things
* Use Select1stHenning Baldersheim2020-12-071-7/+3
|
* Expect that all are present after resize too.Henning Baldersheim2020-12-071-1/+8
|
* Add a force_insert method to the hash_table. It is faster as it skips the ↵Henning Baldersheim2020-12-073-3/+71
| | | | | | | presence check and avoid equality compare. It allows duplicates and should hence be used carefully. At least resize will be faster as it it can safely be used there.
* Merge pull request #15708 from vespa-engine/havardpe/avoid-extra-checkHenning Baldersheim2020-12-071-4/+1
|\ | | | | avoid unneeded check
| * avoid unneeded checkHåvard Pettersen2020-12-071-4/+1
| |
* | Merge pull request #15695 from vespa-engine/balder/optional-wakeup-handlingHenning Baldersheim2020-12-072-2/+11
|\ \ | | | | | | Only handle wakeup if necessary.
| * | Only handle wakeup if necessary.Henning Baldersheim2020-12-052-2/+11
| | |
* | | Some -std=c++20a fixes:Arne Juul2020-12-061-1/+1
|/ / | | | | | | | | | | | | add noexcept de-inline destructor avoid comparison warning (and revert changes already made in another branch)
* / Add noexcept specifiers to non-throwing constructors and operators.Tor Egge2020-12-053-4/+4
|/
* Add missing includes. Fix format string.Tor Egge2020-12-042-0/+2
|
* Merge pull request #15667 from ↵Henning Baldersheim2020-12-041-0/+2
|\ | | | | | | | | vespa-engine/toregge/remove-unneeded-operators-for-string-compare Remove unneeded operators for string compare.
| * Remove unneeded operators for string compare.Tor Egge2020-12-041-0/+2
| |
* | Add noexcept specifier to non-throwing member functions.Tor Egge2020-12-041-1/+1
|/
* Use std::atomic.Tor Egge2020-12-032-19/+21
|
* Don't increment or decrement volatile variables. It is deprecatedTor Egge2020-12-032-8/+8
| | | | when using C++20.
* Be explicit wether size is give or notHenning Baldersheim2020-12-024-3/+15
|
* Allocate once with the correct sizeHenning Baldersheim2020-12-022-26/+37
|
* Put the next link at the end to allow closer packing if alignment allows.Henning Baldersheim2020-12-021-5/+5
|
* Make it compatible with c++2aHenning Baldersheim2020-12-022-10/+15
|
* We must keep the handling in the selector still.Henning Baldersheim2020-11-301-0/+1
|
* Simplify and use a single events_before_wakup number in the transport thread ↵Henning Baldersheim2020-11-301-1/+0
| | | | for controlling wakeup frequency.
* Use std::make_unique and hide actual ThreadExecutor implementation.Henning Baldersheim2020-11-292-8/+14
|
* use singleton object instead of static membersHåvard Pettersen2020-11-262-16/+29
| | | | this is to avoid having to create a repo when it is not used
* improve and clean up unit testHåvard Pettersen2020-11-262-28/+33
|
* check for 0 id more placesHåvard Pettersen2020-11-261-13/+13
| | | | | also cut some documentation, since we only have one handle type for now.
* shared string repo -- WIPHåvard Pettersen2020-11-256-1/+434
|
* - Reorder members for compactness.Henning Baldersheim2020-11-231-5/+2
| | | | | - Avoid needing the definition of Error everywhere. - use std::make_xxx and other c++11 constructs.
* Merge pull request #15385 from vespa-engine/balder/reorder-for-smaller-footprintHenning Baldersheim2020-11-235-124/+139
|\ | | | | Balder/reorder for smaller footprint
| * Steal the traces explicit and force moving of traces. Also hide access to ↵Henning Baldersheim2020-11-235-13/+23
| | | | | | | | the root.
| * Update comment.Henning Baldersheim2020-11-231-2/+1
| |
| * Reduce exposure of TraceNode even further.Henning Baldersheim2020-11-182-28/+16
| |
| * Use a std:.unique_ptr to make Trace a thin wrapper for TraceNode to make the ↵Henning Baldersheim2020-11-183-26/+52
| | | | | | | | happy path fast.
| * Explicit copy construction of Trace.Henning Baldersheim2020-11-181-6/+5
| |
| * Move the Trace and TraceNode when adding traces.Henning Baldersheim2020-11-182-2/+2
| |
| * Hide the modifiable TraceNode root inside the Trace objectHenning Baldersheim2020-11-182-7/+28
| |
| * No need to copy an empty object into another empty object.Henning Baldersheim2020-11-184-79/+51
| |
* | Include array to get definition of std::array.Tor Egge2020-11-231-0/+1
|/
* add helper method to extract the underlying bufferArne Juul2020-11-181-1/+3
|
* Merge pull request #15325 from vespa-engine/havardpe/spin-lockHåvard Pettersen2020-11-134-0/+226
|\ | | | | added spin lock with test
| * use yield instead of pauseHåvard Pettersen2020-11-131-1/+2
| |
| * add more warningsHåvard Pettersen2020-11-131-0/+9
| |
| * fix typoHåvard Pettersen2020-11-131-1/+1
| |
| * added spin lock with testHåvard Pettersen2020-11-124-0/+216
| | | | | | | | | | | | | | | | | | | | | | The micro-benchmark shows promise (run test manually with 'verbose' as parameter). It indicates that taking and releasing the spin lock from a single thread is cheaper than doing the same with a normal mutex (as expected based on previous tests). However, it also indicates that it is competitive with a normal mutex for short critical sections with multiple threads involved. (on my laptop, only the cases using more threads than cores run faster with a normal mutex, which is a better result than expected).
* | Name the threads so it is easier to see who is doing what.Henning Baldersheim2020-11-122-12/+13
| |
* | Add name and type to exception.Henning Baldersheim2020-11-122-6/+4
| |
* | Add basic exact matching support for X509 URI SANsTor Brede Vekterli2020-11-1011-39/+137
|/ | | | | | | | | | Adds extraction of X509 URI peer credentials during the handshake process as well as a new SAN_URI field to the transport security options peer policy section. This implementation is NOT conformant with RFC 2459 since we don't currently support case insensitive matching of scheme, host etc., but it's good enough for our purposes for now.
* Guard against timeout value that is too high and will cause overflow.Henning Baldersheim2020-11-051-0/+5
|