com.hazelcast.map
public interface EntryProcessor<K,V> extends Serializable
Map.Entry
. At the time you receive it
the entry is locked and not released until the EntryProcessor completes.
This obviates the need to explicitly lock as would be required with a ExecutorService
.
Performance can be very high as the data is not moved off the Member partition. This avoids network cost and, if
the storage format is InMemoryFormat.OBJECT
, then there is no de-serialization or serialization
cost.
EntryProcessors execute on the partition thread in a member. Multiple operations on the same partition are queued.
While executing partition migrations are not allowed. Any migrations are queued on the partition thread.
An EntryProcessor may not be re-entrant i.e. it may not access the same Map
. Limitation: you can only access
data on the same partition.
Note that to modify an entry by using EntryProcessors you should explicitly call the
Map.Entry.setValue(V)
method of Map.Entry
such as:
Override
public Object process(Map.Entry entry) {
Value value = entry.getValue();
// process and modify value
// ...
entry.setValue(value);
return result;
}
otherwise EntryProcessor does not guarantee that it will modify the entry.AbstractEntryProcessor
Modifier and Type | Method and Description |
---|---|
EntryBackupProcessor<K,V> |
getBackupProcessor()
Get the entry processor to be applied to backup entries.
|
Object |
process(Map.Entry<K,V> entry)
Process the entry without worrying about concurrency.
|
Object process(Map.Entry<K,V> entry)
Map.Entry.setValue(V)
method of Map.Entry
such as:
Override
public Object process(Map.Entry entry) {
Value value = entry.getValue();
// process and modify value
// ...
entry.setValue(value);
return result;
}
otherwise EntryProcessor does not guarantee to modify the entry.entry
- entry to be processedEntryBackupProcessor<K,V> getBackupProcessor()
Copyright © 2015 Hazelcast, Inc.. All Rights Reserved.