Author: ecn Date: Thu Jan 24 18:37:18 2013 New Revision: 1438121 URL: http://svn.apache.org/viewvc?rev=1438121&view=rev Log: ACCUMULO-969 added options for the batchwriter
Added: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java (with props) Modified: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/BatchScanOptions.java accumulo/trunk/proxy/src/main/thrift/proxy.thrift accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyReadWrite.java Modified: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java (original) +++ accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/ProxyServer.java Thu Jan 24 18:37:18 2013 @@ -81,6 +81,7 @@ import org.apache.accumulo.proxy.thrift. import org.apache.accumulo.proxy.thrift.UnknownScanner; import org.apache.accumulo.proxy.thrift.UnknownWriter; import org.apache.accumulo.proxy.thrift.UserPass; +import org.apache.accumulo.proxy.thrift.WriterOptions; import org.apache.hadoop.io.Text; import org.apache.thrift.TException; @@ -733,17 +734,17 @@ public class ProxyServer implements Accu try { Connector connector = getConnector(userpass); - int batchSize = 10; + int threads = 10; Authorizations auth; if (opts != null && opts.isSetAuthorizations()) { auth = getAuthorizations(opts.authorizations); } else { auth = connector.securityOperations().getUserAuthorizations(userpass.getUsername()); } - if (opts != null && opts.isSetBufferSize() && opts.bufferSize > 0) - batchSize = opts.bufferSize; + if (opts != null && opts.threads > 0) + threads = opts.threads; - BatchScanner scanner = connector.createBatchScanner(tableName, auth, batchSize); + BatchScanner scanner = connector.createBatchScanner(tableName, auth, threads); if (opts != null) { if (opts.iterators != null) { @@ -837,7 +838,7 @@ public class ProxyServer implements Accu @Override public void updateAndFlush(UserPass userpass, String tableName, Map<ByteBuffer,List<ColumnUpdate>> cells) throws TException { try { - BatchWriter writer = getWriter(userpass, tableName); + BatchWriter writer = getWriter(userpass, tableName, null); addCellsToWriter(cells, writer); writer.flush(); writer.close(); @@ -885,9 +886,9 @@ public class ProxyServer implements Accu } @Override - public String createWriter(UserPass userpass, String tableName) throws TException { + public String createWriter(UserPass userpass, String tableName, WriterOptions opts) throws TException { try { - BatchWriter writer = getWriter(userpass, tableName); + BatchWriter writer = getWriter(userpass, tableName, opts); UUID uuid = UUID.randomUUID(); writerCache.put(uuid, writer); return uuid.toString(); @@ -936,8 +937,19 @@ public class ProxyServer implements Accu } } - private BatchWriter getWriter(UserPass userpass, String tableName) throws Exception { - return getConnector(userpass).createBatchWriter(tableName, new BatchWriterConfig()); + private BatchWriter getWriter(UserPass userpass, String tableName, WriterOptions opts) throws Exception { + BatchWriterConfig cfg = new BatchWriterConfig(); + if (opts != null) { + if (opts.maxMemory != 0) + cfg.setMaxMemory(opts.maxMemory); + if (opts.threads != 0) + cfg.setMaxWriteThreads(opts.threads); + if (opts.timeoutMs != 0) + cfg.setTimeout(opts.timeoutMs, TimeUnit.MILLISECONDS); + if (opts.latencyMs != 0) + cfg.setMaxLatency(opts.latencyMs, TimeUnit.MILLISECONDS); + } + return getConnector(userpass).createBatchWriter(tableName, cfg); } private IteratorSetting getIteratorSetting(org.apache.accumulo.proxy.thrift.IteratorSetting setting) { Modified: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java (original) +++ accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/TestProxyClient.java Thu Jan 24 18:37:18 2013 @@ -114,7 +114,7 @@ public class TestProxyClient { start = new Date(); then = new Date(); mutations.clear(); - String writer = tpc.proxy().createWriter(userpass, testTable); + String writer = tpc.proxy().createWriter(userpass, testTable, null); for (int i = 0; i < maxInserts; i++) { String result = String.format(format, i); Key pkey = new Key(); Modified: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java (original) +++ accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java Thu Jan 24 18:37:18 2013 @@ -178,7 +178,7 @@ import org.slf4j.LoggerFactory; public void updateAndFlush(UserPass userpass, String tableName, Map<ByteBuffer,List<ColumnUpdate>> cells) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException; - public String createWriter(UserPass userpass, String tableName) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException; + public String createWriter(UserPass userpass, String tableName, WriterOptions opts) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException; public void writer_update(String writer, Map<ByteBuffer,List<ColumnUpdate>> cells) throws org.apache.thrift.TException; @@ -322,7 +322,7 @@ import org.slf4j.LoggerFactory; public void updateAndFlush(UserPass userpass, String tableName, Map<ByteBuffer,List<ColumnUpdate>> cells, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.updateAndFlush_call> resultHandler) throws org.apache.thrift.TException; - public void createWriter(UserPass userpass, String tableName, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.createWriter_call> resultHandler) throws org.apache.thrift.TException; + public void createWriter(UserPass userpass, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.createWriter_call> resultHandler) throws org.apache.thrift.TException; public void writer_update(String writer, Map<ByteBuffer,List<ColumnUpdate>> cells, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.writer_update_call> resultHandler) throws org.apache.thrift.TException; @@ -2259,17 +2259,18 @@ import org.slf4j.LoggerFactory; return; } - public String createWriter(UserPass userpass, String tableName) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException + public String createWriter(UserPass userpass, String tableName, WriterOptions opts) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException { - send_createWriter(userpass, tableName); + send_createWriter(userpass, tableName, opts); return recv_createWriter(); } - public void send_createWriter(UserPass userpass, String tableName) throws org.apache.thrift.TException + public void send_createWriter(UserPass userpass, String tableName, WriterOptions opts) throws org.apache.thrift.TException { createWriter_args args = new createWriter_args(); args.setUserpass(userpass); args.setTableName(tableName); + args.setOpts(opts); sendBase("createWriter", args); } @@ -4824,9 +4825,9 @@ import org.slf4j.LoggerFactory; } } - public void createWriter(UserPass userpass, String tableName, org.apache.thrift.async.AsyncMethodCallback<createWriter_call> resultHandler) throws org.apache.thrift.TException { + public void createWriter(UserPass userpass, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback<createWriter_call> resultHandler) throws org.apache.thrift.TException { checkReady(); - createWriter_call method_call = new createWriter_call(userpass, tableName, resultHandler, this, ___protocolFactory, ___transport); + createWriter_call method_call = new createWriter_call(userpass, tableName, opts, resultHandler, this, ___protocolFactory, ___transport); this.___currentMethod = method_call; ___manager.call(method_call); } @@ -4834,10 +4835,12 @@ import org.slf4j.LoggerFactory; public static class createWriter_call extends org.apache.thrift.async.TAsyncMethodCall { private UserPass userpass; private String tableName; - public createWriter_call(UserPass userpass, String tableName, org.apache.thrift.async.AsyncMethodCallback<createWriter_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { + private WriterOptions opts; + public createWriter_call(UserPass userpass, String tableName, WriterOptions opts, org.apache.thrift.async.AsyncMethodCallback<createWriter_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException { super(client, protocolFactory, transport, resultHandler, false); this.userpass = userpass; this.tableName = tableName; + this.opts = opts; } public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException { @@ -4845,6 +4848,7 @@ import org.slf4j.LoggerFactory; createWriter_args args = new createWriter_args(); args.setUserpass(userpass); args.setTableName(tableName); + args.setOpts(opts); args.write(prot); prot.writeMessageEnd(); } @@ -6810,7 +6814,7 @@ import org.slf4j.LoggerFactory; public createWriter_result getResult(I iface, createWriter_args args) throws org.apache.thrift.TException { createWriter_result result = new createWriter_result(); try { - result.success = iface.createWriter(args.userpass, args.tableName); + result.success = iface.createWriter(args.userpass, args.tableName, args.opts); } catch (AccumuloException outch1) { result.outch1 = outch1; } catch (AccumuloSecurityException ouch2) { @@ -77045,6 +77049,7 @@ import org.slf4j.LoggerFactory; private static final org.apache.thrift.protocol.TField USERPASS_FIELD_DESC = new org.apache.thrift.protocol.TField("userpass", org.apache.thrift.protocol.TType.STRUCT, (short)1); private static final org.apache.thrift.protocol.TField TABLE_NAME_FIELD_DESC = new org.apache.thrift.protocol.TField("tableName", org.apache.thrift.protocol.TType.STRING, (short)2); + private static final org.apache.thrift.protocol.TField OPTS_FIELD_DESC = new org.apache.thrift.protocol.TField("opts", org.apache.thrift.protocol.TType.STRUCT, (short)3); private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); static { @@ -77054,11 +77059,13 @@ import org.slf4j.LoggerFactory; public UserPass userpass; // required public String tableName; // required + public WriterOptions opts; // required /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { USERPASS((short)1, "userpass"), - TABLE_NAME((short)2, "tableName"); + TABLE_NAME((short)2, "tableName"), + OPTS((short)3, "opts"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); @@ -77077,6 +77084,8 @@ import org.slf4j.LoggerFactory; return USERPASS; case 2: // TABLE_NAME return TABLE_NAME; + case 3: // OPTS + return OPTS; default: return null; } @@ -77124,6 +77133,8 @@ import org.slf4j.LoggerFactory; new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserPass.class))); tmpMap.put(_Fields.TABLE_NAME, new org.apache.thrift.meta_data.FieldMetaData("tableName", org.apache.thrift.TFieldRequirementType.DEFAULT, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))); + tmpMap.put(_Fields.OPTS, new org.apache.thrift.meta_data.FieldMetaData("opts", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, WriterOptions.class))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(createWriter_args.class, metaDataMap); } @@ -77133,11 +77144,13 @@ import org.slf4j.LoggerFactory; public createWriter_args( UserPass userpass, - String tableName) + String tableName, + WriterOptions opts) { this(); this.userpass = userpass; this.tableName = tableName; + this.opts = opts; } /** @@ -77150,6 +77163,9 @@ import org.slf4j.LoggerFactory; if (other.isSetTableName()) { this.tableName = other.tableName; } + if (other.isSetOpts()) { + this.opts = new WriterOptions(other.opts); + } } public createWriter_args deepCopy() { @@ -77160,6 +77176,7 @@ import org.slf4j.LoggerFactory; public void clear() { this.userpass = null; this.tableName = null; + this.opts = null; } public UserPass getUserpass() { @@ -77210,6 +77227,30 @@ import org.slf4j.LoggerFactory; } } + public WriterOptions getOpts() { + return this.opts; + } + + public createWriter_args setOpts(WriterOptions opts) { + this.opts = opts; + return this; + } + + public void unsetOpts() { + this.opts = null; + } + + /** Returns true if field opts is set (has been assigned a value) and false otherwise */ + public boolean isSetOpts() { + return this.opts != null; + } + + public void setOptsIsSet(boolean value) { + if (!value) { + this.opts = null; + } + } + public void setFieldValue(_Fields field, Object value) { switch (field) { case USERPASS: @@ -77228,6 +77269,14 @@ import org.slf4j.LoggerFactory; } break; + case OPTS: + if (value == null) { + unsetOpts(); + } else { + setOpts((WriterOptions)value); + } + break; + } } @@ -77239,6 +77288,9 @@ import org.slf4j.LoggerFactory; case TABLE_NAME: return getTableName(); + case OPTS: + return getOpts(); + } throw new IllegalStateException(); } @@ -77254,6 +77306,8 @@ import org.slf4j.LoggerFactory; return isSetUserpass(); case TABLE_NAME: return isSetTableName(); + case OPTS: + return isSetOpts(); } throw new IllegalStateException(); } @@ -77289,6 +77343,15 @@ import org.slf4j.LoggerFactory; return false; } + boolean this_present_opts = true && this.isSetOpts(); + boolean that_present_opts = true && that.isSetOpts(); + if (this_present_opts || that_present_opts) { + if (!(this_present_opts && that_present_opts)) + return false; + if (!this.opts.equals(that.opts)) + return false; + } + return true; } @@ -77325,6 +77388,16 @@ import org.slf4j.LoggerFactory; return lastComparison; } } + lastComparison = Boolean.valueOf(isSetOpts()).compareTo(typedOther.isSetOpts()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetOpts()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.opts, typedOther.opts); + if (lastComparison != 0) { + return lastComparison; + } + } return 0; } @@ -77360,6 +77433,14 @@ import org.slf4j.LoggerFactory; sb.append(this.tableName); } first = false; + if (!first) sb.append(", "); + sb.append("opts:"); + if (this.opts == null) { + sb.append("null"); + } else { + sb.append(this.opts); + } + first = false; sb.append(")"); return sb.toString(); } @@ -77370,6 +77451,9 @@ import org.slf4j.LoggerFactory; if (userpass != null) { userpass.validate(); } + if (opts != null) { + opts.validate(); + } } private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { @@ -77423,6 +77507,15 @@ import org.slf4j.LoggerFactory; org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; + case 3: // OPTS + if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) { + struct.opts = new WriterOptions(); + struct.opts.read(iprot); + struct.setOptsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; default: org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -77448,6 +77541,11 @@ import org.slf4j.LoggerFactory; oprot.writeString(struct.tableName); oprot.writeFieldEnd(); } + if (struct.opts != null) { + oprot.writeFieldBegin(OPTS_FIELD_DESC); + struct.opts.write(oprot); + oprot.writeFieldEnd(); + } oprot.writeFieldStop(); oprot.writeStructEnd(); } @@ -77472,19 +77570,25 @@ import org.slf4j.LoggerFactory; if (struct.isSetTableName()) { optionals.set(1); } - oprot.writeBitSet(optionals, 2); + if (struct.isSetOpts()) { + optionals.set(2); + } + oprot.writeBitSet(optionals, 3); if (struct.isSetUserpass()) { struct.userpass.write(oprot); } if (struct.isSetTableName()) { oprot.writeString(struct.tableName); } + if (struct.isSetOpts()) { + struct.opts.write(oprot); + } } @Override public void read(org.apache.thrift.protocol.TProtocol prot, createWriter_args struct) throws org.apache.thrift.TException { TTupleProtocol iprot = (TTupleProtocol) prot; - BitSet incoming = iprot.readBitSet(2); + BitSet incoming = iprot.readBitSet(3); if (incoming.get(0)) { struct.userpass = new UserPass(); struct.userpass.read(iprot); @@ -77494,6 +77598,11 @@ import org.slf4j.LoggerFactory; struct.tableName = iprot.readString(); struct.setTableNameIsSet(true); } + if (incoming.get(2)) { + struct.opts = new WriterOptions(); + struct.opts.read(iprot); + struct.setOptsIsSet(true); + } } } Modified: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/BatchScanOptions.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/BatchScanOptions.java?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/BatchScanOptions.java (original) +++ accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/BatchScanOptions.java Thu Jan 24 18:37:18 2013 @@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory; private static final org.apache.thrift.protocol.TField RANGES_FIELD_DESC = new org.apache.thrift.protocol.TField("ranges", org.apache.thrift.protocol.TType.LIST, (short)2); private static final org.apache.thrift.protocol.TField COLUMNS_FIELD_DESC = new org.apache.thrift.protocol.TField("columns", org.apache.thrift.protocol.TType.LIST, (short)3); private static final org.apache.thrift.protocol.TField ITERATORS_FIELD_DESC = new org.apache.thrift.protocol.TField("iterators", org.apache.thrift.protocol.TType.LIST, (short)4); - private static final org.apache.thrift.protocol.TField BUFFER_SIZE_FIELD_DESC = new org.apache.thrift.protocol.TField("bufferSize", org.apache.thrift.protocol.TType.I32, (short)5); + private static final org.apache.thrift.protocol.TField THREADS_FIELD_DESC = new org.apache.thrift.protocol.TField("threads", org.apache.thrift.protocol.TType.I32, (short)5); private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); static { @@ -65,7 +65,7 @@ import org.slf4j.LoggerFactory; public List<Range> ranges; // optional public List<ScanColumn> columns; // optional public List<IteratorSetting> iterators; // optional - public int bufferSize; // optional + public int threads; // optional /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { @@ -73,7 +73,7 @@ import org.slf4j.LoggerFactory; RANGES((short)2, "ranges"), COLUMNS((short)3, "columns"), ITERATORS((short)4, "iterators"), - BUFFER_SIZE((short)5, "bufferSize"); + THREADS((short)5, "threads"); private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); @@ -96,8 +96,8 @@ import org.slf4j.LoggerFactory; return COLUMNS; case 4: // ITERATORS return ITERATORS; - case 5: // BUFFER_SIZE - return BUFFER_SIZE; + case 5: // THREADS + return THREADS; default: return null; } @@ -138,9 +138,9 @@ import org.slf4j.LoggerFactory; } // isset id assignments - private static final int __BUFFERSIZE_ISSET_ID = 0; + private static final int __THREADS_ISSET_ID = 0; private byte __isset_bitfield = 0; - private _Fields optionals[] = {_Fields.AUTHORIZATIONS,_Fields.RANGES,_Fields.COLUMNS,_Fields.ITERATORS,_Fields.BUFFER_SIZE}; + private _Fields optionals[] = {_Fields.AUTHORIZATIONS,_Fields.RANGES,_Fields.COLUMNS,_Fields.ITERATORS,_Fields.THREADS}; public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; static { Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); @@ -156,7 +156,7 @@ import org.slf4j.LoggerFactory; tmpMap.put(_Fields.ITERATORS, new org.apache.thrift.meta_data.FieldMetaData("iterators", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.ListMetaData(org.apache.thrift.protocol.TType.LIST, new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, IteratorSetting.class)))); - tmpMap.put(_Fields.BUFFER_SIZE, new org.apache.thrift.meta_data.FieldMetaData("bufferSize", org.apache.thrift.TFieldRequirementType.OPTIONAL, + tmpMap.put(_Fields.THREADS, new org.apache.thrift.meta_data.FieldMetaData("threads", org.apache.thrift.TFieldRequirementType.OPTIONAL, new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); metaDataMap = Collections.unmodifiableMap(tmpMap); org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(BatchScanOptions.class, metaDataMap); @@ -200,7 +200,7 @@ import org.slf4j.LoggerFactory; } this.iterators = __this__iterators; } - this.bufferSize = other.bufferSize; + this.threads = other.threads; } public BatchScanOptions deepCopy() { @@ -213,8 +213,8 @@ import org.slf4j.LoggerFactory; this.ranges = null; this.columns = null; this.iterators = null; - setBufferSizeIsSet(false); - this.bufferSize = 0; + setThreadsIsSet(false); + this.threads = 0; } public int getAuthorizationsSize() { @@ -373,27 +373,27 @@ import org.slf4j.LoggerFactory; } } - public int getBufferSize() { - return this.bufferSize; + public int getThreads() { + return this.threads; } - public BatchScanOptions setBufferSize(int bufferSize) { - this.bufferSize = bufferSize; - setBufferSizeIsSet(true); + public BatchScanOptions setThreads(int threads) { + this.threads = threads; + setThreadsIsSet(true); return this; } - public void unsetBufferSize() { - __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __BUFFERSIZE_ISSET_ID); + public void unsetThreads() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __THREADS_ISSET_ID); } - /** Returns true if field bufferSize is set (has been assigned a value) and false otherwise */ - public boolean isSetBufferSize() { - return EncodingUtils.testBit(__isset_bitfield, __BUFFERSIZE_ISSET_ID); + /** Returns true if field threads is set (has been assigned a value) and false otherwise */ + public boolean isSetThreads() { + return EncodingUtils.testBit(__isset_bitfield, __THREADS_ISSET_ID); } - public void setBufferSizeIsSet(boolean value) { - __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __BUFFERSIZE_ISSET_ID, value); + public void setThreadsIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __THREADS_ISSET_ID, value); } public void setFieldValue(_Fields field, Object value) { @@ -430,11 +430,11 @@ import org.slf4j.LoggerFactory; } break; - case BUFFER_SIZE: + case THREADS: if (value == null) { - unsetBufferSize(); + unsetThreads(); } else { - setBufferSize((Integer)value); + setThreads((Integer)value); } break; @@ -455,8 +455,8 @@ import org.slf4j.LoggerFactory; case ITERATORS: return getIterators(); - case BUFFER_SIZE: - return Integer.valueOf(getBufferSize()); + case THREADS: + return Integer.valueOf(getThreads()); } throw new IllegalStateException(); @@ -477,8 +477,8 @@ import org.slf4j.LoggerFactory; return isSetColumns(); case ITERATORS: return isSetIterators(); - case BUFFER_SIZE: - return isSetBufferSize(); + case THREADS: + return isSetThreads(); } throw new IllegalStateException(); } @@ -532,12 +532,12 @@ import org.slf4j.LoggerFactory; return false; } - boolean this_present_bufferSize = true && this.isSetBufferSize(); - boolean that_present_bufferSize = true && that.isSetBufferSize(); - if (this_present_bufferSize || that_present_bufferSize) { - if (!(this_present_bufferSize && that_present_bufferSize)) + boolean this_present_threads = true && this.isSetThreads(); + boolean that_present_threads = true && that.isSetThreads(); + if (this_present_threads || that_present_threads) { + if (!(this_present_threads && that_present_threads)) return false; - if (this.bufferSize != that.bufferSize) + if (this.threads != that.threads) return false; } @@ -597,12 +597,12 @@ import org.slf4j.LoggerFactory; return lastComparison; } } - lastComparison = Boolean.valueOf(isSetBufferSize()).compareTo(typedOther.isSetBufferSize()); + lastComparison = Boolean.valueOf(isSetThreads()).compareTo(typedOther.isSetThreads()); if (lastComparison != 0) { return lastComparison; } - if (isSetBufferSize()) { - lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.bufferSize, typedOther.bufferSize); + if (isSetThreads()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.threads, typedOther.threads); if (lastComparison != 0) { return lastComparison; } @@ -666,10 +666,10 @@ import org.slf4j.LoggerFactory; } first = false; } - if (isSetBufferSize()) { + if (isSetThreads()) { if (!first) sb.append(", "); - sb.append("bufferSize:"); - sb.append(this.bufferSize); + sb.append("threads:"); + sb.append(this.threads); first = false; } sb.append(")"); @@ -792,10 +792,10 @@ import org.slf4j.LoggerFactory; org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } break; - case 5: // BUFFER_SIZE + case 5: // THREADS if (schemeField.type == org.apache.thrift.protocol.TType.I32) { - struct.bufferSize = iprot.readI32(); - struct.setBufferSizeIsSet(true); + struct.threads = iprot.readI32(); + struct.setThreadsIsSet(true); } else { org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); } @@ -871,9 +871,9 @@ import org.slf4j.LoggerFactory; oprot.writeFieldEnd(); } } - if (struct.isSetBufferSize()) { - oprot.writeFieldBegin(BUFFER_SIZE_FIELD_DESC); - oprot.writeI32(struct.bufferSize); + if (struct.isSetThreads()) { + oprot.writeFieldBegin(THREADS_FIELD_DESC); + oprot.writeI32(struct.threads); oprot.writeFieldEnd(); } oprot.writeFieldStop(); @@ -906,7 +906,7 @@ import org.slf4j.LoggerFactory; if (struct.isSetIterators()) { optionals.set(3); } - if (struct.isSetBufferSize()) { + if (struct.isSetThreads()) { optionals.set(4); } oprot.writeBitSet(optionals, 5); @@ -946,8 +946,8 @@ import org.slf4j.LoggerFactory; } } } - if (struct.isSetBufferSize()) { - oprot.writeI32(struct.bufferSize); + if (struct.isSetThreads()) { + oprot.writeI32(struct.threads); } } @@ -1011,8 +1011,8 @@ import org.slf4j.LoggerFactory; struct.setIteratorsIsSet(true); } if (incoming.get(4)) { - struct.bufferSize = iprot.readI32(); - struct.setBufferSizeIsSet(true); + struct.threads = iprot.readI32(); + struct.setThreadsIsSet(true); } } } Added: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java?rev=1438121&view=auto ============================================================================== --- accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java (added) +++ accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java Thu Jan 24 18:37:18 2013 @@ -0,0 +1,682 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +/** + * Autogenerated by Thrift Compiler (0.9.0) + * + * DO NOT EDIT UNLESS YOU ARE SURE THAT YOU KNOW WHAT YOU ARE DOING + * @generated + */ +package org.apache.accumulo.proxy.thrift; + +import org.apache.thrift.scheme.IScheme; +import org.apache.thrift.scheme.SchemeFactory; +import org.apache.thrift.scheme.StandardScheme; + +import org.apache.thrift.scheme.TupleScheme; +import org.apache.thrift.protocol.TTupleProtocol; +import org.apache.thrift.protocol.TProtocolException; +import org.apache.thrift.EncodingUtils; +import org.apache.thrift.TException; +import java.util.List; +import java.util.ArrayList; +import java.util.Map; +import java.util.HashMap; +import java.util.EnumMap; +import java.util.Set; +import java.util.HashSet; +import java.util.EnumSet; +import java.util.Collections; +import java.util.BitSet; +import java.nio.ByteBuffer; +import java.util.Arrays; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +@SuppressWarnings("all") public class WriterOptions implements org.apache.thrift.TBase<WriterOptions, WriterOptions._Fields>, java.io.Serializable, Cloneable { + private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("WriterOptions"); + + private static final org.apache.thrift.protocol.TField MAX_MEMORY_FIELD_DESC = new org.apache.thrift.protocol.TField("maxMemory", org.apache.thrift.protocol.TType.I64, (short)1); + private static final org.apache.thrift.protocol.TField LATENCY_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("latencyMs", org.apache.thrift.protocol.TType.I64, (short)2); + private static final org.apache.thrift.protocol.TField TIMEOUT_MS_FIELD_DESC = new org.apache.thrift.protocol.TField("timeoutMs", org.apache.thrift.protocol.TType.I64, (short)3); + private static final org.apache.thrift.protocol.TField THREADS_FIELD_DESC = new org.apache.thrift.protocol.TField("threads", org.apache.thrift.protocol.TType.I32, (short)4); + + private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>(); + static { + schemes.put(StandardScheme.class, new WriterOptionsStandardSchemeFactory()); + schemes.put(TupleScheme.class, new WriterOptionsTupleSchemeFactory()); + } + + public long maxMemory; // required + public long latencyMs; // required + public long timeoutMs; // required + public int threads; // required + + /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */ + @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum { + MAX_MEMORY((short)1, "maxMemory"), + LATENCY_MS((short)2, "latencyMs"), + TIMEOUT_MS((short)3, "timeoutMs"), + THREADS((short)4, "threads"); + + private static final Map<String, _Fields> byName = new HashMap<String, _Fields>(); + + static { + for (_Fields field : EnumSet.allOf(_Fields.class)) { + byName.put(field.getFieldName(), field); + } + } + + /** + * Find the _Fields constant that matches fieldId, or null if its not found. + */ + public static _Fields findByThriftId(int fieldId) { + switch(fieldId) { + case 1: // MAX_MEMORY + return MAX_MEMORY; + case 2: // LATENCY_MS + return LATENCY_MS; + case 3: // TIMEOUT_MS + return TIMEOUT_MS; + case 4: // THREADS + return THREADS; + default: + return null; + } + } + + /** + * Find the _Fields constant that matches fieldId, throwing an exception + * if it is not found. + */ + public static _Fields findByThriftIdOrThrow(int fieldId) { + _Fields fields = findByThriftId(fieldId); + if (fields == null) throw new IllegalArgumentException("Field " + fieldId + " doesn't exist!"); + return fields; + } + + /** + * Find the _Fields constant that matches name, or null if its not found. + */ + public static _Fields findByName(String name) { + return byName.get(name); + } + + private final short _thriftId; + private final String _fieldName; + + _Fields(short thriftId, String fieldName) { + _thriftId = thriftId; + _fieldName = fieldName; + } + + public short getThriftFieldId() { + return _thriftId; + } + + public String getFieldName() { + return _fieldName; + } + } + + // isset id assignments + private static final int __MAXMEMORY_ISSET_ID = 0; + private static final int __LATENCYMS_ISSET_ID = 1; + private static final int __TIMEOUTMS_ISSET_ID = 2; + private static final int __THREADS_ISSET_ID = 3; + private byte __isset_bitfield = 0; + public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap; + static { + Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class); + tmpMap.put(_Fields.MAX_MEMORY, new org.apache.thrift.meta_data.FieldMetaData("maxMemory", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + tmpMap.put(_Fields.LATENCY_MS, new org.apache.thrift.meta_data.FieldMetaData("latencyMs", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + tmpMap.put(_Fields.TIMEOUT_MS, new org.apache.thrift.meta_data.FieldMetaData("timeoutMs", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I64))); + tmpMap.put(_Fields.THREADS, new org.apache.thrift.meta_data.FieldMetaData("threads", org.apache.thrift.TFieldRequirementType.DEFAULT, + new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.I32))); + metaDataMap = Collections.unmodifiableMap(tmpMap); + org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(WriterOptions.class, metaDataMap); + } + + public WriterOptions() { + } + + public WriterOptions( + long maxMemory, + long latencyMs, + long timeoutMs, + int threads) + { + this(); + this.maxMemory = maxMemory; + setMaxMemoryIsSet(true); + this.latencyMs = latencyMs; + setLatencyMsIsSet(true); + this.timeoutMs = timeoutMs; + setTimeoutMsIsSet(true); + this.threads = threads; + setThreadsIsSet(true); + } + + /** + * Performs a deep copy on <i>other</i>. + */ + public WriterOptions(WriterOptions other) { + __isset_bitfield = other.__isset_bitfield; + this.maxMemory = other.maxMemory; + this.latencyMs = other.latencyMs; + this.timeoutMs = other.timeoutMs; + this.threads = other.threads; + } + + public WriterOptions deepCopy() { + return new WriterOptions(this); + } + + @Override + public void clear() { + setMaxMemoryIsSet(false); + this.maxMemory = 0; + setLatencyMsIsSet(false); + this.latencyMs = 0; + setTimeoutMsIsSet(false); + this.timeoutMs = 0; + setThreadsIsSet(false); + this.threads = 0; + } + + public long getMaxMemory() { + return this.maxMemory; + } + + public WriterOptions setMaxMemory(long maxMemory) { + this.maxMemory = maxMemory; + setMaxMemoryIsSet(true); + return this; + } + + public void unsetMaxMemory() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __MAXMEMORY_ISSET_ID); + } + + /** Returns true if field maxMemory is set (has been assigned a value) and false otherwise */ + public boolean isSetMaxMemory() { + return EncodingUtils.testBit(__isset_bitfield, __MAXMEMORY_ISSET_ID); + } + + public void setMaxMemoryIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __MAXMEMORY_ISSET_ID, value); + } + + public long getLatencyMs() { + return this.latencyMs; + } + + public WriterOptions setLatencyMs(long latencyMs) { + this.latencyMs = latencyMs; + setLatencyMsIsSet(true); + return this; + } + + public void unsetLatencyMs() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __LATENCYMS_ISSET_ID); + } + + /** Returns true if field latencyMs is set (has been assigned a value) and false otherwise */ + public boolean isSetLatencyMs() { + return EncodingUtils.testBit(__isset_bitfield, __LATENCYMS_ISSET_ID); + } + + public void setLatencyMsIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __LATENCYMS_ISSET_ID, value); + } + + public long getTimeoutMs() { + return this.timeoutMs; + } + + public WriterOptions setTimeoutMs(long timeoutMs) { + this.timeoutMs = timeoutMs; + setTimeoutMsIsSet(true); + return this; + } + + public void unsetTimeoutMs() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __TIMEOUTMS_ISSET_ID); + } + + /** Returns true if field timeoutMs is set (has been assigned a value) and false otherwise */ + public boolean isSetTimeoutMs() { + return EncodingUtils.testBit(__isset_bitfield, __TIMEOUTMS_ISSET_ID); + } + + public void setTimeoutMsIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __TIMEOUTMS_ISSET_ID, value); + } + + public int getThreads() { + return this.threads; + } + + public WriterOptions setThreads(int threads) { + this.threads = threads; + setThreadsIsSet(true); + return this; + } + + public void unsetThreads() { + __isset_bitfield = EncodingUtils.clearBit(__isset_bitfield, __THREADS_ISSET_ID); + } + + /** Returns true if field threads is set (has been assigned a value) and false otherwise */ + public boolean isSetThreads() { + return EncodingUtils.testBit(__isset_bitfield, __THREADS_ISSET_ID); + } + + public void setThreadsIsSet(boolean value) { + __isset_bitfield = EncodingUtils.setBit(__isset_bitfield, __THREADS_ISSET_ID, value); + } + + public void setFieldValue(_Fields field, Object value) { + switch (field) { + case MAX_MEMORY: + if (value == null) { + unsetMaxMemory(); + } else { + setMaxMemory((Long)value); + } + break; + + case LATENCY_MS: + if (value == null) { + unsetLatencyMs(); + } else { + setLatencyMs((Long)value); + } + break; + + case TIMEOUT_MS: + if (value == null) { + unsetTimeoutMs(); + } else { + setTimeoutMs((Long)value); + } + break; + + case THREADS: + if (value == null) { + unsetThreads(); + } else { + setThreads((Integer)value); + } + break; + + } + } + + public Object getFieldValue(_Fields field) { + switch (field) { + case MAX_MEMORY: + return Long.valueOf(getMaxMemory()); + + case LATENCY_MS: + return Long.valueOf(getLatencyMs()); + + case TIMEOUT_MS: + return Long.valueOf(getTimeoutMs()); + + case THREADS: + return Integer.valueOf(getThreads()); + + } + throw new IllegalStateException(); + } + + /** Returns true if field corresponding to fieldID is set (has been assigned a value) and false otherwise */ + public boolean isSet(_Fields field) { + if (field == null) { + throw new IllegalArgumentException(); + } + + switch (field) { + case MAX_MEMORY: + return isSetMaxMemory(); + case LATENCY_MS: + return isSetLatencyMs(); + case TIMEOUT_MS: + return isSetTimeoutMs(); + case THREADS: + return isSetThreads(); + } + throw new IllegalStateException(); + } + + @Override + public boolean equals(Object that) { + if (that == null) + return false; + if (that instanceof WriterOptions) + return this.equals((WriterOptions)that); + return false; + } + + public boolean equals(WriterOptions that) { + if (that == null) + return false; + + boolean this_present_maxMemory = true; + boolean that_present_maxMemory = true; + if (this_present_maxMemory || that_present_maxMemory) { + if (!(this_present_maxMemory && that_present_maxMemory)) + return false; + if (this.maxMemory != that.maxMemory) + return false; + } + + boolean this_present_latencyMs = true; + boolean that_present_latencyMs = true; + if (this_present_latencyMs || that_present_latencyMs) { + if (!(this_present_latencyMs && that_present_latencyMs)) + return false; + if (this.latencyMs != that.latencyMs) + return false; + } + + boolean this_present_timeoutMs = true; + boolean that_present_timeoutMs = true; + if (this_present_timeoutMs || that_present_timeoutMs) { + if (!(this_present_timeoutMs && that_present_timeoutMs)) + return false; + if (this.timeoutMs != that.timeoutMs) + return false; + } + + boolean this_present_threads = true; + boolean that_present_threads = true; + if (this_present_threads || that_present_threads) { + if (!(this_present_threads && that_present_threads)) + return false; + if (this.threads != that.threads) + return false; + } + + return true; + } + + @Override + public int hashCode() { + return 0; + } + + public int compareTo(WriterOptions other) { + if (!getClass().equals(other.getClass())) { + return getClass().getName().compareTo(other.getClass().getName()); + } + + int lastComparison = 0; + WriterOptions typedOther = (WriterOptions)other; + + lastComparison = Boolean.valueOf(isSetMaxMemory()).compareTo(typedOther.isSetMaxMemory()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetMaxMemory()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.maxMemory, typedOther.maxMemory); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetLatencyMs()).compareTo(typedOther.isSetLatencyMs()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetLatencyMs()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.latencyMs, typedOther.latencyMs); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetTimeoutMs()).compareTo(typedOther.isSetTimeoutMs()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetTimeoutMs()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.timeoutMs, typedOther.timeoutMs); + if (lastComparison != 0) { + return lastComparison; + } + } + lastComparison = Boolean.valueOf(isSetThreads()).compareTo(typedOther.isSetThreads()); + if (lastComparison != 0) { + return lastComparison; + } + if (isSetThreads()) { + lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.threads, typedOther.threads); + if (lastComparison != 0) { + return lastComparison; + } + } + return 0; + } + + public _Fields fieldForId(int fieldId) { + return _Fields.findByThriftId(fieldId); + } + + public void read(org.apache.thrift.protocol.TProtocol iprot) throws org.apache.thrift.TException { + schemes.get(iprot.getScheme()).getScheme().read(iprot, this); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot) throws org.apache.thrift.TException { + schemes.get(oprot.getScheme()).getScheme().write(oprot, this); + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder("WriterOptions("); + boolean first = true; + + sb.append("maxMemory:"); + sb.append(this.maxMemory); + first = false; + if (!first) sb.append(", "); + sb.append("latencyMs:"); + sb.append(this.latencyMs); + first = false; + if (!first) sb.append(", "); + sb.append("timeoutMs:"); + sb.append(this.timeoutMs); + first = false; + if (!first) sb.append(", "); + sb.append("threads:"); + sb.append(this.threads); + first = false; + sb.append(")"); + return sb.toString(); + } + + public void validate() throws org.apache.thrift.TException { + // check for required fields + // check for sub-struct validity + } + + private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException { + try { + write(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(out))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private void readObject(java.io.ObjectInputStream in) throws java.io.IOException, ClassNotFoundException { + try { + // it doesn't seem like you should have to do this, but java serialization is wacky, and doesn't call the default constructor. + __isset_bitfield = 0; + read(new org.apache.thrift.protocol.TCompactProtocol(new org.apache.thrift.transport.TIOStreamTransport(in))); + } catch (org.apache.thrift.TException te) { + throw new java.io.IOException(te); + } + } + + private static class WriterOptionsStandardSchemeFactory implements SchemeFactory { + public WriterOptionsStandardScheme getScheme() { + return new WriterOptionsStandardScheme(); + } + } + + private static class WriterOptionsStandardScheme extends StandardScheme<WriterOptions> { + + public void read(org.apache.thrift.protocol.TProtocol iprot, WriterOptions struct) throws org.apache.thrift.TException { + org.apache.thrift.protocol.TField schemeField; + iprot.readStructBegin(); + while (true) + { + schemeField = iprot.readFieldBegin(); + if (schemeField.type == org.apache.thrift.protocol.TType.STOP) { + break; + } + switch (schemeField.id) { + case 1: // MAX_MEMORY + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.maxMemory = iprot.readI64(); + struct.setMaxMemoryIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 2: // LATENCY_MS + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.latencyMs = iprot.readI64(); + struct.setLatencyMsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 3: // TIMEOUT_MS + if (schemeField.type == org.apache.thrift.protocol.TType.I64) { + struct.timeoutMs = iprot.readI64(); + struct.setTimeoutMsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + case 4: // THREADS + if (schemeField.type == org.apache.thrift.protocol.TType.I32) { + struct.threads = iprot.readI32(); + struct.setThreadsIsSet(true); + } else { + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + break; + default: + org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type); + } + iprot.readFieldEnd(); + } + iprot.readStructEnd(); + + // check for required fields of primitive type, which can't be checked in the validate method + struct.validate(); + } + + public void write(org.apache.thrift.protocol.TProtocol oprot, WriterOptions struct) throws org.apache.thrift.TException { + struct.validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(MAX_MEMORY_FIELD_DESC); + oprot.writeI64(struct.maxMemory); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(LATENCY_MS_FIELD_DESC); + oprot.writeI64(struct.latencyMs); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(TIMEOUT_MS_FIELD_DESC); + oprot.writeI64(struct.timeoutMs); + oprot.writeFieldEnd(); + oprot.writeFieldBegin(THREADS_FIELD_DESC); + oprot.writeI32(struct.threads); + oprot.writeFieldEnd(); + oprot.writeFieldStop(); + oprot.writeStructEnd(); + } + + } + + private static class WriterOptionsTupleSchemeFactory implements SchemeFactory { + public WriterOptionsTupleScheme getScheme() { + return new WriterOptionsTupleScheme(); + } + } + + private static class WriterOptionsTupleScheme extends TupleScheme<WriterOptions> { + + @Override + public void write(org.apache.thrift.protocol.TProtocol prot, WriterOptions struct) throws org.apache.thrift.TException { + TTupleProtocol oprot = (TTupleProtocol) prot; + BitSet optionals = new BitSet(); + if (struct.isSetMaxMemory()) { + optionals.set(0); + } + if (struct.isSetLatencyMs()) { + optionals.set(1); + } + if (struct.isSetTimeoutMs()) { + optionals.set(2); + } + if (struct.isSetThreads()) { + optionals.set(3); + } + oprot.writeBitSet(optionals, 4); + if (struct.isSetMaxMemory()) { + oprot.writeI64(struct.maxMemory); + } + if (struct.isSetLatencyMs()) { + oprot.writeI64(struct.latencyMs); + } + if (struct.isSetTimeoutMs()) { + oprot.writeI64(struct.timeoutMs); + } + if (struct.isSetThreads()) { + oprot.writeI32(struct.threads); + } + } + + @Override + public void read(org.apache.thrift.protocol.TProtocol prot, WriterOptions struct) throws org.apache.thrift.TException { + TTupleProtocol iprot = (TTupleProtocol) prot; + BitSet incoming = iprot.readBitSet(4); + if (incoming.get(0)) { + struct.maxMemory = iprot.readI64(); + struct.setMaxMemoryIsSet(true); + } + if (incoming.get(1)) { + struct.latencyMs = iprot.readI64(); + struct.setLatencyMsIsSet(true); + } + if (incoming.get(2)) { + struct.timeoutMs = iprot.readI64(); + struct.setTimeoutMsIsSet(true); + } + if (incoming.get(3)) { + struct.threads = iprot.readI32(); + struct.setThreadsIsSet(true); + } + } + } + +} + Propchange: accumulo/trunk/proxy/src/main/java/org/apache/accumulo/proxy/thrift/WriterOptions.java ------------------------------------------------------------------------------ svn:eol-style = native Modified: accumulo/trunk/proxy/src/main/thrift/proxy.thrift URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/main/thrift/proxy.thrift?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/main/thrift/proxy.thrift (original) +++ accumulo/trunk/proxy/src/main/thrift/proxy.thrift Thu Jan 24 18:37:18 2013 @@ -89,7 +89,7 @@ struct BatchScanOptions { 2:optional list<Range> ranges, 3:optional list<ScanColumn> columns; 4:optional list<IteratorSetting> iterators; - 5:optional i32 bufferSize; + 5:optional i32 threads; } struct KeyValueAndPeek { @@ -182,6 +182,13 @@ struct ActiveCompaction { 10:list<IteratorSetting> iterators; } +struct WriterOptions { + 1:i64 maxMemory + 2:i64 latencyMs + 3:i64 timeoutMs + 4:i32 threads +} + enum IteratorScope { MINC, MAJC, @@ -318,7 +325,7 @@ service AccumuloProxy // writing void updateAndFlush(1:UserPass userpass, 2:string tableName, 3:map<binary, list<ColumnUpdate>> cells) throws(1:AccumuloException outch1, 2:AccumuloSecurityException ouch2); - string createWriter(1:UserPass userpass, 2:string tableName) throws(1:AccumuloException outch1, 2:AccumuloSecurityException ouch2); + string createWriter(1:UserPass userpass, 2:string tableName, 3:WriterOptions opts) throws(1:AccumuloException outch1, 2:AccumuloSecurityException ouch2); // use the writer oneway void writer_update(1:string writer, 2:map<binary, list<ColumnUpdate>> cells); Modified: accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyReadWrite.java URL: http://svn.apache.org/viewvc/accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyReadWrite.java?rev=1438121&r1=1438120&r2=1438121&view=diff ============================================================================== --- accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyReadWrite.java (original) +++ accumulo/trunk/proxy/src/test/java/org/apache/accumulo/proxy/TestProxyReadWrite.java Thu Jan 24 18:37:18 2013 @@ -268,7 +268,7 @@ public class TestProxyReadWrite { int maxInserts = 1000000; Map<ByteBuffer,List<ColumnUpdate>> mutations = new HashMap<ByteBuffer,List<ColumnUpdate>>(); String format = "%1$06d"; - String writer = tpc.proxy().createWriter(userpass, testtable); + String writer = tpc.proxy().createWriter(userpass, testtable, null); for (int i = 0; i < maxInserts; i++) { addMutation(mutations, String.format(format, i), "cf" + i, "cq" + i, Util.randString(10)); @@ -308,7 +308,7 @@ public class TestProxyReadWrite { int maxInserts = 10000; Map<ByteBuffer,List<ColumnUpdate>> mutations = new HashMap<ByteBuffer,List<ColumnUpdate>>(); String format = "%1$05d"; - String writer = tpc.proxy().createWriter(userpass, testtable); + String writer = tpc.proxy().createWriter(userpass, testtable, null); for (int i = 0; i < maxInserts; i++) { addMutation(mutations, String.format(format, i), "cf" + i, "cq" + i, Util.randString(10)); @@ -358,7 +358,7 @@ public class TestProxyReadWrite { int maxInserts = 10000; Map<ByteBuffer,List<ColumnUpdate>> mutations = new HashMap<ByteBuffer,List<ColumnUpdate>>(); String format = "%1$05d"; - String writer = tpc.proxy().createWriter(userpass, testtable); + String writer = tpc.proxy().createWriter(userpass, testtable, null); for (int i = 0; i < maxInserts; i++) { if (i % 2 == 0) addMutation(mutations, String.format(format, i), "cf" + i, "cq" + i, "even", Util.randString(10));