-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature request: support bulk ops for MultiMap, and TransactionalMultiMap #9079
Comments
Related: #46 |
Hi @mmedenjak @dmitrymz can i pick this up? Just to confirm, i see that in addition to Also, maybe getting ahead of myself, but am inclined to have separate PRs for |
Hi @abdulazizali77 ! Let's not rush it and let's first add And yes, it's best if you send separate PRs for |
Thanks @mmedenjak ! ill get cracking on the Probably getting ahead of myself again, but Im assuming that for this work, ill probably only make changes to the |
Yes, I think you'll have to add the definitions in the yaml files, re-generate the codecs as explained in the README document in your hazelcast repo branch and then use those new codecs in your hazelcast repo PR to add the client support. Feel free to take a look at some other and simpler methods in |
Thanks @mmedenjak Ill get back to you should i encounter uncertainties! |
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
Hi @mmedenjak apologies for the very late update, ive put up the initial PR and my thought about the design (and uncertainties) and implementation detailed there. PTAL |
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
…nd Key and Collection (hazelcast#9079) Implement ClientMultiMapProxy, corresponding PutAllMessageTask, unit tests and copy in generated codec. Address comments and fix MultiMap javadoc. Add new Precondition to throw given Exception.
…d Key and Collection (hazelcast#9079) Implement ClientMultiMapProxy, corresponding PutAllMessageTask, unit tests and copy in generated codec. Address comments and fix MultiMap javadoc. Add new Precondition to throw given Exception.
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
…d Key and Collection (hazelcast#9079) Implement ClientMultiMapProxy, corresponding PutAllMessageTask, unit tests and copy in generated codec. Address comments and fix MultiMap javadoc. Add new Precondition to throw given Exception.
…ted classes (hazelcast#9079) Remove non async putAll interfaces. Modify MultiMap.putAllInternal interface to take in Data, Data. Amend MultiMap.putAllAsync javadoc. Remove streams implementation Fix PutAllOperation record saving implementation. Fix incorrect MultimapDataSerializerHook reference. Implement Preconditions.checkTrue to take in class type.
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
…d Key and Collection (hazelcast#9079) Implement ClientMultiMapProxy, corresponding PutAllMessageTask, unit tests and copy in generated codec. Address comments and fix MultiMap javadoc. Add new Precondition to throw given Exception.
…ted classes (hazelcast#9079) Remove non async putAll interfaces. Modify MultiMap.putAllInternal interface to take in Data, Data. Amend MultiMap.putAllAsync javadoc. Remove streams implementation Fix PutAllOperation record saving implementation. Fix incorrect MultimapDataSerializerHook reference. Implement Preconditions.checkTrue to take in class type.
Add and implement two new interfaces putAllAsync and putAll. Implementation is partition aware and follows Map.putAllInternal. Add two new operation classes, MultiMapPutAllOperationFactory and PutAllOperation which also follows the partitioning in Map PutAll operation flow. Modify MultiMap serializer hook to add new operations. Add stub for ClientMultiMapProxy.
…p<Data, Collection<Data>> (hazelcast#9079) Update generated codecs and tests.
rename variables, remove unused variables, use assertEventually idiom, remove sleep in tests
Add two new interfaces for MultiMap.putAllAsync and implement for MultiMapProxyImpl and ClientMultiMapProxy. Add new operation classes, MultiMapPutAllOperationFactory, PutAllOperation and PutAllBackupOperation. Add corresponding tests for bulk put, statistics and backup. Add new client protocol codecs MultiMapPutAllCodec and ListDataCodec and new message handler MultiMapPutAllMessageTask. Update generated client protocol tests and resources. Add new Preconditions.checkTrueUnsupportedOperation.
Add two new interfaces for MultiMap.putAllAsync and implement for MultiMapProxyImpl and ClientMultiMapProxy. Add new operation classes, MultiMapPutAllOperationFactory, PutAllOperation and PutAllBackupOperation. Add corresponding tests for bulk put, statistics and backup. Add new client protocol codecs MultiMapPutAllCodec and ListDataCodec and new message handler MultiMapPutAllMessageTask. Update generated client protocol tests and resources. Add new Preconditions.checkTrueUnsupportedOperation.
@mmedenjak , should the issue be renamed? |
No need, I'll just mention here that we will not be investing time into transactions at the moment. For more information, see here. Users trying to create enhancement issues for transactional map can now still find this issue and see what was the discussion outcome. |
Modify interface to return Map<K,V>
Add generated protocol codec class and files
Modify interface to return Map<K,V>
Add generated codec
Rename GetAllOperation to GetOperation
Implement new MultiMapGetAllOperationFactory and MultiMapGetAllOperation. Add new LockWaitNotifyKeySet Implement getAll and getAllInternal for local Proxy and ClientProxy Define new getAll tests.
Modify interface to return Map<K,V>
Rename GetAllOperation to GetOperation
Implement new MultiMapGetAllOperationFactory and MultiMapGetAllOperation. Add new LockWaitNotifyKeySet Implement getAll and getAllInternal for local Proxy and ClientProxy Define new getAll tests.
Add getAllAsync interface and implementation. Add and modify corresponding tests
Add generated codec and tests resources
Remove getAll sync and corresponding tests
Add two new interfaces for MultiMap.putAllAsync and implement for MultiMapProxyImpl and ClientMultiMapProxy. Add new operation classes, MultiMapPutAllOperationFactory, PutAllOperation and PutAllBackupOperation. Add corresponding tests for bulk put, statistics and backup. Add new client protocol codecs MultiMapPutAllCodec and ListDataCodec and new message handler MultiMapPutAllMessageTask. Update generated client protocol tests and resources. Add new Preconditions.checkTrueUnsupportedOperation.
It will be great to add support for bulk operations for
MultiMap
, andTransactionalMultiMap
, same asIMap.getAll(Set<K> keys)
, andputAll()
.Absence of this functionality makes us use
IMap
with lists which is inefficient and high-maintenanceThe text was updated successfully, but these errors were encountered: