"This patch series adds counters to the rpc clients then it expose them in the
messaging service with a rest API, it was tested with the messaging_service
test app that was modified to run the API."
To test the messaging service API it needs to be included in the
messaging service test.
To test it, start the server with --stay-alive true
then you can use the API to get the messges information:
http://localhost:10001/messaging_service/messages/exception
will return the number of exception per connection
http://localhost:10001/messaging_service/command/completed
will return the number of completed command per connection.
Note that because the two servers are running on the same machine, to
prevent port conflict, the server port will be increment by one (i.e
10001)
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This API gother information about messages passing in the system, in
this patch the following API will be supported:
/messaging_service/messages/replied
/messaging_service/messages/sent
/messaging_service/messages/pending
/messaging_service/messages/exception
/messaging_service/messages/respond_pending
/messaging_service/messages/dropped
The swagger defintion can be retrieved from:
/api-doc/messaging_service
In a typical scenario the API collect values from multiple distributed
instances. Sometimes it is needed to reduce multiple maps by merging
their keys and accumulating their values.
This is a helper function that can be used in map_reduce to perform maps
sum.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds a drop messages counter per verb type to the messaging
service. It will be used by the API to return the number of dropped
messages.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
The messaging service holds a table of clients which the API needs
information from. This adds a foreach_client method that recieve a
functions and itererate over all the clients calling the given function
on each of them.
This implementation support the current table that holds unique ptr.
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Add attributes that we didn't support when the code was first
translated. Please note that we still don't cover all of the so somebody
needs to revisit this later.
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
In sstables the paritioner name is store for validation. To allow Origin
to process our files we need to comply with Origin's paritioner name or
else Origin's SSTableReader::open fails on paritioner comparison.
[I'm sending this patch to Urchin, but it will also apply (with different
description, to Seastar]
This patch saves about 12 GB of disk space in Urchin's build directory.
Our debugging information is absurdly huge, and added to every single
executable we generate. This is most noticable in tests - we currently
have about 60 test executables, and each one contains a copy of all
this debug information.
This patch creates all test executables - whether debug or release mode -
stripped. When a user encounters a failing test he wants debug information
for (for gdb or the sanitizer), he can trivially relink it unstripped,
with a command like:
ninja build/debug/tests/urchin/sstable_test_g
(note the added "_g"). This links the already existing object files
(which still have their debug information), which takes a few seconds.
On my machine, this patch reduces the Urchin build directory from about
22 GB to less than 10 GB. The build/release/tests directory drops from
6.8 GB to just 0.6 GB! The build/debug/tests directory is still huge (6 GB)
and could be improved further, but is also less than half of what it used
to be.
Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
Convert the merge_schema() function to use async() to make the code
easier to read and write.
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
From Vlad:
"Currently database always created a SimpleSnitch and ignores the corresponding parameter
provided by the user. This series fixes this situation:
- Changes the snitch creation interface to comply the Java-like interface that
has already been used in a topology_strategy classes family.
- Fix all the places where a SimpleSnitch has been created ignoring the user configuration."
Moved setting of configuration variables after the configuration file
has been read.
Updated the code parsing seeds to comply with configuration file format
- seeds: <ip1>,<ip2>,<ip3>
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>