private void writeLock(HLock lock, String seenLockIds) { Mutator<String> mutator = createMutator(keyspace, StringSerializer.get()); mutator.addInsertion(lock.getPath(), lockManagerConfigurator.getLockManagerCF(), createColumnForLock(lock.getLockId(), seenLockIds)); mutator.execute(); }
/** * Set the query as a String. Here for convienience. See above for some * caveats. Calls {@link StringSerializer#toByteBuffer(String)} directly. * @param query * @return */ public CqlQuery<K, N, V> setQuery(String query) { this.query = StringSerializer.get().toByteBuffer(query); return this; }
public String getString(N columnName) { return StringSerializer.get().fromByteBuffer(getColumnValue(columnName)); }
private byte[] convertDiscTypeToColValue(DiscriminatorType discType, Object value) { switch (discType) { case STRING: return StringSerializer.get().toBytes((String) value); case CHAR: return String.valueOf((Character) value).getBytes(); case INTEGER: return IntegerSerializer.get().toBytes((Integer) value); } throw new RuntimeException("must have added a new discriminator type, " + discType + ", because don't know how to convert db value - cannot continue"); }
protected CassandraLeafCounter findByKey(final Counter.Key ckey, final String marker) { final DynamicDelegatedSerializer<Object> serializer = new DynamicDelegatedSerializer<Object>(); final QueryResult<ColumnSlice<String, Object>> result = HFactory.createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), serializer) .setColumnFamily(family) .setRange(null, null, false, Integer.MAX_VALUE) .setKey(id(ckey, marker)) .execute(); if (result == null || result.get() == null || result.get().getColumns().isEmpty()) { return null; } return counter(ckey, serializer, result.get(), marker); }
public void testCompositeOrdering() { composite.addComponent("jeans", StringSerializer.get(), StringSerializer .get().getComparatorType().getTypeName()); composite.addComponent("jeans", StringSerializer.get(), StringSerializer .get().getComparatorType().getTypeName()); mutator.execute(); DynamicCompositeSerializer.get(), ByteBufferSerializer.get()); start.addComponent("jeans", StringSerializer.get(), StringSerializer.get() .getComparatorType().getTypeName(), ComponentEquality.EQUAL); end.addComponent("jeans", StringSerializer.get(), StringSerializer.get() .getComparatorType().getTypeName(), ComponentEquality.GREATER_THAN_EQUAL); sliceQuery.setRange(start, end, false, 1000); .get().getColumns(); System.out.println(ByteBufferUtil.bytesToHex(cols.get(0).getNameBytes())); assertEquals("jeans", composite.get(0, StringSerializer.get())); assertEquals("jeans", composite.get(0, StringSerializer.get()));
@Override public Map<String, NodeStatus> statuses() { final QueryResult<OrderedRows<String, String,Date>> result = HFactory.createRangeSlicesQuery(keyspace, StringSerializer.get(), StringSerializer.get(), DateSerializer.get()) .setColumnFamily(markerFamily) .setRange(null, null, false, Integer.MAX_VALUE) .execute(); if (result == null || result.get() == null) { return null; for (final Row<String, String, Date> status : result.get()) { final Collection<ValidationResult> validations = new LinkedList<ValidationResult>(); for (final HColumn<String, Date> col : status.getColumnSlice().getColumns()) { final QueryResult<ColumnSlice<String, String>> subResult = HFactory.createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()) .setColumnFamily(family) .setRange(null, null, false, Integer.MAX_VALUE) .setKey(col.getName()) .execute(); if (subResult == null || subResult.get() == null) { continue; final Date value = col.getValue(); if (maxDate == null || value == null) { maxDate = value;
@Override public ResultStatus execute() { Mutator<String> mutator = HFactory.createMutator(keyspace, stringSerializer); column.setName(dc); column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX"); mutator.addInsertion("TX:512", "StateNpaIndexStatic", column); column.setName(dc); column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX"); mutator.addInsertion("TX:512", "StateNpaIndexStatic", column); column.setName(dc); column.setValue("TIME WARNER COMMUNICATIONS AXS OF AUSTIN, TX"); mutator.addInsertion("TX:512", "StateNpaIndexStatic", column); HFactory.createSliceQuery(keyspace, stringSerializer, cs, stringSerializer); sliceQuery.setColumnFamily("StateNpaIndexStatic"); sliceQuery.setKey("TX:512"); sliceQuery.setRange(startRange, endRange, false, 10); QueryResult<ColumnSlice<Composite, String>> result = sliceQuery.execute(); ColumnSlice<Composite, String> cs = result.get(); for ( HColumn<Composite, String> col: cs.getColumns() ) { System.out.println(col.getName().getComponents()); System.out.println(col.getName().get(0, StringSerializer.get()));
/** * Reads all existing locks for this lock path * * @param lockPath * a lock path * @return a list of locks waiting on this lockpath */ private Map<String, String> readExistingLocks(HLock lock, String lockName) { // logger.debug("Started reading existing columns"); SliceQuery<String, String, String> sliceQuery = HFactory .createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()) .setColumnFamily(lockManagerConfigurator.getLockManagerCF()).setKey(lock.getPath()); sliceQuery.setColumnNames(lockName); QueryResult<ColumnSlice<String, String>> queryResult = sliceQuery.execute(); // logger.debug("Finished reading existing columns"); return getResults(queryResult); }
@Before public void setupLocal() { //setupClient(); Cluster cluster = getOrCreateCluster("MyCluster", "127.0.0.1:9170"); keyspace = createKeyspace("Keyspace1", cluster); Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get()); mutator.addInsertion("zznate", "Standard1", HFactory.createStringColumn("email", "nate@datastax.com")); mutator.addInsertion("zznate", "Standard1", HFactory.createColumn("int", 1, StringSerializer.get(), IntegerSerializer.get())); mutator.addInsertion("zznate", "Standard1", HFactory.createColumn("long", 1L, StringSerializer.get(), LongSerializer.get())); timeUUID = TimeUUIDUtils.getTimeUUID(System.currentTimeMillis()); mutator.addInsertion("zznate", "Standard1", HFactory.createColumn("uuid", timeUUID, StringSerializer.get(), UUIDSerializer.get())); mutator.execute(); }
/** * Get all account attributes * * @param mailbox * @return * @throws IOException */ public static Map<String, Object> getAll(final String mailbox) { // Create a query SliceQuery<String, String, byte[]> q = createSliceQuery(CassandraDAOFactory.getKeyspace(), strSe, strSe, byteSe); // set key, cf, range q.setColumnFamily(CF_ACCOUNTS).setKey(mailbox); q.setRange(null, null, false, BatchConstants.BATCH_READS); // TODO: make sure we get all columns // execute QueryResult<ColumnSlice<String, byte[]>> r = q.execute(); // read attributes from the result Map<String, Object> attributes = new HashMap<String, Object>(); for (HColumn<String, byte[]> c : r.get().getColumns()) { if( (c != null) && (c.getValue() != null)) { attributes.put(c.getName(), strSe.fromBytes(c.getValue())); } } return attributes; }
@Test public void testTruncateColumnFamily() throws Exception { ColumnFamilyDefinition cfDef = HFactory.createColumnFamilyDefinition("Keyspace1", "TruncateableCf"); cassandraCluster.addColumnFamily(cfDef); Keyspace workingKeyspace = HFactory.createKeyspace("Keyspace1", cassandraCluster); Mutator<String> mutator = HFactory.createMutator(workingKeyspace, StringSerializer.get()); mutator.insert("mykey", "TruncateableCf", HFactory.createStringColumn("mycolname", "myval")); ColumnQuery<String,String,String> q = HFactory.createColumnQuery(workingKeyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()); q.setKey("mykey").setName("mycolname").setColumnFamily("TruncateableCf"); assertEquals("myval",q.execute().get().getValue()); cassandraCluster.truncate("Keyspace1", "TruncateableCf"); assertNull(q.execute().get()); }
SliceQuery<byte[], String, byte[]> q = HFactory.createSliceQuery(keyspace, BytesArraySerializer.get(), StringSerializer.get(), BytesArraySerializer.get()); q.setColumnFamily(colFamName); q.setKey(colFamKey); q.setColumnNames(cfMapDef.getSliceColumnNameArr()); } else { q.setRange("", "", false, maxNumColumns); QueryResult<ColumnSlice<String, byte[]>> result = q.execute(); if (null == result || null == result.get()) { return null; T obj = createObject(cfMapDef, pkObj, result.get()); return obj;
.createRangeSlicesQuery( keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get() ) // if ( result.get().getCount() < 1 ) MutationResult mutationResult = HFactory.createMutator( keyspace, StringSerializer.get() ) // .addInsertion( repositoryId, cf, .execute(); logger.debug( "time to insert repository: {}", mutationResult.getExecutionTimeMicro() ); return repository; result.get().getList().get( 0 ).getColumnSlice().getColumnByName( REPOSITORY_NAME.toString() ).getValue() );
/** * Reads all existing locks for this lock path * * @param lockPath * a lock path * @return a list of locks waiting on this lockpath */ private Map<String, String> readExistingLocks(HLock lock) { // logger.debug("Started reading all columns"); SliceQuery<String, String, String> sliceQuery = HFactory .createSliceQuery(keyspace, StringSerializer.get(), StringSerializer.get(), StringSerializer.get()) .setColumnFamily(lockManagerConfigurator.getLockManagerCF()).setKey(lock.getPath()); //we only care about the first 2 locks, anything else is simply queued. Select 10 just to be safe if the clients aren't ordered properly sliceQuery.setRange(null, null, false, maxSelectSize); QueryResult<ColumnSlice<String, String>> queryResult = sliceQuery.execute(); // logger.debug("Finished reading all columns"); return getResults(queryResult); }
public static void main(String[] args) throws Exception { Cluster cluster = HFactory.getOrCreateCluster("TestCluster", "localhost:9160"); Keyspace keyspaceOperator = HFactory.createKeyspace("Keyspace1", cluster); try { Mutator<String> mutator = HFactory.createMutator(keyspaceOperator, StringSerializer.get()); mutator.insert("jsmith", "Standard1", HFactory.createStringColumn("first", "John")); ColumnQuery<String, String, String> columnQuery = HFactory.createStringColumnQuery(keyspaceOperator); columnQuery.setColumnFamily("Standard1").setKey("jsmith").setName("first"); QueryResult<HColumn<String, String>> result = columnQuery.execute(); System.out.println("Read HColumn from cassandra: " + result.get()); System.out.println("Verify on CLI with: get Keyspace1.Standard1['jsmith'] "); } catch (HectorException e) { e.printStackTrace(); } cluster.getConnectionManager().shutdown(); }
@Test public void testToggleMultiget() { Mutator<String> mutator = HFactory.createMutator(keyspace, StringSerializer.get()); mutator.addInsertion("patricioe", "Standard1", HFactory.createStringColumn("email", "patricioe@datastax.com")); mutator.addInsertion("patricioe", "Standard1", HFactory.createColumn("int", 2, StringSerializer.get(), IntegerSerializer.get())); mutator.addInsertion("patricioe", "Standard1", HFactory.createColumn("long", 2L, StringSerializer.get(), LongSerializer.get())); timeUUID = TimeUUIDUtils.getTimeUUID(System.currentTimeMillis()); mutator.addInsertion("patricioe", "Standard1", HFactory.createColumn("uuid", timeUUID, StringSerializer.get(), UUIDSerializer.get())); mutator.execute(); HColumnFamilyImpl<String, String> columnFamily = new HColumnFamilyImpl<String,String>(keyspace, "Standard1",StringSerializer.get(), StringSerializer.get()); columnFamily.addKey("zznate").addKey("patricioe").setCount(10); assertEquals("nate@datastax.com",columnFamily.getString("email")); assertTrue(columnFamily.hasNext()); columnFamily.next(); assertEquals("patricioe@datastax.com",columnFamily.getString("email")); assertFalse(columnFamily.hasNext()); try { columnFamily.next(); fail(); } catch (NoSuchElementException nsee) { assertNotNull(nsee); } } }
@Test public void testCreateColumn() { long clock = HFactory.createClock(); HColumn<String, Long> col = HFactory.createColumn("nameString", new Long("345"), clock); HColumn<String, Long> col2 = HFactory.createColumn("nameString", new Long("345"), clock, StringSerializer.get(), LongSerializer.get()); assertEquals(col.getName(), col2.getName()); assertEquals(col.getValue(), col2.getValue()); assertEquals(col.getClock(), col2.getClock()); } }
@Override public String getStoredType(ByteBuffer rowKey, String cfName, Keyspace keyspace) { SliceQuery<ByteBuffer, String, ByteBuffer> query = MappingUtils .buildSliceQuery(rowKey, columns, cfName, keyspace); QueryResult<ColumnSlice<String, ByteBuffer>> result = query.execute(); // only need to check > 0. If the entity wasn't tombstoned then we would // have loaded the static jpa marker column HColumn<String, ByteBuffer> descrimValue = result.get().getColumnByName( DISCRIMINAATOR_COL); if (descrimValue == null) { return null; } return StringSerializer.get().fromByteBuffer(descrimValue.getValue()); }
private void deleteLock(HLock lock) { // cancel the heartbeat task if it exists Future<Void> heartbeat = ((HLockImpl) lock).getHeartbeat(); if (heartbeat != null) { heartbeat.cancel(false); } Mutator<String> mutator = createMutator(keyspace, StringSerializer.get()); mutator.addDeletion(lock.getPath(), lockManagerConfigurator.getLockManagerCF(), lock.getLockId(), StringSerializer.get(), keyspace.createClock()); mutator.execute(); }