Polypheny is designed as a powerful, multi-model database system. An essential part of its architecture revolves around its use of “Data Stores”. These data stores are individual databases managed by Polypheny and form the foundation of its data storage system.
Unlike external data sources, data stores are exclusively controlled by Polypheny. This ensures optimal performance, query optimization, and efficient data access for complex operations.
Polypheny can manage these data stores using three different deployment techniques:
Embedded: This method runs the data store in the same Java Virtual Machine (JVM) as Polypheny. It is ideal for testing and development environments but might not offer optimal performance for large-scale production systems.
Remote: In this deployment mode, Polypheny connects to a data store running on a remote server. This allows the separation of processing and data storage, potentially leading to improved performance.
Docker: This method deploys data stores using Docker, a popular containerization platform. It offers the benefits of easy scalability, quick setup, and platform independence.
It is important to note that Polypheny is expected to have full and sole control over a data store, irrespective of the deployment method. This means that external modifications to the data store, without going through Polypheny, can lead to inconsistencies and unexpected behavior.
HSQLDB is an open-source, robust, fully-featured, standards-compliant relational database management system written in Java. Known for its small size, fast execution, and full JDBC driver capabilities, HSQLDB is best utilized in scenarios where lightweight, in-memory data storage is desired, such as in testing and development environments.
PostgreSQL is a powerful, open-source, relational database system. It provides a strong combination of performance, robustness, and advanced querying capabilities. PostgreSQL is best used for transactional workloads.
MonetDB is an open-source column-store database management system known for its high performance on analytical queries. This makes it particularly suitable for online analytical processing (OLAP) applications and other scenarios requiring fast analytics.
MongoDB is an open-source document-oriented database system known for its horizontal scalability and strong support for JSON-like documents. MongoDB is best used when dealing with large volumes of unstructured or semi-structured data.
Neo4j is an open-source native graph database that provides an efficient solution to store, manage, and access data as connected entities. It shines in scenarios that require high performance on complex, connected data, such as social networks, recommendation systems, or fraud detection.
Cottontail DB is an open-source, columnar, NoSQL database system specifically designed for multimedia retrieval and analysis. It excels in handling vector data, supporting multiple distance measures, and providing bitmap-based indexing for fast nearest-neighbor search. Cottontail DB is particularly suitable for machine learning, computer vision, and multimedia retrieval applications where efficient and scalable processing of vector space models is needed.
The integrated Blob Store in Polypheny allows storing and retrieving blobs (binary large objects), such as images, audio, or video. The Blob Store uses a file-based approach for storage, making it suitable for scenarios where large volumes of unstructured binary data need to be stored and accessed efficiently.