Search in sources :

Example 21 with PartitionIdSet

use of com.hazelcast.internal.util.collection.PartitionIdSet in project hazelcast by hazelcast.

the class MapEntrySetTest method whenSelectingPartitionSubset.

@Test
public void whenSelectingPartitionSubset() {
    PartitionIdSet partitionSubset = new PartitionIdSet(4, asList(1, 3));
    Set<String> matchingKeys = new HashSet<>();
    for (int i = 0; i < 5; i++) {
        String key = generateKeyForPartition(instance, i);
        map.put(key, key);
        if (partitionSubset.contains(i)) {
            matchingKeys.add(key);
        }
    }
    Set<Entry<String, String>> result = ((MapProxyImpl<String, String>) map).entrySet(Predicates.alwaysTrue(), partitionSubset);
    assertEquals(2, result.size());
    for (String key : matchingKeys) {
        assertResultContains(result, key, key);
    }
}
Also used : SimpleEntry(java.util.AbstractMap.SimpleEntry) Entry(java.util.Map.Entry) PartitionIdSet(com.hazelcast.internal.util.collection.PartitionIdSet) MapProxyImpl(com.hazelcast.map.impl.proxy.MapProxyImpl) HashSet(java.util.HashSet) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 22 with PartitionIdSet

use of com.hazelcast.internal.util.collection.PartitionIdSet in project hazelcast by hazelcast.

the class MapValuesTest method whenSelectingPartitionSubset_withIndex.

@Test
public void whenSelectingPartitionSubset_withIndex() {
    PartitionIdSet partitionSubset = new PartitionIdSet(4, asList(1, 3));
    Set<String> matchingKeys = new HashSet<>();
    map = instance.getMap("indexed");
    for (int i = 0; i < 5; i++) {
        String key = generateKeyForPartition(instance, i);
        map.put(key, key);
        if (partitionSubset.contains(i)) {
            matchingKeys.add(key);
        }
    }
    // "" is sorted before any non-null string - internally all items from all partitions are added
    // to the result (because the index is global), but there's a code that eliminates partitions not
    // in the subset - this test aims to test that code
    Predicate<String, String> predicate = Predicates.greaterThan("this", "");
    Collection<String> result = ((MapProxyImpl<String, String>) map).values(predicate, partitionSubset);
    assertEquals(2, result.size());
    assertEquals(matchingKeys, result);
}
Also used : PartitionIdSet(com.hazelcast.internal.util.collection.PartitionIdSet) MapProxyImpl(com.hazelcast.map.impl.proxy.MapProxyImpl) HashSet(java.util.HashSet) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 23 with PartitionIdSet

use of com.hazelcast.internal.util.collection.PartitionIdSet in project hazelcast by hazelcast.

the class MapValuesTest method whenSelectingPartitionSubset.

@Test
public void whenSelectingPartitionSubset() {
    PartitionIdSet partitionSubset = new PartitionIdSet(4, asList(1, 3));
    Set<String> matchingKeys = new HashSet<>();
    for (int i = 0; i < 5; i++) {
        String key = generateKeyForPartition(instance, i);
        map.put(key, key);
        if (partitionSubset.contains(i)) {
            matchingKeys.add(key);
        }
    }
    Collection<String> result = ((MapProxyImpl<String, String>) map).values(Predicates.alwaysTrue(), partitionSubset);
    assertEquals(matchingKeys, result);
}
Also used : PartitionIdSet(com.hazelcast.internal.util.collection.PartitionIdSet) MapProxyImpl(com.hazelcast.map.impl.proxy.MapProxyImpl) HashSet(java.util.HashSet) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 24 with PartitionIdSet

use of com.hazelcast.internal.util.collection.PartitionIdSet in project hazelcast by hazelcast.

the class MapValuesTest method when_selectingPartitionSubset_and_partitionPredicate.

