ConditionalMutation toMutation() { Condition cond = new Condition("meta", "seq"); if (seq >= 0) cond.setValue(seq + ""); ConditionalMutation cm = new ConditionalMutation(row, cond); cm.put("meta", "seq", (seq + 1) + ""); cm.put("meta", "sum", (sum) + ""); for (int i = 0; i < data.length; i++) { cm.put("data", i + "", data[i] + ""); } return cm; }
ConditionalMutation cm = new ConditionalMutation(rows.get(i), new Condition("meta", "seq")); ConditionalMutation cm = new ConditionalMutation(rows.get(i), new Condition("meta", "seq").setValue("1"));
ConditionalMutation cmut = new ConditionalMutation(ByteBufferUtil.toBytes(cu.getKey()));
private void conditionWriteSome(String tableName, int n, ConditionalWriterConfig cfg) throws Exception { Connector c = getConnector(); ConditionalWriter cw = c.createConditionalWriter(tableName, cfg); for (int i = 0; i < n; i++) { ConditionalMutation m = new ConditionalMutation((CharSequence) (i + ""), new Condition("", "")); m.put("", "", "X"); assertEquals(Status.ACCEPTED, cw.write(m).getStatus()); } }
ConditionalMutation m = new ConditionalMutation(Utils.getBank(i)); int acceptedCount = 0; for (int j = 0; j < numAccts; j++) { m = new ConditionalMutation(Utils.getBank(i));
ConditionalMutation cm = new ConditionalMutation(bank, new Condition(acct1, "seq").setValue(Utils.getSeq(a1.seq)), new Condition(acct2, "seq").setValue(Utils.getSeq(a2.seq)));
ConditionalMutation cm0 = new ConditionalMutation("99006", new Condition("tx", "seq").setVisibility(cvaob)); cm0.put("name+", "last", cvaob, "doe"); mutations.add(cm0); ConditionalMutation cm1 = new ConditionalMutation("59056", new Condition("tx", "seq").setVisibility(cvaab)); cm1.put("name", "last", cvaab, "doe"); mutations.add(cm1); ConditionalMutation cm2 = new ConditionalMutation("19059", new Condition("tx", "seq").setVisibility(cvaob)); cm2.put("name", "last", cvaob, "doe"); mutations.add(cm2); ConditionalMutation cm3 = new ConditionalMutation("90909", new Condition("tx", "seq").setVisibility(cvaob).setValue("1")); cm3.put("name", "last", cvaob, "doe");
new ConditionalWriterConfig().setTimeout(3, TimeUnit.SECONDS))) { ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); SlowIterator.setSeekSleepTime(is, 5000); ConditionalMutation cm2 = new ConditionalMutation("r1", new Condition("tx", "seq").setValue("1").setIterators(is)); cm2.put("tx", "seq", "2"); ConditionalMutation cm3 = new ConditionalMutation("r1", new Condition("tx", "seq").setValue("1")); cm3.put("tx", "seq", "2");
new ConditionalWriterConfig())) { ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); ConditionalMutation cm2 = new ConditionalMutation("r1", new Condition("tx", "seq").setValue("1")); cm2.put("tx", "seq", "2"); cm2.put("data", "x", "b"); ConditionalMutation cm3 = new ConditionalMutation("r1", new Condition("tx", "seq").setValue("1")); cm3.put("tx", "seq", "2"); cm3.put("data", "x", "c"); ConditionalMutation cm4 = new ConditionalMutation("r1", new Condition("tx", "seq").setValue("1")); cm4.put("tx", "seq", "2");
@Test public void testConstraints() throws Exception { // ensure constraint violations are properly reported Connector conn = getConnector(); String tableName = getUniqueNames(1)[0]; conn.tableOperations().create(tableName); conn.tableOperations().addConstraint(tableName, AlphaNumKeyConstraint.class.getName()); conn.tableOperations().clone(tableName, tableName + "_clone", true, new HashMap<String,String>(), new HashSet<String>()); Scanner scanner = conn.createScanner(tableName + "_clone", new Authorizations()); try (ConditionalWriter cw = conn.createConditionalWriter(tableName + "_clone", new ConditionalWriterConfig())) { ConditionalMutation cm0 = new ConditionalMutation("99006+", new Condition("tx", "seq")); cm0.put("tx", "seq", "1"); Assert.assertEquals(Status.VIOLATED, cw.write(cm0).getStatus()); Assert.assertFalse("Should find no results in the table is mutation result was violated", scanner.iterator().hasNext()); ConditionalMutation cm1 = new ConditionalMutation("99006", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); Assert.assertEquals(Status.ACCEPTED, cw.write(cm1).getStatus()); Assert.assertTrue("Accepted result should be returned when reading table", scanner.iterator().hasNext()); } }
/** * Creates a {@link ConditionalMutation} that only updates the cardinality * of the PCJ table if the old value has not changed by the time this mutation * is committed to Accumulo. * * @param current - The current cardinality value. * @param delta - How much the cardinality will change. * @return The mutation that will perform the conditional update. */ private static ConditionalMutation makeUpdateCardinalityMutation(final long current, final long delta) { // Try to update the cardinality by the delta. final ConditionalMutation mutation = new ConditionalMutation(PCJ_METADATA_ROW_ID); final Condition lastCardinalityStillCurrent = new Condition( PCJ_METADATA_FAMILY, PCJ_METADATA_CARDINALITY); // Require the old cardinality to be the value we just read. final byte[] currentCardinalityBytes = longLexicoder.encode( current ); lastCardinalityStillCurrent.setValue( currentCardinalityBytes ); mutation.addCondition(lastCardinalityStillCurrent); // If that is the case, then update to the new value. final Value newCardinality = new Value( longLexicoder.encode(current + delta) ); mutation.put(PCJ_METADATA_FAMILY, PCJ_METADATA_CARDINALITY, newCardinality); return mutation; }
@Test(expected = IllegalArgumentException.class) public void testNoConditions() throws AccumuloException, AccumuloSecurityException, TableExistsException, TableNotFoundException { String table = getUniqueNames(1)[0]; Connector conn = getConnector(); conn.tableOperations().create(table); try ( ConditionalWriter cw = conn.createConditionalWriter(table, new ConditionalWriterConfig())) { ConditionalMutation cm1 = new ConditionalMutation("r1"); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); cw.write(cm1); } }
ConditionalMutation cm0 = new ConditionalMutation("99006", new Condition("tx", "seq")); cm0.put("name", "last", "doe"); cm0.put("name", "first", "john");
final ConditionalMutation mutation = new ConditionalMutation(ROW_ID); mutation.addCondition( condition ); final byte[] newDetailsBytes = serializer.serialize(newDetails);
final ConditionalMutation mutation = new ConditionalMutation(ROW_ID); mutation.addCondition( condition ); final byte[] newDetailsBytes = serializer.serialize(newDetails);
ConditionalMutation cm0 = new ConditionalMutation("99006", new Condition("tx", "seq")); cm0.put("name", "last", "doe"); cm0.put("name", "first", "john"); ConditionalMutation cm1 = new ConditionalMutation("99006", new Condition("tx", "seq").setValue("1")); cm1.put("name", "last", "Doe"); ConditionalMutation cm2 = new ConditionalMutation("99006", new Condition("tx", "seq").setValue("1")); cm2.put("name", "last", "DOE"); ConditionalMutation cm3 = new ConditionalMutation("99006", new Condition("txtypo", "seq").setValue("1")); cm3.put("name", "last", "deo"); ConditionalMutation cm4 = new ConditionalMutation("99006", new Condition("tx", "seq").setValue("2"), new Condition("name", "last").setValue("doe")); cm4.put("name", "last", "deo"); ConditionalMutation cm5 = new ConditionalMutation("99006", new Condition("tx", "seq").setValue("1"), new Condition("name", "last").setValue("Doe")); cm5.put("name", "last", "deo"); ConditionalMutation cm6 = new ConditionalMutation("99006", new Condition("tx", "seq").setValue("2"), new Condition("name", "last").setValue("Doe")); cm6.put("name", "last", "DOE"); ConditionalMutation cm7 = new ConditionalMutation("99006",
@Test public void testOffline() throws Exception { String table = getUniqueNames(1)[0]; Connector conn = getConnector(); conn.tableOperations().create(table); try ( ConditionalWriter cw = conn.createConditionalWriter(table, new ConditionalWriterConfig())) { conn.tableOperations().offline(table, true); ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); Result result = cw.write(cm1); try { Status status = result.getStatus(); Assert.fail("Expected exception writing conditional mutation to offline table. Got status: " + status); } catch (AccumuloException ae) { Assert.assertEquals(TableOfflineException.class, ae.getCause().getClass()); } try { conn.createConditionalWriter(table, new ConditionalWriterConfig()); Assert.fail("Expected exception creating conditional writer to offline table"); } catch (TableOfflineException e) {} } }
@Test public void testDeleteTable() throws Exception { String table = getUniqueNames(1)[0]; Connector conn = getConnector(); try { conn.createConditionalWriter(table, new ConditionalWriterConfig()); Assert.fail("Creating conditional writer for table that doesn't exist should fail"); } catch (TableNotFoundException e) {} conn.tableOperations().create(table); try ( ConditionalWriter cw = conn.createConditionalWriter(table, new ConditionalWriterConfig())) { conn.tableOperations().delete(table); ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); Result result = cw.write(cm1); try { Status status = result.getStatus(); Assert.fail("Expected exception writing conditional mutation to deleted table. Got status: " + status); } catch (AccumuloException ae) { Assert.assertEquals(TableDeletedException.class, ae.getCause().getClass()); } } }
@Test public void testError() throws Exception { String table = getUniqueNames(1)[0]; Connector conn = getConnector(); conn.tableOperations().create(table); try ( ConditionalWriter cw = conn.createConditionalWriter(table, new ConditionalWriterConfig())) { IteratorSetting iterSetting = new IteratorSetting(5, BadIterator.class); ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq").setIterators(iterSetting)); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a"); Result result = cw.write(cm1); try { Status status = result.getStatus(); Assert .fail("Expected exception using iterator which throws an error, Got status: " + status); } catch (AccumuloException ae) { } } }
ConditionalMutation cm1 = new ConditionalMutation("r1", new Condition("tx", "seq")); cm1.put("tx", "seq", "1"); cm1.put("data", "x", "a");