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

Introduced two web-socket endpoints for workspace master to split JSON-RPC messages #12673

Merged
merged 28 commits into from
Feb 27, 2019

Conversation

skabashnyuk
Copy link
Contributor

@skabashnyuk skabashnyuk commented Feb 15, 2019

What does this PR do?

  • Add the ability to have several JSON-RPC endpoints in a single J2EE container.
  • Each endpoint configured with individual RequestProcessorConfigurator.Configuration component.
  • RequestProcessorConfigurator.Configuration for each endpoint supplied by Provider. To be able to override provider implementation.
  • ExecutorService that is constructed for RequestProcessorConfigurator.Configuration is monitored with Prometheus metrics.
  • Noticed that even tiny queue (~100) significantly increase throughput and reduce the possibility of rejected messages.

Rework of #12252

Test1

Major endpoint

che.core.jsonrpc.processor_max_pool_size=50
che.core.jsonrpc.processor_core_pool_size=3
che.core.jsonrpc.processor_queue_capacity=10000000

test
docker run ksmster/json-rpc-loader -cheurl ws://che-eclipse-che.192.168.64.31.nip.io/api/websocket -token=t1 -mnum=100000 -tnum=200
15 01 41

Test2

Minor endpoint

che.core.jsonrpc.minor_processor_max_pool_size=100
che.core.jsonrpc.minor_processor_core_pool_size=5
che.core.jsonrpc.minor_processor_queue_capacity=100

test
docker run ksmster/json-rpc-loader -cheurl ws://che-eclipse-che.192.168.64.31.nip.io/api/websocket-minor -token=t1 -mnum=100000 -tnum=200
15 43 46

What issues does this PR fix or reference?

Related to #11961

Release Notes

n/a

Docs PR

n/a

@skabashnyuk
Copy link
Contributor Author

ci-test

@skabashnyuk
Copy link
Contributor Author

ci-build

@che-bot che-bot added status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community. kind/bug Outline of a bug - must adhere to the bug report template. labels Feb 15, 2019
@che-bot
Copy link
Contributor

che-bot commented Feb 15, 2019

Results of automated E2E tests of Eclipse Che Multiuser on OCP:
Build details
Test report
docker image: eclipseche/che-server:12673
https://github.com/orgs/eclipse/teams/eclipse-che-qa please check this report.

@skabashnyuk skabashnyuk changed the title [WIP]V2 Introduced two web-socket endpoints for workspace master to split JSON-RPC messages Introduced two web-socket endpoints for workspace master to split JSON-RPC messages Feb 18, 2019
@skabashnyuk skabashnyuk force-pushed the che11961v2 branch 2 times, most recently from bb9b422 to 689614c Compare February 20, 2019 14:53
@skabashnyuk skabashnyuk marked this pull request as ready for review February 20, 2019 14:53
@skabashnyuk skabashnyuk requested a review from a user February 20, 2019 14:53
@skabashnyuk
Copy link
Contributor Author

ci-test

…N-RPC messages

Based on Dmytro's Kulieshov  work #12252

Signed-off-by: Sergii Kabashniuk <[email protected]>
@che-bot
Copy link
Contributor

che-bot commented Feb 20, 2019

Results of automated E2E tests of Eclipse Che Multiuser on OCP:
Build details
Test report
docker image: eclipseche/che-server:12673
https://github.com/orgs/eclipse/teams/eclipse-che-qa please check this report.

Signed-off-by: Sergii Kabashniuk <[email protected]>
Signed-off-by: Sergii Kabashniuk <[email protected]>
Signed-off-by: Sergii Kabashniuk <[email protected]>
@skabashnyuk skabashnyuk requested review from sleshchenko and metlos and removed request for metlos February 24, 2019 13:03
@skabashnyuk
Copy link
Contributor Author

ci-test

@metlos metlos self-requested a review February 25, 2019 14:04
@che-bot
Copy link
Contributor

che-bot commented Feb 25, 2019

Results of automated E2E tests of Eclipse Che Multiuser on OCP:
Build details
Test report
docker image: eclipseche/che-server:12673
https://github.com/orgs/eclipse/teams/eclipse-che-qa please check this report.

Copy link
Member

@sleshchenko sleshchenko left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM
Please take a look my inlined comments

@skabashnyuk
Copy link
Contributor Author

ci-test

@che-bot
Copy link
Contributor

che-bot commented Feb 26, 2019

Results of automated E2E tests of Eclipse Che Multiuser on OCP:
Build details
Test report
docker image: eclipseche/che-server:12673
https://github.com/orgs/eclipse/teams/eclipse-che-qa please check this report.

@skabashnyuk
Copy link
Contributor Author

@eclipse/eclipse-che-qa can you take a look?

Copy link

@garagatyi garagatyi left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good!
@ibuziuk since this PR changes configuration of thread pools and JSON RPC messages processing we will need to change our configuration of limits in RhChe at the same time as moving to upstream version that will contain this code

@ibuziuk
Copy link
Member

ibuziuk commented Feb 26, 2019

@garagatyi good catch, could you please create an issue in rh-che and add it to our prio doc ?

@garagatyi
Copy link

@ibuziuk sure

@SkorikSergey
Copy link
Contributor

Selenium tests execution on Eclipse Che Multiuser on OCP (https://ci.codenvycorp.com/job/che-pullrequests-test-ocp/1583//Selenium_20tests_20report/) doesn't show any regression against this Pull Request.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Outline of a bug - must adhere to the bug report template. status/code-review This issue has a pull request posted for it and is awaiting code review completion by the community.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants