Skip to content
Snippets Groups Projects
Commit b0ff7270 authored by sashas83's avatar sashas83 Committed by Sean Busbey
Browse files

[memcached] support binary protocol (#965)

Adding support for memcached binary protocol as described in
https://github.com/memcached/memcached/blob/master/doc/protocol.txt.

Protocol can be set via memcached.protocol property of YCSB memcached workload. if specified
protocol must be "binary" or "text". If unspecified text version is used.
parent ddde8e3c
No related branches found
No related tags found
No related merge requests found
...@@ -91,6 +91,10 @@ A sample configuration is provided in ...@@ -91,6 +91,10 @@ A sample configuration is provided in
What to do with failures; this is one of `net.spy.memcached.FailureMode` enum What to do with failures; this is one of `net.spy.memcached.FailureMode` enum
values, which are currently: `Redistribute`, `Retry`, or `Cancel`. values, which are currently: `Redistribute`, `Retry`, or `Cancel`.
- `memcached.protocol`
Set to 'binary' to use memcached binary protocol. Set to 'text' or omit this field
to use memcached text protocol
You can set properties on the command line via `-p`, e.g.: You can set properties on the command line via `-p`, e.g.:
./bin/ycsb load memcached -s -P workloads/workloada \ ./bin/ycsb load memcached -s -P workloads/workloada \
......
...@@ -98,6 +98,10 @@ public class MemcachedClient extends DB { ...@@ -98,6 +98,10 @@ public class MemcachedClient extends DB {
public static final FailureMode FAILURE_MODE_PROPERTY_DEFAULT = public static final FailureMode FAILURE_MODE_PROPERTY_DEFAULT =
FailureMode.Redistribute; FailureMode.Redistribute;
public static final String PROTOCOL_PROPERTY = "memcached.protocol";
public static final ConnectionFactoryBuilder.Protocol DEFAULT_PROTOCOL =
ConnectionFactoryBuilder.Protocol.TEXT;
/** /**
* The MemcachedClient implementation that will be used to communicate * The MemcachedClient implementation that will be used to communicate
* with the memcached server. * with the memcached server.
...@@ -142,6 +146,11 @@ public class MemcachedClient extends DB { ...@@ -142,6 +146,11 @@ public class MemcachedClient extends DB {
connectionFactoryBuilder.setOpTimeout(Integer.parseInt( connectionFactoryBuilder.setOpTimeout(Integer.parseInt(
getProperties().getProperty(OP_TIMEOUT_PROPERTY, DEFAULT_OP_TIMEOUT))); getProperties().getProperty(OP_TIMEOUT_PROPERTY, DEFAULT_OP_TIMEOUT)));
String protocolString = getProperties().getProperty(PROTOCOL_PROPERTY);
connectionFactoryBuilder.setProtocol(
protocolString == null ? DEFAULT_PROTOCOL
: ConnectionFactoryBuilder.Protocol.valueOf(protocolString.toUpperCase()));
String failureString = getProperties().getProperty(FAILURE_MODE_PROPERTY); String failureString = getProperties().getProperty(FAILURE_MODE_PROPERTY);
connectionFactoryBuilder.setFailureMode( connectionFactoryBuilder.setFailureMode(
failureString == null ? FAILURE_MODE_PROPERTY_DEFAULT failureString == null ? FAILURE_MODE_PROPERTY_DEFAULT
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment