Search in sources :

Example 26 with Record

use of com.aerospike.client.Record in project aerospike-client-java by aerospike.

the class TestBatch method batchReads.

@Test
public void batchReads() {
    Key[] keys = new Key[Size];
    for (int i = 0; i < Size; i++) {
        keys[i] = new Key(args.namespace, args.set, KeyPrefix + (i + 1));
    }
    Record[] records = client.get(null, keys, BinName);
    assertEquals(Size, records.length);
    for (int i = 0; i < records.length; i++) {
        Key key = keys[i];
        Record record = records[i];
        if (i != 5) {
            assertBinEqual(key, record, BinName, ValuePrefix + (i + 1));
        } else {
            assertBinEqual(key, record, BinName, i + 1);
        }
    }
}
Also used : Record(com.aerospike.client.Record) Key(com.aerospike.client.Key) Test(org.junit.Test)

Example 27 with Record

use of com.aerospike.client.Record in project aerospike-client-java by aerospike.

the class Serialize method testList.

/**
 * Write list using standard java serializer.
 */
public void testList(AerospikeClient client, Parameters params) throws Exception {
    Key key = new Key(params.namespace, params.set, "seriallistkey");
    // Delete record if it already exists.
    client.delete(params.writePolicy, key);
    console.info("Initialize list");
    ArrayList<String> list = new ArrayList<String>();
    list.add("string1");
    list.add("string2");
    list.add("string3");
    Bin bin = new Bin(params.getBinName("serialbin"), (Object) list);
    console.info("Write list using serializer.");
    client.put(params.writePolicy, key, bin);
    console.info("Read list using serializer.");
    Record record = client.get(params.policy, key, bin.name);
    if (record == null) {
        throw new Exception(String.format("Failed to get: namespace=%s set=%s key=%s", key.namespace, key.setName, key.userKey));
    }
    List<?> received;
    try {
        received = (List<?>) record.getValue(bin.name);
    } catch (Exception e) {
        throw new Exception(String.format("Failed to parse returned value: namespace=%s set=%s key=%s bin=%s", key.namespace, key.setName, key.userKey, bin.name));
    }
    if (received.size() != 3) {
        throw new Exception(String.format("Array length mismatch: Expected=%d Received=%d", 3, received.size()));
    }
    for (int i = 0; i < received.size(); i++) {
        String expected = "string" + (i + 1);
        if (!received.get(i).equals(expected)) {
            Object obj = received.get(i);
            throw new Exception(String.format("Mismatch: index=%d expected=%s received=%s", i, expected, obj));
        }
    }
    console.info("Read list successful.");
}
Also used : Bin(com.aerospike.client.Bin) ArrayList(java.util.ArrayList) Record(com.aerospike.client.Record) Key(com.aerospike.client.Key)

Example 28 with Record

use of com.aerospike.client.Record in project aerospike-client-java by aerospike.

the class Serialize method testArray.

/**
 * Write array of integers using standard java serializer..
 */
public void testArray(AerospikeClient client, Parameters params) throws Exception {
    Key key = new Key(params.namespace, params.set, "serialarraykey");
    // Delete record if it already exists.
    client.delete(params.writePolicy, key);
    console.info("Initialize array");
    int[] array = new int[10000];
    for (int i = 0; i < 10000; i++) {
        array[i] = i * i;
    }
    Bin bin = new Bin(params.getBinName("serialbin"), array);
    // Do a test that pushes this complex object through the serializer
    console.info("Write array using serializer.");
    client.put(params.writePolicy, key, bin);
    console.info("Read array using serializer.");
    Record record = client.get(params.policy, key, bin.name);
    if (record == null) {
        throw new Exception(String.format("Failed to get: namespace=%s set=%s key=%s", key.namespace, key.setName, key.userKey));
    }
    int[] received;
    try {
        received = (int[]) record.getValue(bin.name);
    } catch (Exception e) {
        throw new Exception(String.format("Failed to parse returned value: namespace=%s set=%s key=%s bin=%s", key.namespace, key.setName, key.userKey, bin.name));
    }
    if (received.length != 10000) {
        throw new Exception(String.format("Array length mismatch: Expected=%d Received=%d", 10000, received.length));
    }
    for (int i = 0; i < 10000; i++) {
        if (received[i] != i * i) {
            throw new Exception(String.format("Mismatch: index=%d expected=%d received=%d", i, i * i, received[i]));
        }
    }
    console.info("Read array successful.");
}
Also used : Bin(com.aerospike.client.Bin) Record(com.aerospike.client.Record) Key(com.aerospike.client.Key)

Example 29 with Record

use of com.aerospike.client.Record in project aerospike-client-java by aerospike.

the class Serialize method testComplex.

/**
 * Write complex object using standard java serializer.
 */
