@Override public long estimateMemorySize(HankResponse item) { if (item.is_set_value()) { return item.get_value().length; } else { return 1; } } }
public byte[] get_value() { set_value(org.apache.thrift.TBaseHelper.rightSize(buffer_for_value())); ByteBuffer b = buffer_for_value(); return b == null ? null : b.array(); }
@Override public HankResponse get(String domainName, ByteBuffer key) { Map<ByteBuffer, HankResponse> domain; domain = storage.get(domainName); if (domain == null) { return HankResponse.xception(HankException.internal_error("Could not find domain '" + domainName + "'")); } HankResponse result = domain.get(key); if (result == null) { return HankResponse.not_found(true); } else { return result; } }
public static HankResponse not_found(boolean value) { HankResponse x = new HankResponse(); x.set_not_found(value); return x; }
public static HankResponse value(ByteBuffer value) { HankResponse x = new HankResponse(); x.set_value(value); return x; }
if (response.is_set_value()) { ByteBuffer valueBuffer = response.buffer_for_value(); response.set_value(BytesUtils.byteBufferDeepCopy(valueBuffer)); result.clear(); } else {
if (responseCache.isEnabled() && response.is_set_not_found() || response.is_set_value()) { responseCache.put( new DomainAndKey(domain, BytesUtils.byteBufferDeepCopy(key)), response.deepCopy()); if (response.is_set_xception()) { LOG.error(getLogPrefix() + "Failed to perform get: domain " + domain.getName() + ", partition " + partition + ", key: " + BytesUtils.bytesToHexString(key) + ", partitioner: " + domain.getPartitioner() + ", response: " + response);
@Override public void read(org.apache.thrift.protocol.TProtocol prot, get_result struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; BitSet incoming = iprot.readBitSet(1); if (incoming.get(0)) { struct.success = new HankResponse(); struct.success.read(iprot); struct.set_success_isSet(true); } } }
@Override public void run() { ByteBuffer[] keys = new ByteBuffer[numReqs]; Random r = new Random(); for (int i = 0; i < numReqs; i++) { final byte[] bs = new byte[keyLength]; keys[i] = ByteBuffer.wrap(bs); r.nextBytes(bs); } ready = true; lock.readLock().lock(); runStart = System.currentTimeMillis(); for (int i = 0; i < numReqs; i++) { long start = System.currentTimeMillis(); final HankResponse resp = client.get(domainName, keys[i]); if (resp.is_set_xception()) { LOG.error(resp.toString()); } long end = System.currentTimeMillis(); times.add(end - start); if (resp.isSet(HankResponse._Fields.VALUE)) { hits++; } } runEnd = System.currentTimeMillis(); } }
public void put(String domain, byte[] key, ByteBuffer value) { put(domain, key, HankResponse.value(value)); }
public HankResponse getResponse() { try { this.get(); } catch (Throwable t) { String errMsg = "Throwable while executing future GET: " + t.toString(); LOG.error(errMsg, t); return HankResponse.xception(HankException.internal_error(errMsg)); } return runnable.getResponse(); } }
if (result.is_set_xception()) { throw new IOException("Server failed to execute GET: " + result.get_xception()); } else { return result;
public static HankResponse xception(HankException value) { HankResponse x = new HankResponse(); x.set_xception(value); return x; }
public void set_value(byte[] value) { set_value(ByteBuffer.wrap(value)); }
public HankResponse deepCopy() { return new HankResponse(this); }
public boolean equals(Object other) { if (other instanceof HankResponse) { return equals((HankResponse)other); } else { return false; } }
@Override public void read(org.apache.thrift.protocol.TProtocol prot, get_result struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; BitSet incoming = iprot.readBitSet(1); if (incoming.get(0)) { struct.success = new HankResponse(); struct.success.read(iprot); struct.set_success_isSet(true); } } }
public void put(String domain, byte[] key, byte[] value) { put(domain, key, HankResponse.value(value)); }
public static HankResponse value(byte[] value) { HankResponse x = new HankResponse(); x.set_value(ByteBuffer.wrap(value)); return x; }
private HankResponse _get(PartitionServerHandler partitionServerHandler, int domainId, ByteBuffer key, ReaderResult result) { DomainAccessor domainAccessor = partitionServerHandler.getDomainAccessor(domainId); if (domainAccessor == null) { return NO_SUCH_DOMAIN; } try { return domainAccessor.get(key, result); } catch (IOException e) { String errMsg = String.format( "Exception during GET. Domain: %s (domain #%d) Key: %s", domainAccessor.getName(), domainId, BytesUtils.bytesToHexString(key)); LOG.error(errMsg, e); return HankResponse.xception( HankException.internal_error(errMsg + " " + (e.getMessage() != null ? e.getMessage() : ""))); } catch (Throwable t) { String errMsg = "Throwable during GET"; LOG.error(errMsg, t); return HankResponse.xception( HankException.internal_error(errMsg + " " + (t.getMessage() != null ? t.getMessage() : ""))); } }