Skip to content

Polypheny-FRAM is a plugin for Polypheny-DB making it the distributed polystore.

License

Notifications You must be signed in to change notification settings

polypheny/Polypheny-FRAM

Repository files navigation

Polypheny-FRAM

GitHub CI CodeFactor DBIS Nexus

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.

Getting Started (Standalone Mode)

  1. Clone the repository

  2. Run gradlew jdk11_zipLinux64Package to build a Linux distribution or gradlew jdk11_zipWindows64Package to build a Windows distribution. gradlew jdk11_zipAll builds both.

    Note: OpenJDK 8 or 11 required to run this step.

  3. 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.

  4. 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

Configuration

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.

Persistency of Data

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-DB Plugin

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.

Credits

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.

Acknowledgements

The Polypheny-DB project is supported by the Swiss National Science Foundation (SNSF) under the contract no. 200021_172763.

License

The Apache License, Version 2.0

About

Polypheny-FRAM is a plugin for Polypheny-DB making it the distributed polystore.

Resources

License

Code of conduct

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published