public void testComplex(AerospikeClient client, Parameters params) throws Exception {
    Key key = new Key(params.namespace, params.set, "serialcomplexkey");
    // Delete record if it already exists.
    client.delete(params.writePolicy, key);
    console.info("Initialize complex object");
    ArrayList<Object> inner = new ArrayList<Object>();
    inner.add("string2");
    inner.add(8);
    HashMap<Object, Object> innerMap = new HashMap<Object, Object>();
    innerMap.put("a", 1);
    innerMap.put(2, "b");
    innerMap.put("list", inner);
    ArrayList<Object> list = new ArrayList<Object>();
    list.add("string1");
    list.add(4);
    list.add(inner);
    list.add(innerMap);
    Bin bin = new Bin(params.getBinName("complexbin"), new Value.BlobValue(list));
    console.info("Write complex object using serializer.");
    client.put(params.writePolicy, key, bin);
    console.info("Read complex object using serializer.");
    Record record = client.get(params.policy, key, bin.name);
    if (record == null) {
        throw new Exception(String.format("Failed to get: namespace=%s set=%s key=%s", key.namespace, key.setName, key.userKey));
    }
    Object received;
    try {
        received = (List<?>) record.getValue(bin.name);
    } catch (Exception e) {
        throw new Exception(String.format("Failed to parse returned value: namespace=%s set=%s key=%s bin=%s", key.namespace, key.setName, key.userKey, bin.name));
    }
    if (received != null && received.equals(list)) {
        console.info("Data matched: namespace=%s set=%s key=%s bin=%s value=%s", key.namespace, key.setName, key.userKey, bin.name, received);
    } else {
        console.error("Data mismatch");
        console.error("Expected " + list);
        console.error("Received " + received);
    }
    console.info("Read complex object successful.");
}
Also used : HashMap(java.util.HashMap) Bin(com.aerospike.client.Bin) ArrayList(java.util.ArrayList) Value(com.aerospike.client.Value) Record(com.aerospike.client.Record) Key(com.aerospike.client.Key)

Example 30 with Record

use of com.aerospike.client.Record in project aerospike-client-java by aerospike.

the class UserDefinedFunction method writeIfNotExists.

private void writeIfNotExists(AerospikeClient client, Parameters params) throws Exception {
    Key key = new Key(params.namespace, params.set, "udfkey3");
    String binName = "udfbin3";
    // Delete record if it already exists.
    client.delete(params.writePolicy, key);
    // Write record only if not already exists. This should succeed.
    client.execute(params.writePolicy, key, "record_example", "writeUnique", Value.get(binName), Value.get("first"));
    // Verify record written.
    Record record = client.get(params.policy, key, binName);
    String expected = "first";
    String received = record.getString(binName);
    if (received != null && received.equals(expected)) {
        console.info("Record written: namespace=%s set=%s key=%s bin=%s value=%s", key.namespace, key.setName, key.userKey, binName, received);
    } else {
        console.error("Data mismatch: Expected %s. Received %s.", expected, received);
    }
    // Write record second time. This should fail.
    console.info("Attempt second write.");
    client.execute(params.writePolicy, key, "record_example", "writeUnique", Value.get(binName), Value.get("second"));
    // Verify record not written.
    record = client.get(params.policy, key, binName);
    received = record.getString(binName);
    if (received != null && received.equals(expected)) {
        console.info("Success. Record remained unchanged: namespace=%s set=%s key=%s bin=%s value=%s", key.namespace, key.setName, key.userKey, binName, received);
    } else {
        console.error("Data mismatch: Expected %s. Received %s.", expected, received);
    }
}
Also used : Record(com.aerospike.client.Record) Key(com.aerospike.client.Key)

Aggregations

Record (com.aerospike.client.Record)259 Key (com.aerospike.client.Key)140 Test (org.junit.Test)139 ArrayList (java.util.ArrayList)75 Bin (com.aerospike.client.Bin)70 AerospikeException (com.aerospike.client.AerospikeException)62 Value (com.aerospike.client.Value)54 WritePolicy (com.aerospike.client.policy.WritePolicy)47 List (java.util.List)41 HashMap (java.util.HashMap)36 ThrowingRunnable (org.junit.function.ThrowingRunnable)32 BatchPolicy (com.aerospike.client.policy.BatchPolicy)29 Policy (com.aerospike.client.policy.Policy)29 Statement (com.aerospike.client.query.Statement)23 RecordSet (com.aerospike.client.query.RecordSet)22 Expression (com.aerospike.client.exp.Expression)18 Map (java.util.Map)15 HLLValue (com.aerospike.client.Value.HLLValue)14 Collections.singletonList (java.util.Collections.singletonList)9 MapPolicy (com.aerospike.client.cdt.MapPolicy)7