| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
| |
- vespalib::Lock -> std::mutex
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|\
| |
| |
| |
| | |
vespa-engine/balder/compile-euclidian-distance-for-avx2-and-avx512
Balder/compile euclidian distance for avx2 and avx512
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
and use it with std::visit when inspecting std::alternative
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|\
| |
| | |
baseline time tracer code
|
| | |
|
| | |
|
| | |
|
|/ |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/cpp-auto-reloading-of-tls-config
Support auto-reloading of TLS config in C++ implementation
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
|/ |
|
| |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
| |
|
|\
| |
| |
| |
| | |
vespa-engine/vekterli/add-tls-protocol-snooping-utilities
Add functionality for detecting whether a client is using TLS or not
|
| |
| |
| |
| |
| | |
Inspects first 8 bytes of a client's initial data stream to determine
if it's (with very high confidence) a TLS ClientHello message.
|
| | |
|
|/ |
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
handling""
|
| |
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
| |
This reverts commit 0193d4a9ba211ee4afc01a0b71c392a62cef11db.
|
| |
|
| |
|
|
|
|
| |
also added simple test for array ref classes
|
|
|
|
| |
Add basic test vectors to ensure implementation is conformant.
|