summaryrefslogtreecommitdiffstats
path: root/vespalib/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
* added spin lock with testHåvard Pettersen2020-11-121-0/+1
| | | | | | | | | | | 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).
* - GC unused code.Henning Baldersheim2020-10-071-2/+0
| | | | - vespalib::Lock -> std::mutex
* benchmark type detectionHåvard Pettersen2020-09-251-1/+2
|
* ChildProc -> ChildProcessArne Juul2020-07-171-1/+1
|
* rename SlaveProc -> ChildProcArne Juul2020-07-171-1/+1
|
* common code for operation inliningHåvard Pettersen2020-06-111-1/+2
| | | | | | | | | | - add common code to make selecting the appropriate template function easier (vespa/vespalib/util/typify.h) - enable detection of lambda functions matching all low-level operations. (lookup_op1, lookup_op2) - add typifiers to decide which low-level operations should be inlined (TypifyOp1, TypifyOp2) - integrate into dense_simple_join as a pilot customer
* Merge pull request #12527 from ↵Henning Baldersheim2020-03-101-0/+1
|\ | | | | | | | | vespa-engine/balder/compile-euclidian-distance-for-avx2-and-avx512 Balder/compile euclidian distance for avx2 and avx512
| * Add a euclidian distance that is optimal for avx, avx2 and avx512.Henning Baldersheim2020-03-101-0/+1
| |
* | add generic ReusableSetArne Juul2020-03-051-0/+1
|/
* Use Google RE2 as underlying regex engineTor Brede Vekterli2020-03-041-0/+1
| | | | | | | | | | | | This introduces guaranteed upper bounds for memory usage and CPU time during regex evaluation. Most importantly, it removes the danger of catastrophic backtracking that is currrently present in GCC's std::regex implementation. With this commit, RE2 will be used instead of std::regex for: * Document selection regex/glob operators * Attribute regex search * Evaluation of mTLS authorization rules
* Move crypto utility code out into vespalib and use for test credentialsTor Brede Vekterli2020-02-201-0/+2
| | | | | | | | | | | Currently offers only the following functionality: * Generate P-256 EC private keys and export to PEM * Generate X509 certificates and export to PEM Instead of using hardcoded private key/certs for unit tests, use crypto utility code to generate new credentials once per test process. Since these certs now use a SAN of `localhost` it also means we no longer need to disable hostname validation for networked unit tests.
* added visit_ranges generic utility functionHåvard Pettersen2020-01-061-0/+1
|
* introduce overload classHåvard Pettersen2020-01-031-0/+1
| | | | and use it with std::visit when inspecting std::alternative
* remove unused TimeTracker classHåvard Pettersen2019-11-211-1/+0
|
* Move count functions from enum store dictionary to unique store dictionary.Geir Storli2019-08-271-0/+1
|
* Add separate allocator for strings in unique store.Tor Egge2019-08-151-0/+1
|
* Move datastore and btree code from searchlib to vespalibTor Brede Vekterli2019-05-271-0/+9
| | | | | | | | | | Namespace is still `search` and not `vespalib` due to the massive amount of code that would need to be modified for such a change. Other changes: - Move `BufferWriter` from searchlib to vespalib - Move assertion and rand48 utilities from staging_vespalib to vespalib - Move gtest utility code from staging_vespalib to vespalib
* Move RcuVector and relevant support classes to vespalibTor Brede Vekterli2019-05-231-0/+1
| | | | | | | | | | | | | Having RCU support available across all our C++ modules open up new opportunities for optimizations. This changes the following: - `RcuVector` moved from `searchlib` to `vespalib` - `MemoryUsage` moved from `searchlib` to `vespalib` - Introduce a simplified, more generic `GrowStrategy` in `vespalib` used by the moved `RcuVector` which does not have any notion of documents. Existing searchlib `GrowStrategy` gets a simple function to convert to this generic strategy.
* Eliminate clang warning in vespalibTor Egge2019-02-061-1/+0
|
* Merge pull request #8350 from vespa-engine/havardpe/time-tracerTor Brede Vekterli2019-02-041-0/+1
|\ | | | | baseline time tracer code
| * baseline time tracer codeHåvard Pettersen2019-02-011-0/+1
| |
* | Revert "Revert "Use OS provided xxhash.""Henning Baldersheim2019-02-031-1/+1
| |
* | Revert "Use OS provided xxhash."Håkon Hallingstad2019-02-031-1/+1
| |
* | Use OS provided xxhash.Henning Baldersheim2019-02-011-1/+1
|/
* Merge pull request #7849 from ↵Tor Brede Vekterli2018-12-071-0/+1
|\ | | | | | | | | vespa-engine/vekterli/cpp-auto-reloading-of-tls-config Support auto-reloading of TLS config in C++ implementation
| * Support auto-reloading of TLS config in C++ implementationTor Brede Vekterli2018-12-031-0/+1
| | | | | | | | | | | | | | | | | | By default reloads every 60 minutes. This also reloads all peer authorization rules. Files referenced by the TLS config are reloaded transitively. If reloading fails a warning will be logged and the existing config will continue to be in effect until the next reload time.
* | added Latch utilityHåvard Pettersen2018-11-291-0/+1
|/
* initial portal codeHåvard Pettersen2018-11-271-0/+5
|
* Add support for basic certificate verification policies in C++Tor Brede Vekterli2018-11-081-0/+1
| | | | | | | | Extends TLS config JSON file with an `allowed-peers` object, which if non-empty specifies a set of policies that a peer may match. If at least one policy exists a peer must match all requirements in any single policy to be allowed to connect. I.e. it's sufficient to match 1 policy out of many.
* added sync crypto socket with testHåvard Pettersen2018-10-091-0/+1
|
* added simple test for various crypto socketsHåvard Pettersen2018-10-091-0/+1
|
* GC HashMapHenning Baldersheim2018-09-281-1/+0
|
* Merge pull request #7081 from ↵Tor Brede Vekterli2018-09-271-0/+1
|\ | | | | | | | | vespa-engine/vekterli/add-tls-protocol-snooping-utilities Add functionality for detecting whether a client is using TLS or not
| * Add functionality for detecting whether a client is using TLS or notTor Brede Vekterli2018-09-251-0/+1
| | | | | | | | | | Inspects first 8 bytes of a client's initial data stream to determine if it's (with very high confidence) a TLS ClientHello message.
* | Add simple usage test for vespa-drop-file-from-cacheHenning Baldersheim2018-09-261-0/+1
| |
* | Add simple program to drop files from the buffer cache.Henning Baldersheim2018-09-251-0/+1
|/
* Introduce custom OpenSSL BIOs for providing direct buffer read/writeTor Brede Vekterli2018-09-191-0/+1
| | | | | | | | BIOs offer a dynamic view into source or sink (const/mutable) buffers and avoids overhead of copying from/to memory BIOs. Also strictly enforces buffer sizes to ensure there are no hidden reallocs. Additionally make code OpenSSL 1.1+ and TLSv1.3 compatible.
* slightly smarter buffer with testHåvard Pettersen2018-09-111-0/+1
|
* Add TLS config file support with proposed JSON structureTor Brede Vekterli2018-09-071-0/+1
|
* The current implementation is known to be sub-optimal due to requiringTor Brede Vekterli2018-09-051-0/+3
| | | | | | memory copies in and out of OpenSSL's working BIOs for every encode and decode. Codec design is also up for change, depending on how well it fits with crypto socket integration.
* Revert "Add initial OpenSSL CryptoEngine implementation and key/cert handling"Jon Marius Venstad2018-09-051-3/+0
|
* Revert "Revert "Add initial OpenSSL CryptoEngine implementation and key/cert ↵Tor Brede Vekterli2018-09-051-0/+3
| | | | handling""
* Revert "Add initial OpenSSL CryptoEngine implementation and key/cert handling"Tor Brede Vekterli2018-09-041-3/+0
|
* Add initial OpenSSL CryptoEngine implementation and key/cert handlingTor Brede Vekterli2018-08-311-0/+3
| | | | | | | The current implementation is known to be sub-optimal due to requiring memory copies in and out of OpenSSL's working BIOs for every encode and decode. Codec design is also up for change, depending on how well it fits with crypto socket integration.
* added tools to detect and validate hostnameHåvard Pettersen2018-05-091-0/+2
|
* added a test that sends an open socket handle over an ipc connectionArne Juul2018-04-231-0/+1
| | | | This reverts commit 0193d4a9ba211ee4afc01a0b71c392a62cef11db.
* Revert "added a test that sends an open socket handle over an ipc connection"Arnstein Ressem2018-04-201-1/+0
|
* added a test that sends an open socket handle over an ipc connectionHåvard Pettersen2018-04-201-0/+1
|
* added unconstify for ConstArrayRef -> ArrayRef conversionHåvard Pettersen2018-02-271-0/+1
| | | | also added simple test for array ref classes
* Use public domain MD5 implementation in vespalibTor Brede Vekterli2017-09-151-0/+1
| | | | Add basic test vectors to ensure implementation is conformant.