use of org.apache.ignite.lang.ByteArray in project ignite-3 by apache.
the class ConcurrentHashMapPartitionStorage method removeAll.
/**
* {@inheritDoc}
*/
@Override
public Collection<SearchRow> removeAll(List<? extends SearchRow> keys) {
var skippedRows = new ArrayList<SearchRow>(keys.size());
for (SearchRow key : keys) {
byte[] keyBytes = key.keyBytes();
byte[] removedValueBytes = map.remove(new ByteArray(keyBytes));
if (removedValueBytes == null) {
skippedRows.add(key);
}
}
return skippedRows;
}
use of org.apache.ignite.lang.ByteArray in project ignite-3 by apache.
the class ConcurrentHashMapPartitionStorage method snapshot.
/**
* {@inheritDoc}
*/
@Override
@NotNull
public CompletableFuture<Void> snapshot(Path snapshotPath) {
return CompletableFuture.runAsync(() -> {
try (OutputStream out = Files.newOutputStream(snapshotPath.resolve(SNAPSHOT_FILE));
ObjectOutputStream objOut = new ObjectOutputStream(out)) {
objOut.writeObject(map.keySet().stream().map(ByteArray::bytes).collect(toList()));
objOut.writeObject(new ArrayList<>(map.values()));
} catch (Exception e) {
throw new IgniteInternalException(e);
}
});
}
use of org.apache.ignite.lang.ByteArray in project ignite-3 by apache.
the class WatchAggregatorTest method testTwoEqualCollectionCriteriaUnion.
@Test
public void testTwoEqualCollectionCriteriaUnion() {
var watchAggregator = new WatchAggregator();
watchAggregator.add(Arrays.asList(new ByteArray("key1"), new ByteArray("key2")), null);
watchAggregator.add(Arrays.asList(new ByteArray("key1"), new ByteArray("key2")), null);
var keyCriterion = watchAggregator.watch(0, null).get().keyCriterion();
var expKeyCriterion = new KeyCriterion.CollectionCriterion(new HashSet<>(Arrays.asList(new ByteArray("key1"), new ByteArray("key2"))));
assertEquals(expKeyCriterion, keyCriterion);
}
use of org.apache.ignite.lang.ByteArray in project ignite-3 by apache.
the class WatchAggregatorTest method testTwoExactCriteriaUnion.
@Test
public void testTwoExactCriteriaUnion() {
var watchAggregator = new WatchAggregator();
watchAggregator.add(new ByteArray("key1"), null);
watchAggregator.add(new ByteArray("key2"), null);
var keyCriterion = watchAggregator.watch(0, null).get().keyCriterion();
var expKeyCriterion = new KeyCriterion.CollectionCriterion(new HashSet<>(Arrays.asList(new ByteArray("key1"), new ByteArray("key2"))));
assertEquals(expKeyCriterion, keyCriterion);
}
use of org.apache.ignite.lang.ByteArray in project ignite-3 by apache.
the class WatchAggregatorTest method testEventsRouting.
@Test
public void testEventsRouting() {
var watchAggregator = new WatchAggregator();
var lsnr1 = mock(WatchListener.class);
var lsnr2 = mock(WatchListener.class);
watchAggregator.add(new ByteArray("1"), lsnr1);
watchAggregator.add(new ByteArray("2"), lsnr2);
var entryEvt1 = new EntryEvent(entry("1", "value1", 1, 1), entry("1", "value1n", 1, 1));
var entryEvt2 = new EntryEvent(entry("2", "value2", 1, 1), entry("2", "value2n", 1, 1));
watchAggregator.watch(1, (v1, v2) -> {
}).get().listener().onUpdate(new WatchEvent(List.of(entryEvt1, entryEvt2)));
var watchEvt1Res = ArgumentCaptor.forClass(WatchEvent.class);
verify(lsnr1).onUpdate(watchEvt1Res.capture());
assertEquals(List.of(entryEvt1), watchEvt1Res.getValue().entryEvents());
var watchEvt2Res = ArgumentCaptor.forClass(WatchEvent.class);
verify(lsnr2).onUpdate(watchEvt2Res.capture());
assertEquals(List.of(entryEvt2), watchEvt2Res.getValue().entryEvents());
}
Aggregations