Package net.rubyeye.xmemcached.impl
Class Optimizer
java.lang.Object
net.rubyeye.xmemcached.impl.Optimizer
- All Implemented Interfaces:
OptimizerMBean
,MemcachedOptimizer
Memcached command optimizer,merge single-get comands to multi-get command,
merge ByteBuffers to fit the socket's sendBufferSize etc.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
private static class
(package private) static interface
(package private) static class
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static ThreadLocal
<Optimizer.BinaryGetQCollector> private static final ThreadLocal
<Optimizer.BinarySetQCollector> static final int
private static final org.slf4j.Logger
private static final int
private int
private boolean
private boolean
private final boolean
private Protocol
private static ThreadLocal
<Optimizer.KeyStringCollector> private final ThreadLocal
<List<Command>> -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprivate Optimizer.CommandCollector
int
boolean
boolean
private final Command
mergeBuffer
(Command firstCommand, Queue writeQueue, Queue<Command> executingCmds, int sendBufferSize) private final Command
mergeGetCommands
(Command currentCmd, Queue writeQueue, Queue<Command> executingCmds, CommandType expectedCommandType) private final Command
mergeSetCommands
(Command currentCmd, Queue writeQueue, Queue<Command> executingCmds, CommandType expectedCommandType, int sendBufferSize) private Command
newMergedCommand
(Map<Object, Command> mergeCommands, int mergeCount, Optimizer.CommandCollector commandCollector, CommandType commandType) final Command
optimiezeGet
(Queue writeQueue, Queue<Command> executingCmds, Command optimiezeCommand) Merge get operation to multi-get operationfinal Command
optimiezeMergeBuffer
(Command optimiezeCommand, Queue writeQueue, Queue<Command> executingCmds, int sendBufferSize) merge buffers to fit socket's send buffer sizefinal Command
optimiezeSet
(Queue writeQueue, Queue<Command> executingCmds, Command optimiezeCommand, int sendBufferSize) optimize
(Command currentCommand, Queue writeQueue, Queue<Command> executingCmds, int sendBufferSize) void
setBufferAllocator
(BufferAllocator bufferAllocator) void
setMergeFactor
(int mergeFactor) void
setOptimizeGet
(boolean optimiezeGet) void
setOptimizeMergeBuffer
(boolean optimiezeMergeBuffer)
-
Field Details
-
MARGIN
private static final int MARGIN- See Also:
-
DEFAULT_MERGE_FACTOR
public static final int DEFAULT_MERGE_FACTOR- See Also:
-
mergeFactor
private int mergeFactor -
optimiezeGet
private boolean optimiezeGet -
optimiezeSet
private final boolean optimiezeSet- See Also:
-
optimiezeMergeBuffer
private boolean optimiezeMergeBuffer -
log
private static final org.slf4j.Logger log -
protocol
-
threadLocal
-
BIN_SET_CMD_COLLECTOR_THREAD_LOCAL
-
TEXT_GET_CMD_COLLECTOR_THREAD_LOCAL
-
BIN_GET_CMD_COLLECTOR_THREAD_LOCAL
-
-
Constructor Details
-
Optimizer
-
-
Method Details
-
setBufferAllocator
- Specified by:
setBufferAllocator
in interfaceMemcachedOptimizer
-
getMergeFactor
public int getMergeFactor()- Specified by:
getMergeFactor
in interfaceOptimizerMBean
-
setMergeFactor
public void setMergeFactor(int mergeFactor) - Specified by:
setMergeFactor
in interfaceOptimizerMBean
-
isOptimizeGet
public boolean isOptimizeGet()- Specified by:
isOptimizeGet
in interfaceOptimizerMBean
-
setOptimizeGet
public void setOptimizeGet(boolean optimiezeGet) - Specified by:
setOptimizeGet
in interfaceOptimizerMBean
-
isOptimizeMergeBuffer
public boolean isOptimizeMergeBuffer()- Specified by:
isOptimizeMergeBuffer
in interfaceOptimizerMBean
-
setOptimizeMergeBuffer
public void setOptimizeMergeBuffer(boolean optimiezeMergeBuffer) - Specified by:
setOptimizeMergeBuffer
in interfaceOptimizerMBean
-
optimize
public Command optimize(Command currentCommand, Queue writeQueue, Queue<Command> executingCmds, int sendBufferSize) - Specified by:
optimize
in interfaceMemcachedOptimizer
-
optimiezeMergeBuffer
public final Command optimiezeMergeBuffer(Command optimiezeCommand, Queue writeQueue, Queue<Command> executingCmds, int sendBufferSize) merge buffers to fit socket's send buffer size- Parameters:
currentCommand
-- Returns:
- Throws:
InterruptedException
-
optimiezeGet
public final Command optimiezeGet(Queue writeQueue, Queue<Command> executingCmds, Command optimiezeCommand) Merge get operation to multi-get operation- Parameters:
currentCmd
-mergeCommands
-- Returns:
- Throws:
InterruptedException
-
optimiezeSet
-
mergeBuffer
-
getLocalList
-
mergeGetCommands
-
mergeSetCommands
-
createGetCommandCollector
-
newMergedCommand
private Command newMergedCommand(Map<Object, Command> mergeCommands, int mergeCount, Optimizer.CommandCollector commandCollector, CommandType commandType)
-