@Test
public void when_selectingPartitionSubset_and_partitionPredicate() {
    PartitionIdSet partitionSubset = new PartitionIdSet(4, asList(1, 3));
    Set<String> matchingKeys = new HashSet<>();
    String key1 = null;
    for (int i = 0; i < 5; i++) {
        String key = generateKeyForPartition(instance, i);
        if (i == 1) {
            key1 = key;
        }
        map.put(key, key);
        if (partitionSubset.contains(i)) {
            matchingKeys.add(key);
        }
    }
    Collection<String> result = ((MapProxyImpl<String, String>) map).values(partitionPredicate(key1, Predicates.alwaysTrue()), partitionSubset);
    assertEquals(Collections.singleton(key1), result);
}
Also used : PartitionIdSet(com.hazelcast.internal.util.collection.PartitionIdSet) MapProxyImpl(com.hazelcast.map.impl.proxy.MapProxyImpl) HashSet(java.util.HashSet) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Example 25 with PartitionIdSet

use of com.hazelcast.internal.util.collection.PartitionIdSet in project hazelcast by hazelcast.

the class MapFetchIndexOperationTest method testFullScan.

@Test
public void testFullScan() throws ExecutionException, InterruptedException {
    PartitionIdSet partitions = getLocalPartitions(instance);
    IndexIterationPointer[] pointers = new IndexIterationPointer[1];
    pointers[0] = IndexIterationPointer.create(null, true, null, true, false, null);
    MapOperationProvider operationProvider = getOperationProvider(map);
    MapOperation operation = operationProvider.createFetchIndexOperation(mapName, orderedIndexName, pointers, partitions, 20);
    Address address = instance.getCluster().getLocalMember().getAddress();
    OperationServiceImpl operationService = getOperationService(instance);
    MapFetchIndexOperationResult result = operationService.createInvocationBuilder(MapService.SERVICE_NAME, operation, address).<MapFetchIndexOperationResult>invoke().get();
    assertResultSorted(result, Arrays.asList(new Person("person6", null, "Dep1"), new Person("person7", null, null), new Person("person2", 39, "Dep1"), new Person("person5", 43, "Dep2"), new Person("person1", 45, "Dep1"), new Person("person4", 45, "Dep2"), new Person("person9", 45, "Dep3"), new Person("person10", 45, "Dep4"), new Person("person11", 45, "Dep5"), new Person("person3", 60, "Dep1"), new Person("person8", 79, null)));
}
Also used : Address(com.hazelcast.cluster.Address) IndexIterationPointer(com.hazelcast.internal.iteration.IndexIterationPointer) PartitionIdSet(com.hazelcast.internal.util.collection.PartitionIdSet) MapFetchIndexOperationResult(com.hazelcast.map.impl.operation.MapFetchIndexOperation.MapFetchIndexOperationResult) OperationServiceImpl(com.hazelcast.spi.impl.operationservice.impl.OperationServiceImpl) ParallelJVMTest(com.hazelcast.test.annotation.ParallelJVMTest) QuickTest(com.hazelcast.test.annotation.QuickTest) Test(org.junit.Test)

Aggregations

PartitionIdSet (com.hazelcast.internal.util.collection.PartitionIdSet)55 QuickTest (com.hazelcast.test.annotation.QuickTest)24 Test (org.junit.Test)24 ParallelJVMTest (com.hazelcast.test.annotation.ParallelJVMTest)23 MapProxyImpl (com.hazelcast.map.impl.proxy.MapProxyImpl)13 Address (com.hazelcast.cluster.Address)12 IndexIterationPointer (com.hazelcast.internal.iteration.IndexIterationPointer)11 OperationServiceImpl (com.hazelcast.spi.impl.operationservice.impl.OperationServiceImpl)11 MapFetchIndexOperationResult (com.hazelcast.map.impl.operation.MapFetchIndexOperation.MapFetchIndexOperationResult)10 HashSet (java.util.HashSet)10 Predicate (com.hazelcast.query.Predicate)7 ArrayList (java.util.ArrayList)7 Data (com.hazelcast.internal.serialization.Data)5 UUID (java.util.UUID)5 HazelcastInstance (com.hazelcast.core.HazelcastInstance)4 IPartitionService (com.hazelcast.internal.partition.IPartitionService)4 Indexes (com.hazelcast.query.impl.Indexes)4 List (java.util.List)4 SetUtil.singletonPartitionIdSet (com.hazelcast.internal.util.SetUtil.singletonPartitionIdSet)3 QueryResultSizeExceededException (com.hazelcast.map.QueryResultSizeExceededException)3