use of com.aerospike.client.large.LargeList in project aerospike-client-java by aerospike.
the class TestLargeList method runWithSerializedBin.
@Test
@SuppressWarnings("unchecked")
public void runWithSerializedBin() throws IOException {
if (!args.validateLDT()) {
return;
}
Key key = new Key(args.namespace, args.set, "accountId");
// Delete record if it already exists.
client.delete(null, key);
// Initialize large list operator.
LargeList list = client.getLargeList(null, key, "trades");
// Write trades
Map<String, Value> map = new HashMap<String, Value>();
ByteArrayOutputStream byteStream = new ByteArrayOutputStream(500);
DataOutputStream writer = new DataOutputStream(byteStream);
Calendar timestamp1 = new GregorianCalendar(2014, 6, 25, 12, 18, 43);
map.put("key", Value.get(timestamp1.getTimeInMillis()));
// ticker
writer.writeUTF("IBM");
// qty
writer.writeInt(100);
// price
writer.writeDouble(181.82);
map.put("value", Value.get(byteStream.toByteArray()));
list.add(Value.get(map));
Calendar timestamp2 = new GregorianCalendar(2014, 6, 26, 9, 33, 17);
map.put("key", Value.get(timestamp2.getTimeInMillis()));
byteStream.reset();
// ticker
writer.writeUTF("GE");
// qty
writer.writeInt(500);
// price
writer.writeDouble(26.36);
map.put("value", Value.get(byteStream.toByteArray()));
list.add(Value.get(map));
Calendar timestamp3 = new GregorianCalendar(2014, 6, 27, 14, 40, 19);
map.put("key", Value.get(timestamp3.getTimeInMillis()));
byteStream.reset();
// ticker
writer.writeUTF("AAPL");
// qty
writer.writeInt(75);
// price
writer.writeDouble(91.85);
map.put("value", Value.get(byteStream.toByteArray()));
list.add(Value.get(map));
// Verify list size
int size = list.size();
assertEquals(3, size);
// Filter on range of timestamps
Calendar begin = new GregorianCalendar(2014, 6, 26);
Calendar end = new GregorianCalendar(2014, 6, 28);
List<Map<String, Object>> results = (List<Map<String, Object>>) list.range(Value.get(begin.getTimeInMillis()), Value.get(end.getTimeInMillis()));
assertNotNull(results);
assertEquals(2, results.size());
// Verify data.
validateWithSerializedBin(results, 0, timestamp2, "GE", 500, 26.36);
validateWithSerializedBin(results, 1, timestamp3, "AAPL", 75, 91.85);
}
use of com.aerospike.client.large.LargeList in project aerospike-client-java by aerospike.
the class TestLargeList method filterLargeList.
@Test
public void filterLargeList() {
if (!args.validateLDT()) {
return;
}
Key key = new Key(args.namespace, args.set, "setkey");
// Delete record if it already exists.
client.delete(null, key);
// Initialize large set operator.
LargeList llist = client.getLargeList(null, key, binName);
int orig1 = 1;
int orig2 = 2;
int orig3 = 3;
int orig4 = 4;
// Write values.
llist.add(Value.get(orig1), Value.get(orig2), Value.get(orig3), Value.get(orig4));
// Filter on values
List<?> filterList = llist.filter("largelist_example", "my_filter_func", Value.get(orig3));
assertNotNull(filterList);
assertEquals(1, filterList.size());
Long v = (Long) filterList.get(0);
assertEquals(orig3, v.intValue());
}
use of com.aerospike.client.large.LargeList in project aerospike-client-java by aerospike.
the class TestLargeList method runVolumeInsert.
@Test
public void runVolumeInsert() {
if (!args.validateLDT()) {
return;
}
// This key has already been created in runSimpleExample().
Key key = new Key(args.namespace, args.set, "setkey");
int itemCount = 2000;
LargeList llist2 = client.getLargeList(null, key, "NumberBin");
for (int i = itemCount; i > 0; i--) {
llist2.add(Value.get(i));
}
assertEquals(2000, llist2.size());
}
use of com.aerospike.client.large.LargeList in project aerospike-client-java by aerospike.
the class InsertTaskSync method largeListAdd.
private void largeListAdd(Key key, Value value, long timestamp) {
// Create entry
Map<String, Value> entry = new HashMap<String, Value>();
entry.put("key", Value.get(timestamp));
entry.put("log", value);
// Add entry
LargeList list = client.getLargeList(args.writePolicy, key, "listltracker");
list.add(Value.get(entry));
}
use of com.aerospike.client.large.LargeList in project aerospike-client-java by aerospike.
the class RWTaskSync method largeListAdd.
private void largeListAdd(Key key, Value value, long timestamp) {
// Create entry
Map<String, Value> entry = new HashMap<String, Value>();
entry.put("key", Value.get(timestamp));
entry.put("log", value);
// Add entry
LargeList list = client.getLargeList(args.writePolicy, key, "listltracker");
list.add(Value.get(entry));
}
Aggregations