[PATCH] vinyl: improve latency stat

Vladimir Davydov vdavydov.dev at gmail.com
Sat Mar 3 13:33:37 MSK 2018


On Fri, Mar 02, 2018 at 03:17:36PM +0300, Vladimir Davydov wrote:
> To facilitate performance analysis, let us
>  - Report not only 99th percentile, but also 50th, 75th, 90th, and 95th.
>  - Add microsecond-granular buckets to the latency histogram.
>  - Use clock_monotonic() instead of ev_monotonic_now() for measuring
>    latency as it is more precise and allows to catch CPU-bound stalls.
>    On Linux the syscall is implemented using VDSO so it shouldn't
>    introduce any noticable performance penalty.
> 
> Closes #3207
> ---
> https://github.com/tarantool/tarantool/issues/3207
> https://github.com/tarantool/tarantool/tree/gh-3207-vy-improve-latency-stat
> 
>  src/box/vinyl.c            |  9 ++++++++-
>  src/box/vy_point_lookup.c  |  5 +++--
>  src/box/vy_read_iterator.c |  9 ++++++---
>  src/latency.c              | 13 ++++++-------
>  src/latency.h              |  3 ++-
>  5 files changed, 25 insertions(+), 14 deletions(-)

This patch breaks compilation on CentOS 6 because of missing lrt
dependency. I fixed it on the branch:

diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 8ab09e96..ee9f4421 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -111,6 +111,9 @@ target_link_libraries(core
     ${LIBCORO_LIBRARIES}
     ${MSGPUCK_LIBRARIES}
 )
+if (TARGET_OS_LINUX)
+    target_link_libraries(core rt)
+endif()
 
 add_library(stat STATIC rmean.c latency.c histogram.c)
 target_link_libraries(stat core)



More information about the Tarantool-patches mailing list