locationtech / locationtech/geomesa

Improve start-up time for CLI tools

Open
#6,037 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Scala
Stars
1.5k
Forks
446
Avg merge
1d 8h
Merged PRs (30d)
31

Description

Improve start-up time for CLI tools

Use nailgun? We need to be careful with the classpath here - I believe the classpath is set when you start the ng server, so maybe we would have to keep a set of classpaths -> servers, or something like that... at any rate, if the classpath is changed, we would need to make sure the server reflects that.

Should work with GEOMESA_EXTRA_CLASSPATHS and all the other random stuff we have like that.

Could be an opt-in? Could be on by default but well doc'd about the above changes?

Another option to consider: https://www.graalvm.org/


Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-2203

Key: GEOMESA-2203
Type: Improvement
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Andrew Hulbert
Created: Mon, 5 Mar 2018 10:18:18 -0500
Updated: Thu, 29 Aug 2019 14:12:37 -0400


Comments:

557058:da7f6dfa-f0a1-468b-aec5-2cb61273feb5 (Thu, 29 Aug 2019 14:12:37 -0400):

Compiling a native executable with graalvm requires that all jars be on the classpath at build time. This may mean that a) we have to build tools for many different specific jar versions and b) distributed jobs would need to be re-thought.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files or tests are named. Start by locating the CLI launchers and how they assemble classpaths, then compare the Nailgun and GraalVM options described in the issue. Done means faster startup while preserving GEOMESA_EXTRA_CLASSPATHS and ensuring classpath changes are reflected, with the opt-in or default behavior documented.

Written by the indexing model from the issue text.

Assessment

Tech stack
scala
Domain
cli, performance
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.