Skip to content

Commit

Permalink
Reuse VoldemortOpCode
Browse files Browse the repository at this point in the history
  • Loading branch information
vinothchandar committed Jun 22, 2012
1 parent 35f5681 commit f70b3c2
Show file tree
Hide file tree
Showing 10 changed files with 56 additions and 52 deletions.
13 changes: 7 additions & 6 deletions src/java/voldemort/client/ClientConfig.java
Expand Up @@ -31,6 +31,7 @@
import voldemort.client.protocol.RequestFormatType;
import voldemort.cluster.Zone;
import voldemort.cluster.failuredetector.FailureDetectorConfig;
import voldemort.common.VoldemortOpCode;
import voldemort.serialization.DefaultSerializerFactory;
import voldemort.serialization.SerializerFactory;
import voldemort.utils.ConfigurationException;
Expand Down Expand Up @@ -185,27 +186,27 @@ private void setProperties(Properties properties) {
timeoutConfig = new TimeoutConfig(routingTimeoutMs, false);

if(props.containsKey(GETALL_ROUTING_TIMEOUT_MS_PROPERTY))
timeoutConfig.setOperationTimeout(VoldemortOperation.GETALL,
timeoutConfig.setOperationTimeout(VoldemortOpCode.GET_ALL_OP_CODE,
props.getInt(GETALL_ROUTING_TIMEOUT_MS_PROPERTY));

if(props.containsKey(GET_ROUTING_TIMEOUT_MS_PROPERTY))
timeoutConfig.setOperationTimeout(VoldemortOperation.GET,
timeoutConfig.setOperationTimeout(VoldemortOpCode.GET_OP_CODE,
props.getInt(GET_ROUTING_TIMEOUT_MS_PROPERTY));

if(props.containsKey(PUT_ROUTING_TIMEOUT_MS_PROPERTY)) {
long putTimeoutMs = props.getInt(PUT_ROUTING_TIMEOUT_MS_PROPERTY);
timeoutConfig.setOperationTimeout(VoldemortOperation.PUT, putTimeoutMs);
timeoutConfig.setOperationTimeout(VoldemortOpCode.PUT_OP_CODE, putTimeoutMs);
// By default, use the same thing for getVersions() also
timeoutConfig.setOperationTimeout(VoldemortOperation.GETVERSIONS, putTimeoutMs);
timeoutConfig.setOperationTimeout(VoldemortOpCode.GET_VERSION_OP_CODE, putTimeoutMs);
}

// of course, if someone overrides it, we will respect that
if(props.containsKey(GET_VERSIONS_ROUTING_TIMEOUT_MS_PROPERTY))
timeoutConfig.setOperationTimeout(VoldemortOperation.GETVERSIONS,
timeoutConfig.setOperationTimeout(VoldemortOpCode.GET_VERSION_OP_CODE,
props.getInt(GET_VERSIONS_ROUTING_TIMEOUT_MS_PROPERTY));

if(props.containsKey(DELETE_ROUTING_TIMEOUT_MS_PROPERTY))
timeoutConfig.setOperationTimeout(VoldemortOperation.DELETE,
timeoutConfig.setOperationTimeout(VoldemortOpCode.DELETE_OP_CODE,
props.getInt(DELETE_ROUTING_TIMEOUT_MS_PROPERTY));

if(props.containsKey(ALLOW_PARTIAL_GETALLS_PROPERTY))
Expand Down
26 changes: 14 additions & 12 deletions src/java/voldemort/client/TimeoutConfig.java
Expand Up @@ -2,13 +2,15 @@

import java.util.HashMap;

import voldemort.common.VoldemortOpCode;

/**
* Encapsulates the timeouts for various voldemort operations
*
*/
public class TimeoutConfig {

private HashMap<VoldemortOperation, Long> timeoutMap;
private HashMap<Byte, Long> timeoutMap;

private boolean partialGetAllAllowed;

Expand All @@ -27,22 +29,22 @@ public TimeoutConfig(long getTimeout,
long getAllTimeout,
long getVersionsTimeout,
boolean allowPartialGetAlls) {
timeoutMap = new HashMap<VoldemortOperation, Long>();
timeoutMap.put(VoldemortOperation.GET, getTimeout);
timeoutMap.put(VoldemortOperation.PUT, putTimeout);
timeoutMap.put(VoldemortOperation.DELETE, deleteTimeout);
timeoutMap.put(VoldemortOperation.GETALL, getAllTimeout);
timeoutMap.put(VoldemortOperation.GETVERSIONS, getVersionsTimeout);
timeoutMap = new HashMap<Byte, Long>();
timeoutMap.put(VoldemortOpCode.GET_OP_CODE, getTimeout);
timeoutMap.put(VoldemortOpCode.PUT_OP_CODE, putTimeout);
timeoutMap.put(VoldemortOpCode.DELETE_OP_CODE, deleteTimeout);
timeoutMap.put(VoldemortOpCode.GET_ALL_OP_CODE, getAllTimeout);
timeoutMap.put(VoldemortOpCode.GET_VERSION_OP_CODE, getVersionsTimeout);
setPartialGetAllAllowed(allowPartialGetAlls);
}

public long getOperationTimeout(VoldemortOperation operation) {
assert timeoutMap.containsKey(operation);
return timeoutMap.get(operation);
public long getOperationTimeout(Byte opCode) {
assert timeoutMap.containsKey(opCode);
return timeoutMap.get(opCode);
}

public void setOperationTimeout(VoldemortOperation operation, long timeoutMs) {
timeoutMap.put(operation, timeoutMs);
public void setOperationTimeout(Byte opCode, long timeoutMs) {
timeoutMap.put(opCode, timeoutMs);
}

public boolean isPartialGetAllAllowed() {
Expand Down
Expand Up @@ -29,7 +29,7 @@

import voldemort.VoldemortException;
import voldemort.client.protocol.RequestFormat;
import voldemort.serialization.VoldemortOpCode;
import voldemort.common.VoldemortOpCode;
import voldemort.server.RequestRoutingType;
import voldemort.store.ErrorCodeMapper;
import voldemort.store.StoreUtils;
Expand Down
Expand Up @@ -14,7 +14,7 @@
* the License.
*/

package voldemort.serialization;
package voldemort.common;

public class VoldemortOpCode {

Expand Down
1 change: 1 addition & 0 deletions src/java/voldemort/serialization/VoldemortOperation.java
Expand Up @@ -22,6 +22,7 @@
import java.io.DataOutputStream;
import java.io.IOException;

import voldemort.common.VoldemortOpCode;
import voldemort.utils.ByteUtils;
import voldemort.versioning.VectorClock;
import voldemort.versioning.Version;
Expand Down
14 changes: 7 additions & 7 deletions src/java/voldemort/server/VoldemortConfig.java
Expand Up @@ -23,9 +23,9 @@
import java.util.Properties;

import voldemort.client.TimeoutConfig;
import voldemort.client.VoldemortOperation;
import voldemort.client.protocol.RequestFormatType;
import voldemort.cluster.failuredetector.FailureDetectorConfig;
import voldemort.common.VoldemortOpCode;
import voldemort.server.scheduler.slop.StreamingSlopPusherJob;
import voldemort.store.bdb.BdbStorageConfiguration;
import voldemort.store.memory.CacheStorageConfiguration;
Expand Down Expand Up @@ -279,19 +279,19 @@ public VoldemortConfig(Props props) {
this.clientConnectionTimeoutMs = props.getInt("client.connection.timeout.ms", 500);
this.clientRoutingTimeoutMs = props.getInt("client.routing.timeout.ms", 15000);
this.clientTimeoutConfig = new TimeoutConfig(this.clientRoutingTimeoutMs, false);
this.clientTimeoutConfig.setOperationTimeout(VoldemortOperation.GET,
this.clientTimeoutConfig.setOperationTimeout(VoldemortOpCode.GET_OP_CODE,
props.getInt("client.routing.get.timeout.ms",
this.clientRoutingTimeoutMs));
this.clientTimeoutConfig.setOperationTimeout(VoldemortOperation.GETALL,
this.clientTimeoutConfig.setOperationTimeout(VoldemortOpCode.GET_ALL_OP_CODE,
props.getInt("client.routing.getall.timeout.ms",
this.clientRoutingTimeoutMs));
this.clientTimeoutConfig.setOperationTimeout(VoldemortOperation.PUT,
this.clientTimeoutConfig.setOperationTimeout(VoldemortOpCode.PUT_OP_CODE,
props.getInt("client.routing.put.timeout.ms",
this.clientRoutingTimeoutMs));
this.clientTimeoutConfig.setOperationTimeout(VoldemortOperation.GETVERSIONS,
this.clientTimeoutConfig.setOperationTimeout(VoldemortOpCode.GET_VERSION_OP_CODE,
props.getLong("client.routing.getversions.timeout.ms",
this.clientTimeoutConfig.getOperationTimeout(VoldemortOperation.PUT)));
this.clientTimeoutConfig.setOperationTimeout(VoldemortOperation.DELETE,
this.clientTimeoutConfig.getOperationTimeout(VoldemortOpCode.PUT_OP_CODE)));
this.clientTimeoutConfig.setOperationTimeout(VoldemortOpCode.DELETE_OP_CODE,
props.getInt("client.routing.delete.timeout.ms",
this.clientRoutingTimeoutMs));
this.clientTimeoutConfig.setPartialGetAllAllowed(props.getBoolean("client.routing.allow.partial.getall",
Expand Down
Expand Up @@ -12,7 +12,7 @@
import org.apache.log4j.Logger;

import voldemort.VoldemortException;
import voldemort.serialization.VoldemortOpCode;
import voldemort.common.VoldemortOpCode;
import voldemort.server.RequestRoutingType;
import voldemort.server.StoreRepository;
import voldemort.server.protocol.AbstractRequestHandler;
Expand Down

0 comments on commit f70b3c2

Please sign in to comment.