Skip to content
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

Improve client implementations of JDK8 default methods #17624

Open
mmedenjak opened this issue Sep 25, 2020 · 6 comments
Open

Improve client implementations of JDK8 default methods #17624

mmedenjak opened this issue Sep 25, 2020 · 6 comments
Assignees
Milestone

Comments

@mmedenjak
Copy link
Contributor

In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works.

@kosuruvarunkumar
Copy link

I would like to work on this. Can I please get some help on getting this done?
Thank you

@mmedenjak

@mmedenjak
Copy link
Contributor Author

mmedenjak commented Oct 16, 2020

As mentioned on community slack (https://hazelcastcommunity.slack.com/archives/C0159HP69E3/p1602773637047400), please get in touch with @sancar and @asimarslan for guidance.
It is also possible that I was completely wrong in my assumptions and that there's no work to be done on client side, but this needs to be verified.

@Prabusrit
Copy link
Contributor

@mmedenjak I'm new to this repo. I would like to work on this, Can I start ?
@kosuruvarunkumar Can you confirm if you are working on this ?

@mmedenjak
Copy link
Contributor Author

mmedenjak commented Jul 23, 2021

Hey @Prabusrit ! You can fork the Hazelcast repo - see how to fork a repo here. After that, you create a branch and make the necessary changes and finally you can submit a PR. We'll review it and try to get it merged.

As for what needs to be done, best get in touch with my colleagues that I mentioned above.

Prabusrit pushed a commit to Prabusrit/hazelcast that referenced this issue Sep 9, 2021
hazelcast#17624
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit pushed a commit to Prabusrit/hazelcast that referenced this issue Sep 9, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit added a commit to Prabusrit/hazelcast that referenced this issue Sep 9, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit added a commit to Prabusrit/hazelcast that referenced this issue Sep 29, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit added a commit to Prabusrit/hazelcast that referenced this issue Oct 1, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit added a commit to Prabusrit/hazelcast that referenced this issue Oct 6, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
Prabusrit added a commit to Prabusrit/hazelcast that referenced this issue Nov 11, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
sancar pushed a commit that referenced this issue Nov 15, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
sancar pushed a commit to sancar/hazelcast that referenced this issue Dec 13, 2021
Issue Description: "In some cases, the default implementations are very inefficient (e.g. Map.replaceAll and forEach fetching all entries and iterating over them locally). This was improved on member-side as the cluster version is available and in some cases we opted for using entry processors instead.

On the client-side, the cluster version is not available which meant it ends up still using the default version. This should be improved by adding full client support for some of the default methods (some are acceptable as-is), which means changing the client protocol, adding codecs, tasks, the works."
@michel-zedler
Copy link

Default method replaceAll was improved by merged PR #19508 - @mmedenjak @Prabusrit are there any other related PRs?
Which other default methods are waiting to be improved?

@mmedenjak
Copy link
Contributor Author

I don't know which methods are left. To close this issue, someone needs to check all JDK 8 default methods, see if there is any which needs improving and if there isn't, close the issue. I just listed two examples in the issue description and I see one is fixed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants