-
Notifications
You must be signed in to change notification settings - Fork 13.8k
[FLINK-7908][FLINK-7824][QS] Restructure QS packages and put QS jars in opt/. #4906
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
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Very good changes? I had some nitpicks in the code and some more here. 😅
Does the client jar have to be in opt
?
I think queryable-state-core
should be called queryable-state-runtime
or queryable-state-server
to fit into existing Flink Terminology. For example, flink-core
is this quite thin module that has mostly API classes and some stuff that is commonly used. What do you think?
* | ||
* <p><b>THIS WAS COPIED FROM RUNTIME SO THAT WE AVOID THE DEPENDENCY.</b> | ||
*/ | ||
public final class VoidNamespace { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can these be package private?
import java.util.concurrent.CompletableFuture; | ||
|
||
/** | ||
* Javadoc. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Missing Javadoc.
Btw, I'm assuming you also tried this with a cluster where you put the "core" jar in lib and then could query the state of a running job? |
633ad8f
to
f25ada7
Compare
LGTM with the name changes! Excellent work. 👍 |
Thanks a lot for the review @aljoscha ! Waiting for travis and then merging. |
b601359
to
9bfe6fd
Compare
The QS module is split into core and client. The core should be put in the lib folder to enable queryable state, while the client is the one that the user will program against. The reason for the restructuring in mainly to remove the dependency on the flink-runtime from the user's program.
Now the user can find the jars in the opt/ folder and he can activate QS by putting the core jar in the lib/ folder and program against the client jar.
Sorry for joining the party late, but I don't think that it is a good idea to duplicate code by copying code from one module into the other, as happened for the |
What is the purpose of the change
Make the Queryable State more usable by:
client
jar (used by the user) transitively brings.opt/
folder. From there, to activate QS the user has to put the core jar in the lib/ folder before starting the cluster, and use the client jar as a dependency to his/her program.Brief change log
Creating the
core
andclient
modules in the queryable state dir and moving classes around.In addition, now the
client
module becomes a dependency of theflink-runtime
.Places the jars corresponding the aforementioned modules to the
opt
dir.Verifying this change
This change is a simple restructuring of the queryable state module, no classes are introduced or deleted.
Does this pull request potentially affect one of the following parts:
flink-queryable-state-client
dependency toflink-runtime
.Documentation
R @aljoscha