Polypheny-FRAM is a plugin for Polypheny-DB making it the distributed polystore.
Polypheny-FRAM is a research system developed at the University of Basel, Switzerland. Polypheny-FRAM is not intended to be used in a productive environment! Instead, it helps distributed database researchers to test and evaluate novel data management protocols.
-
Clone the repository
-
Run
gradlew jdk11_zipLinux64Package
to build a Linux distribution orgradlew jdk11_zipWindows64Package
to build a Windows distribution.gradlew jdk11_zipAll
builds both.Note: OpenJDK 8 or 11 required to run this step.
-
Enter either the Windows or the Linux distribution which have been assembled in
build/distributions
- Linux: run
bin/polypheny-fram
- Windows: run
bin\polypheny-fram
Note for the Windows JDK 8 release (built with the target
jdk8_zipWindows64Package
):
Append the console arguments "bin\polypheny-fram.exe -c --console" to attach a console to the process. Otherwise, Polypheny-FRAM would run as background process. This is a limitation of packr. See here for details.
- Linux: run
-
a) Benchmark Polypheny-FRAM using OLTPBench for Polypheny-FRAM. Working benchmarks:
-
TPC-C (Transaction Processing Performance Council, Benchmark C)
Limitations:
- only one terminal if using writes
- without the "StockLevel" transaction
-
YCSB (Yahoo! Cloud Serving Benchmark)
Limitations:
- only one terminal if using writes
b) Connect to Polypheny-FRAM using polypheny-jdbc-driver:1.3 with the following connection details:
- Driver Class:
org.polypheny.jdbc.Driver
- Connection URL:
jdbc:polypheny://localhost/
Note: You can also use the Apache Calcite Avatica driver avatica-core:1.16.0. Use the following connection details:
- Driver Class:
org.apache.calcite.avatica.remote.Driver
- Connection URL:
jdbc:avatica:remote:url=http://localhost:20591;serialization=protobuf
-
Polypheny-FRAM uses the typesafe library.
Copy the file conf/sample-application.conf
to conf/application.conf
and edit the conf/application.conf
to fit your needs.
You can find the HOCON syntax here.
In the standalone mode, Polypheny-FRAM uses HSQLDB as the underlying data storage. By default, HSQLDB is configured to use in memory databases. Therefore, after Polypheny-FRAM has terminated, all data is lost.
Polypheny-FRAM can extend Polypheny-DB to provide data management protocols running on top of a cluster of Polypheny-DB nodes. Basically, distributing the polystore.
Note: The extension mode is currently not available. Use the standalone mode to explore Polypheny-FRAM.
Polypheny-FRAM is based on the Apache Calcite server project and uses several other projects:
- Apache Avatica: A framework for building JDBC drivers
- Apache Calcite: A framework for building databases
- HSQLDB: A relational database written in Java
- JavaCC: A parser generator
- JGroups: A powerful library for reliable messaging
- Project Lombok: A library providing compiler annotations
- Micrometer: A library providing a facade for metrics
- Typesafe Config: A library managing the configuration of the application
- and many more! Please check the dependencies in the build.gradle file.
Those projects are used "as is" and are integrated as libraries.
The Polypheny-DB project is supported by the Swiss National Science Foundation (SNSF) under the contract no. 200021_172763.
The Apache License, Version 2.0