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

Close GRPC server during CRaC snapshotting #139

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

rvansa
Copy link

@rvansa rvansa commented Mar 30, 2023

This change intends to support an application using Vertx GRPC server to perform the Checkpoint and Restore on JVM implementing this, specifically using OpenJDK CRaC or future versions of OpenJDK. Package org.crac is a facade that either forwards the invocation to actual implementation or provides a no-op implementation.

@rvansa
Copy link
Author

rvansa commented Apr 5, 2023

I've updated my Eclipse Foundation profile to correctly reflect that this is under CLA for Azul Systems (also EF member) - I no longer work for Red Hat.

@rvansa
Copy link
Author

rvansa commented Apr 13, 2023

Any feedback on this?

@vietj
Copy link
Contributor

vietj commented Apr 13, 2023

I would like to avoid a dependency on the project, is that possible to do that in a way it's decoupled from the project ? (like an extra jar)

@rvansa
Copy link
Author

rvansa commented Apr 13, 2023

@vietj We need to register the existence of the server somewhere; it'd be difficult to hook into creation of the instance from the external library. The code in the dependency is actually very lightweight - it checks (using reflection) if CRaC is supported on the platform, delegates to the implementation and if it's not present the operations are no-op. It is meant as a bridge until the support lands in mainstream JDK and even then to shield projects from requiring to baseline on recent JDK.

It could be possible to register the server in the place where this is created (app, or some integration code in a framework) but our goal is to push it as low as possible in the technology stack to provide biggest fanout to the consuming projects. I've looked into GRPC library but integration there would be complex due to some synchronization required; in case of Vertx-server the changes are pretty trivial as we can use the eventloop pattern.

Btw. CRaC already got some basic support in Quarkus (though Q already has a ton of deps while I understand your desire to keep the dependency set clean and tiny).

@rvansa
Copy link
Author

rvansa commented Apr 18, 2023

I've updated the dependency maven coordinates io.github.crac -> org.crac (we've released this with proper own domain).

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

Successfully merging this pull request may close these issues.

2 participants