This library will allow Java* applications to communicate with the Intel® Query Processing Library (Intel® QPL) , for use with Intel® In-Memory Analytics Accelerator (Intel® IAA) , to improve performance by accelerating operations like compression and decompression.
The following are the prerequisites for building this Java library:
- Intel® QPL library - To build, Intel® QPL follow Installation. Make sure Intel® QPL library installed into either "/usr/local/lib64" or "/usr/local/lib". This library has been tested with Intel® QPL version 1.3.1
- Java 11 or Java 17.
- Build tools - g++, CMake , Maven and clang (for fuzz testing).
This library assumes the availability of Intel® IAA hardware.
For more information about the Intel® In-Memory Analytics Accelerator, refer to the IAA spec on the Intel® 64 and IA-32 Architectures Software Developer Manuals page.
Once all the prerequisites have been satisfied:
$ git clone https://github.com/intel/qpl-java.git
$ cd qpl-java
$ mvn clean package
Available Maven commands include:
compile
- builds sourcestest
- builds and runs testssite
- generates Surefire report intotarget/site
javadoc:javadoc
- builds javadocs intotarget/site/apidocs
package
- builds jar file intotarget
directoryspotless:check
- check if source code is formatted well.spotless:apply
- fixes source code format issues.
This library supports both functional and Fuzz testing.
To run all the functional tests, execute the following command:
mvn clean test
Jazzer tool is used to enable fuzz testing on this project.
see here for Jazzer dependencies.
To run the Fuzz tests, execute the following command:
mvn clean test -Dfuzzing=true
The above command executes each Jazzer Fuzz tests for 10 seconds.
To run for a longer duration, modify -max_total_time
fuzzParameter in pom.xml
qpl-java is available from the Maven central repository. Add the following dependency to your pom.xml:
<dependency>
<groupId>com.intel.qpl</groupId>
<artifactId>qpl-java</artifactId>
<version>1.0.0</version>
</dependency>
To use this library in your Java application, build the qpl-java jar and include its location in your Java classpath. For example:
$ mvn package
$ javac -cp .:<path>/qpl-java/target/qpl-java-<version>.jar <source>
$ java -cp .:<path>/qpl-java/target/qpl-java-<version>.jar <class>
Alternatively, include qpl-java's target/classes
directory in your Java classpath and the
target/cppbuild
directory in your java.library.path
. For example:
$ mvn compile
$ javac -cp .:<path>/qpl-java/target/classes <source>
$ java -cp .:<path>/qpl-java/target/classes -Djava.library.path=<path>/qpl-java/target/cppbuild <class>
Thanks for your interest! Please see the CONTRIBUTING.md document for information on how to contribute.
For more information on this library, contact Kokoori, Shylaja (shylaja.kokoori@intel.com) or Suvarna Reddy, Sevanthi (sevanthi.suvarna.reddy@intel.com) .
* Java is a registered trademark of Oracle and/or its affiliates.