Search in sources :

Example 6 with Remove

use of io.pravega.client.tables.Remove in project pravega by pravega.

the class KeyValueTableImpl method update.

@Override
public CompletableFuture<List<Version>> update(@NonNull Iterable<TableModification> updates) {
    val inputIterator = updates.iterator();
    if (!inputIterator.hasNext()) {
        // Empty input - nothing to do.
        return CompletableFuture.completedFuture(Collections.emptyList());
    }
    val firstInput = inputIterator.next();
    val ts = this.selector.getTableSegment(firstInput.getKey().getPrimaryKey());
    if (firstInput.isRemoval()) {
        val args = toArg(firstInput, inputIterator, ts, u -> this.entryHelper.toTableSegmentKey(ts, (Remove) u));
        return removeFromSegment(args.getTableSegment(), args.getAllArgs()).thenApply(r -> Collections.emptyList());
    } else {
        val args = toArg(firstInput, inputIterator, ts, u -> this.entryHelper.toTableSegmentEntry(ts, (TableEntryUpdate) u));
        return updateToSegment(args.getTableSegment(), args.getAllArgs());
    }
}
Also used : lombok.val(lombok.val) Remove(io.pravega.client.tables.Remove) TableEntryUpdate(io.pravega.client.tables.TableEntryUpdate)

Aggregations

Remove (io.pravega.client.tables.Remove)6 lombok.val (lombok.val)6 Insert (io.pravega.client.tables.Insert)5 Put (io.pravega.client.tables.Put)5 TableKey (io.pravega.client.tables.TableKey)5 Cleanup (lombok.Cleanup)5 Test (org.junit.Test)5 BadKeyVersionException (io.pravega.client.tables.BadKeyVersionException)4 Version (io.pravega.client.tables.Version)4 Random (java.util.Random)4 AtomicInteger (java.util.concurrent.atomic.AtomicInteger)4 KeyValueTableInfo (io.pravega.client.admin.KeyValueTableInfo)3 Serializer (io.pravega.client.stream.Serializer)3 KeyValueTable (io.pravega.client.tables.KeyValueTable)3 KeyValueTableConfiguration (io.pravega.client.tables.KeyValueTableConfiguration)3 TableEntry (io.pravega.client.tables.TableEntry)3 TableModification (io.pravega.client.tables.TableModification)3 BitConverter (io.pravega.common.util.BitConverter)3 AssertExtensions (io.pravega.test.common.AssertExtensions)3 LeakDetectorTestSuite (io.pravega.test.common.LeakDetectorTestSuite)3