diff --git a/SOURCES/libmemcached-memaslap-help.patch b/SOURCES/libmemcached-memaslap-help.patch new file mode 100644 index 0000000..3e4348e --- /dev/null +++ b/SOURCES/libmemcached-memaslap-help.patch @@ -0,0 +1,225 @@ +commit 567105e2f3007783cd155846118ad47068110565 +Author: Tomas Korbar +Date: Mon Oct 11 12:26:45 2021 +0200 + + Fix typo in memaslap manpage and help + +diff --git a/clients/memaslap.c b/clients/memaslap.c +index 0290794..d599cc4 100644 +--- a/clients/memaslap.c ++++ b/clients/memaslap.c +@@ -32,7 +32,7 @@ + #include "ms_setting.h" + #include "ms_thread.h" + +-#define PROGRAM_NAME "memslap" ++#define PROGRAM_NAME "memaslap" + #define PROGRAM_DESCRIPTION \ + "Generates workload against memcached servers." + +@@ -130,7 +130,7 @@ static __attribute__((noreturn)) void ms_help_command(const char *command_name, + printf(" %s\n\n", description); + printf( + "Usage:\n" +- " memslap -hV | -s servers [-F config_file] [-t time | -x exe_num] [...]\n\n" ++ " memaslap -hV | -s servers [-F config_file] [-t time | -x exe_num] [...]\n\n" + "Options:\n"); + + for (int x= 0; long_options[x].name; x++) +@@ -146,13 +146,13 @@ static __attribute__((noreturn)) void ms_help_command(const char *command_name, + + printf( + "\nExamples:\n" +- " memslap -s 127.0.0.1:11211 -S 5s\n" +- " memslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b\n" +- " memslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2\n" +- " memslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k\n" +- " memslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40\n" +- " memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m\n" +- " memslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2\n\n"); ++ " memaslap -s 127.0.0.1:11211 -S 5s\n" ++ " memaslap -s 127.0.0.1:11211 -t 2m -v 0.2 -e 0.05 -b\n" ++ " memaslap -s 127.0.0.1:11211 -F config -t 2m -w 40k -S 20s -o 0.2\n" ++ " memaslap -s 127.0.0.1:11211 -F config -t 2m -T 4 -c 128 -d 20 -P 40k\n" ++ " memaslap -s 127.0.0.1:11211 -F config -t 2m -d 50 -a -n 40\n" ++ " memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m\n" ++ " memaslap -s 127.0.0.1:11211,127.0.0.1:11212 -F config -t 2m -p 2\n\n"); + + exit(0); + } /* ms_help_command */ +@@ -286,7 +286,7 @@ static const char *ms_lookup_help(ms_options_t option) + + case OPT_UDP: + return +- "UDP support, default memslap uses TCP, TCP port and UDP port of\n" ++ "UDP support, default memaslap uses TCP, TCP port and UDP port of\n" + " server must be same."; + + case OPT_EXPIRE: +diff --git a/man/memaslap.1 b/man/memaslap.1 +index 1f41484..e884381 100644 +--- a/man/memaslap.1 ++++ b/man/memaslap.1 +@@ -83,11 +83,11 @@ the threads don\(aqt communicate with each other, and there are several socket + connections in each thread. Each connection keeps key size distribution, + value size distribution, and command distribution by itself. + .sp +-You can specify servers via the \fImemslap \-\-servers\fP option or via the ++You can specify servers via the \fImemaslap \-\-servers\fP option or via the + environment variable \fI\%MEMCACHED_SERVERS\fP\&. + .SH FEATURES + .sp +-Memslap is developed to for the following purposes: ++Memaslap is developed to for the following purposes: + .sp + Manages network connections with libevent asynchronously. + .sp +@@ -121,8 +121,8 @@ of memaslap is similar to memcached. Libevent can ensure + memaslap can handle network very efficiently. + .SS Effective implementation of multi\-threads and concurrency + .sp +-Memslap has the similar implementation of multi\-threads to +-memcached. Memslap creates one or more self\-governed threads; ++Memaslap has the similar implementation of multi\-threads to ++memcached. Memaslap creates one or more self\-governed threads; + each thread is bound with one CPU core if the system testss setting CPU + core affinity. + .sp +@@ -131,7 +131,7 @@ each thread has one or more self\-governed concurrencies; and each + concurrency has one or more socket connections. All the concurrencies don’t + communicate with each other even though they are in the same thread. + .sp +-Memslap can create thousands of socket connections, and each ++Memaslap can create thousands of socket connections, and each + concurrency has tens of socket connections. Each concurrency randomly or + sequentially selects one socket connection from its socket connection pool + to run, so memaslap can ensure each concurrency handles one +@@ -144,7 +144,7 @@ In order to improve time efficiency and space efficiency, + memaslap creates a random characters table with 10M characters. All the + suffixes of keys and values are generated from this random characters table. + .sp +-Memslap uses the offset in the character table and the length ++Memaslap uses the offset in the character table and the length + of the string to identify a string. It can save much memory. + Each key contains two parts, a prefix and a suffix. The prefix is an + uint64_t, 8 bytes. In order to verify the data set before, +@@ -152,7 +152,7 @@ memaslap need to ensure each key is unique, so it uses the prefix to identify + a key. The prefix cannot include illegal characters, such as ‘r’, ‘n’, + ‘0’ and ‘ ‘. And memaslap has an algorithm to ensure that. + .sp +-Memslap doesn’t generate all the objects (key\-value pairs) at ++Memaslap doesn’t generate all the objects (key\-value pairs) at + the beginning. It only generates enough objects to fill the task window + (default 10K objects) of each concurrency. Each object has the following + basic information, key prefix, key suffix offset in the character table, key +@@ -164,16 +164,16 @@ time, each concurrency kicks objects out of its window and adds new object + into it. + .SS Simple but useful task scheduling + .sp +-Memslap uses libevent to schedule all the concurrencies of ++Memaslap uses libevent to schedule all the concurrencies of + threads, and each concurrency schedules tasks based on the local task +-window. Memslap assumes that if each concurrency keeps the same ++window. Memaslap assumes that if each concurrency keeps the same + key distribution, value distribution and commands distribution, from + outside, memaslap keeps all the distribution as a whole. + Each task window includes a lot of objects, each object stores its basic + information, such as key, value, expire time, and so on. At any time, all + the objects in the window keep the same and fixed key and value + distribution. If an object is overwritten, the value of the object will be +-updated. Memslap verifies the data or expire\-time according to ++updated. Memaslap verifies the data or expire\-time according to + the object information stored in the task window. + .sp + Libevent selects which concurrency to handle based on a specific network +@@ -201,16 +201,16 @@ test. Each concurrency has one socket connection to each memcached server. + For the implementation, memaslap can set some objects to one + memcached server, and get these objects from the other servers. + .sp +-By default, Memslap does single get. If the user specifies ++By default, Memaslap does single get. If the user specifies + multi\-get option, memaslap will collect enough get commands and + pack and send the commands together. + .sp +-Memslap testss both the ASCII protocol and binary protocol, ++Memaslap testss both the ASCII protocol and binary protocol, + but it runs on the ASCII protocol by default. +-Memslap by default runs on the TCP protocol, but it also ++Memaslap by default runs on the TCP protocol, but it also + tests UDP. Because UDP is unreliable, dropped packages and out\-of\-order +-packages may occur. Memslap creates a memory buffer to handle +-these problems. Memslap tries to read all the response data of ++packages may occur. Memaslap creates a memory buffer to handle ++these problems. Memaslap tries to read all the response data of + one command from the server and reorders the response data. If some packages + get lost, the waiting timeout mechanism can ensure half\-baked packages will + be discarded and the next command will be sent. +@@ -343,7 +343,7 @@ throughput using “\-\-tps” option. + Most of the time, the user does not need to specify the window size. The + default window size is 10k. For Schooner Memcached, the user can specify + different window sizes to get different cache miss rates based on the test +-case. Memslap testss cache miss rate between 0% and 100%. ++case. Memaslap testss cache miss rate between 0% and 100%. + If you use this utility to test the performance of Schooner Memcached, you + can specify a proper window size to get the expected cache miss rate. The + formula for calculating window size is as follows: +@@ -389,7 +389,7 @@ The formula for calculating window size for cache miss rate 5%: + cache_size / concurrency / (key_size + value_size) * 0.7 + .SS Verification + .sp +-Memslap testss both data verification and expire\-time ++Memaslap testss both data verification and expire\-time + verification. The user can use "\-\-verify=" or "\-v" to specify the proportion + of data verification. In theory, it testss 100% data verification. The + user can use "\-\-exp_verify=" or "\-e" to specify the proportion of +@@ -403,9 +403,9 @@ objects are gotten, memaslap will verify the expire\-time and + value. + .SS multi\-servers and multi\-config + .sp +-Memslap testss multi\-servers based on self\-governed thread. ++Memaslap testss multi\-servers based on self\-governed thread. + There is a limitation that the number of servers cannot be greater than the +-number of threads. Memslap assigns one thread to handle one ++number of threads. Memaslap assigns one thread to handle one + server at least. The user can use the "\-\-servers=" or "\-s" option to specify + multi\-servers. + .sp +@@ -445,17 +445,17 @@ For example: + .sp + \-\-stat_freq=20s + .sp +-Memslap will dump the statistics of the commands (get and set) at the frequency of every 20 ++Memaslap will dump the statistics of the commands (get and set) at the frequency of every 20 + seconds. + .sp + For more information on the format of dumping statistic information, refer to “Format of Output” section. + .SS Multi\-get + .sp + The user can use "\-\-division=" or "\-d" to specify multi\-get keys count. +-Memslap by default does single get with TCP. Memslap also testss data ++Memaslap by default does single get with TCP. Memaslap also testss data + verification and expire\-time verification for multi\-get. + .sp +-Memslap testss multi\-get with both TCP and UDP. Because of ++Memaslap testss multi\-get with both TCP and UDP. Because of + the different implementation of the ASCII protocol and binary protocol, + there are some differences between the two. For the ASCII protocol, + memaslap sends one “multi\-get” to the server once. For the +@@ -463,7 +463,7 @@ binary protocol, memaslap sends several single get commands + together as “multi\-get” to the server. + .SS UDP and TCP + .sp +-Memslap testss both UDP and TCP. For TCP, ++Memaslap testss both UDP and TCP. For TCP, + memaslap does not reconnect the memcached server if socket connections are + lost. If all the socket connections are lost or memcached server crashes, + memaslap will exit. If the user specifies the “\-\-reconnect” +@@ -493,7 +493,7 @@ For example: \-\-facebook \-\-division=50 \-\-conn_sock=200 + The above command means that memaslap will do facebook test, + each concurrency has 200 socket TCP connections and one UDP socket. + .sp +-Memslap sets objects with the TCP socket, and multi\-gets 50 ++Memaslap sets objects with the TCP socket, and multi\-gets 50 + objects once with the UDP socket. + .sp + If you specify "\-\-division=50", the key size must be less that 25 bytes diff --git a/SPECS/libmemcached.spec b/SPECS/libmemcached.spec index 07cfb2a..b3aef12 100644 --- a/SPECS/libmemcached.spec +++ b/SPECS/libmemcached.spec @@ -14,7 +14,7 @@ Name: libmemcached Summary: Client library and command line tools for memcached server Version: 1.0.18 -Release: 15%{?dist} +Release: 17%{?dist} License: BSD URL: http://libmemcached.org/ # Original sources: @@ -49,7 +49,7 @@ Patch1: %{libname}-build.patch # Fix typo in memparse man page # https://bugs.launchpad.net/libmemcached/+bug/1675762 Patch2: %{libname}-memparse-man.patch - +Patch3: %{libname}-memaslap-help.patch %description libmemcached is a C/C++ client library and tools for the memcached server @@ -100,6 +100,7 @@ This package contains the %{libname} libraries version %{version}. %patch0 -p1 -b .link %patch1 -p1 -b .build %patch2 -p1 -b .memparse-man +%patch3 -p1 -b .memaslap-help mkdir examples cp -p tests/*.{cc,h} examples/ @@ -187,6 +188,14 @@ make test %changelog +* Mon Oct 25 2021 Tomas Korbar - 1.0.18-17 +- fix also memaslap help text +- Related: rhbz#2008399 + +* Mon Oct 11 2021 Tomas Korbar - 1.0.18-16 +- fix typo in memaslap man page +- Resolves: rhbz#2008399 + * Fri Jul 27 2018 Miroslav Lichvar 1.0.18-15 - fix typo in memparse man page (#1609312)