https://github.com/exasol/java-udf-startup-time-improver
Tool for improving the start up time of Java UDFs.
https://github.com/exasol/java-udf-startup-time-improver
exasol-integration udf
Last synced: 10 months ago
JSON representation
Tool for improving the start up time of Java UDFs.
- Host: GitHub
- URL: https://github.com/exasol/java-udf-startup-time-improver
- Owner: exasol
- License: mit
- Created: 2022-03-03T09:10:14.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2024-03-11T08:01:35.000Z (almost 2 years ago)
- Last Synced: 2025-01-13T21:09:25.680Z (12 months ago)
- Topics: exasol-integration, udf
- Language: Java
- Homepage:
- Size: 85.9 KB
- Stars: 1
- Watchers: 7
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Java UDF Startup Time Improver
[](https://github.com/exasol/java-udf-startup-time-improver/actions/workflows/ci-build.yml)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
[](https://sonarcloud.io/dashboard?id=com.exasol%3Ajava-udf-startup-time-improver)
The Java UDF startup time improver is a tool that optimizes Java UDF. It does so by preloading the Java classes and writing them into a class dump on BucketFS. Then it replaces the script definition with a different one that declares a JVM-option which instructs the JVM to use the dump.
**This tool can only optimize projects that are prepared for it.** To find out if a certain project is already prepared for being optimized look out for the badge "Prepared for Java UDF startup time improver" in the project's readme.
This tool only has an impact when used with Exasol version 7.0.17 and 7.1.7. On older version it has no effect.
## Installation
1. Download the latest release of this project.
2. Upload the jar to BucketFS.
3. Run the [installation script](src/install.sql)
The script contains the path `/buckets/bfsdefault/default/java-udf-startup-time-improver.jar`. Please adapt it to point to the correct Bucket and jar.
## Usage
Create a connection with the write-password of the BucketFS where the improver can write the class-dump to.
```sql
CREATE CONNECTION BFS_CONNECTION
TO ''
USER ''
IDENTIFIED BY '';
```
Download the class list for the UDF / adapter script that you want to optimize. You can find file `classes.lst` attached to the GitHub release. Now upload the file to a bucket in BucketFS.
Run the improver:
```sql
execute script TEST.JAVA_UDF_STARTUP_TIME_IMPROVER(
'',
'',
'',
,
'',
'',
'')
```
For example, if you want to optimize the udf `TEST.MY_UDF` you can use parameters like:
```sql
execute script TEST.JAVA_UDF_STARTUP_TIME_IMPROVER(
'TEST',
'MY_UDF',
'BFS_CONNECTION',
2580,
'bfsdefault',
'default',
'my-dump.jsa')
```
When you execute the script, the improver creates the class-dump, uploads it to BucketFS and updates your script definition.
## Additional Information
* [Changelog](doc/changes/changelog.md)
* [Dependencies](dependencies.md)