Hazelcast EntryProcessor #251
Replies: 2 comments 4 replies
-
Hello @rene-m-hernandez In my understanding Anyway, feel free to make an benchmark. The most easy way to benchmark import com.hazelcast.core.Offloadable;
import com.hazelcast.map.EntryProcessor;
import java.util.Map;
public class HazelcastEntryProcessorOffloadableWrapper<K, T, R> implements Offloadable, EntryProcessor<K, T, R> {
private final EntryProcessor<K, T, R> targetProcessor;
public HazelcastEntryProcessorOffloadableWrapper(EntryProcessor<K, T, R> targetProcessor) {
this.targetProcessor = targetProcessor;
}
@Override
public String getExecutorName() {
return "my-executor";
}
@Override
public R process(Map.Entry<K, T> entry) {
return targetProcessor.process(entry);
}
@Override
public EntryProcessor<K, T, R> getBackupProcessor() {
return targetProcessor.getBackupProcessor();
}
} import java.util.*;
import java.util.concurrent.CompletionStage;
import java.util.concurrent.TimeUnit;
import java.util.function.BiFunction;
import java.util.function.Function;
public class IMapOffloadableDecorator<K, V> implements IMap<K, V> {
private final IMap<K, V> targetMap;
public IMapOffloadableDecorator(IMap<K, V> targetMap) {
this.targetMap = targetMap;
}
@Override
public <R> CompletionStage<R> submitToKey(K key, EntryProcessor<K, V, R> entryProcessor) {
return targetMap.submitToKey(key, new HazelcastEntryProcessorOffloadableWrapper<K, V, R>(entryProcessor));
}
@Override
public <R> R executeOnKey(K key, EntryProcessor<K, V, R> entryProcessor) {
return targetMap.executeOnKey(key, new HazelcastEntryProcessorOffloadableWrapper<K, V, R>(entryProcessor));
}
...
another methods in same style. Also Lombok can be used for fast decorator implementation.
...
} |
Beta Was this translation helpful? Give feedback.
-
@rene-m-hernandez ability to specify custom executor has been released with version 7.5.0 |
Beta Was this translation helpful? Give feedback.
-
Hello,
I noticed Bucket4j HazlecastEntryProcessor does not implement the Offloadable interface.
The Hazelcast documentation seems to suggest that we might stand to benefit from implementing it. If I am reading documentation correctly, I think it might be possible to expose this feature in backwards compatible manner. WDYT?
Beta Was this translation helpful? Give feedback.
All reactions