Add repeatable NodeStore timing benchmark:
The timing test is changed to overcome possible file buffer cache effects by creating different read access patterns. The unittest-arg command line arguments allow running the benchmarks against any of the available backends and altering the parameters passed in the same format as rippled.cfg. The num_objects parameter permits variation of the number of key/values inserted. The data is random but matches reasonably well the values that rippled might generate.
Add new RocksDBQuickFactory for benchmarking:
This new factory is intended for benchmarking against the existing RocksDBFactory and has the following differences.
* Does not use BatchWriter
* Disables WAL for writes to memtable
* Uses a hash index in blocks
* Uses RocksDB OptimizeFor… functions
See Benchmarks.md for further discussion of some of the issues raised by investigation of RocksDB performance.
Add [server] section to cfg
Set http::message version with pair
Add headers::erase
Use std::pair for headers::value_type
Add new Handler interfaces
Add HTTP::Writer interface:
The Writer interface allows clients to supply a "pull" style object to provide
responses to HTTP Requests. The interface is designed to support a coroutine
based implementation.
Use ssl_bundle in SSLPeer
Call HTTP Handler with legacy peer handshake
Construct Overlay::Peer with ssl_bundle and legacy handshake
Pass legacy peer handshakes through Overlay
Add [server] parsing code
Rename to legacy_context
Pass Config in setup_RPC
Remove unused struct
Check port protocol in legacy handshake detect
Use port settings in ssl detection
Check protocol in SSLPeer
Adjust timer scope