/** Serializes this request. */ ChannelBuffer serialize(final byte server_version) { if (server_version < RegionClient.SERVER_VERSION_095_OR_ABOVE) { return serializeOld(server_version); } final MutationProto.ColumnValue.QualifierValue qualifier = MutationProto.ColumnValue.QualifierValue.newBuilder() .setQualifier(Bytes.wrap(this.qualifier)) .setValue(Bytes.wrap(Bytes.fromLong(amount))) .build(); final MutationProto.ColumnValue column = MutationProto.ColumnValue.newBuilder() .setFamily(Bytes.wrap(family)) .addQualifierValue(qualifier) .build(); final MutationProto.Builder incr = MutationProto.newBuilder() .setRow(Bytes.wrap(key)) .setMutateType(MutationProto.MutationType.INCREMENT) .addColumnValue(column); if (!durable) { incr.setDurability(MutationProto.Durability.SKIP_WAL); } final MutateRequest req = MutateRequest.newBuilder() .setRegion(region.toProtobuf()) .setMutation(incr.build()) .build(); return toChannelBuffer(MUTATE, req); }