-
Notifications
You must be signed in to change notification settings - Fork 76
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
Introduce TexeraWorkflowCompilingService for Workflow Compilation #2796
Conversation
2bf266e
to
5738e9d
Compare
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.
Please address the comments. For some topics feel free to have discussions.
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/resource/WorkflowCompilationResource.scala
Outdated
Show resolved
Hide resolved
5738e9d
to
a9f102d
Compare
d34d7ca
to
730561a
Compare
@bobbai00 please reply to previous comments so I know what's changed or to expect. |
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.
LGTM. Left some minor comments in code.
.../amber/src/main/scala/edu/uci/ics/amber/engine/architecture/deploysemantics/PhysicalOp.scala
Outdated
Show resolved
Hide resolved
.../amber/src/main/scala/edu/uci/ics/amber/engine/architecture/deploysemantics/PhysicalOp.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraWorkflowCompilingService.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraWorkflowCompilingService.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/resource/WorkflowCompilationResource.scala
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
core/amber/src/main/scala/edu/uci/ics/texera/web/TexeraCompilerWebApplication.scala
Outdated
Show resolved
Hide resolved
13c567d
to
b777b06
Compare
This reverts commit c31a0ff.
75c1fd5
to
f15a724
Compare
) This PR adds a standalone web service called `TexeraWorkflowCompilingService`. ## The purpose of having a standalone compilation service Separate the Texera Workflow Compilation with Workflow Execution. ## The configuration of this service ### 1. Web Server Config All the configuration items are put in `core/amber/src/main/resources/texera-compiler-web-config.yml`. By default, this server runs at port 9090. ### 2. Application Config This service shares the same application configuration file, i.e. `core/amber/src/main/resources/application.conf`. To ensure that JWT token can be recognized by both `TexeraWebApplication` and `TexeraWorkflowCompilingService`, `user-sys.jwt.256-bit-secret` must NOT be set as random, instead it must be set as a fixed 256-bit string. ## The Endpoint provided by `TexeraWorkflowCompilingService` A single endpoint is provided by this web application: ``` POST /api/texera/compilation/{wid} ``` - request format: the serialized workflow json string - response: - physicalPlan: Option[PhysicalPlan] // the physical plan of the workflow, if None, the compilation is failed - operatorInputSchemas: Map[String, List[Option[List[Attribute]]]]. // from `OpId` to list of `Schema`(List of attributes) indexed by port id - operatorErrors: Map[String, String] // from `OpId` to error of this operator ## Future TODO after this PR 1. Use this web service when GUI is doing the workflow editing, maintain the physical plan in GUI. 2. Change all the deployment scripts, including `terminate-daemon.sh`, `deploy-daemon.sh` and `Dockerfile` to launch & terminate this web service 3. Clean up the code in `core/amber/src/main/scala/edu/uci/ics/texera/workflow/common/workflow/WorkflowCompiler.scala` and `core/amber/src/main/scala/edu/uci/ics/texera/web/service/WorkflowExecutionService.scala`
This PR adds a standalone web service called
TexeraWorkflowCompilingService
.The purpose of having a standalone compilation service
Separate the Texera Workflow Compilation with Workflow Execution.
The configuration of this service
1. Web Server Config
All the configuration items are put in
core/amber/src/main/resources/texera-compiler-web-config.yml
. By default, this server runs at port 9090.2. Application Config
This service shares the same application configuration file, i.e.
core/amber/src/main/resources/application.conf
. To ensure that JWT token can be recognized by bothTexeraWebApplication
andTexeraWorkflowCompilingService
,user-sys.jwt.256-bit-secret
must NOT be set as random, instead it must be set as a fixed 256-bit string.The Endpoint provided by
TexeraWorkflowCompilingService
A single endpoint is provided by this web application:
OpId
to list ofSchema
(List of attributes) indexed by port idOpId
to error of this operatorFuture TODO after this PR
terminate-daemon.sh
,deploy-daemon.sh
andDockerfile
to launch & terminate this web servicecore/amber/src/main/scala/edu/uci/ics/texera/workflow/common/workflow/WorkflowCompiler.scala
andcore/amber/src/main/scala/edu/uci/ics/texera/web/service/WorkflowExecutionService.scala