The ever-increasing demands of data-driven applications necessitate a solution that can handle a wide range of data types, query languages, and workloads. This is where the concept of a PolyDBMS, or a polymorphic database management system, comes into play.
A PolyDBMS is a multimodel data storage and management solution that merges aspects of Hybrid Transactional/Analytical Processing (HTAP) systems and polystores. This concept incorporates key principles from polystore systems, such as the support for multiple query languages, and extends beyond analytical workloads to include comprehensive data storage and management needs, heterogeneous data, and mixed transactional and analytical workloads.
PolyDBMSs are full-fledged database management systems that manage all data types using different data models and allow data to be retrieved and modified using various query languages across different data models. They not only offer a platform for data analytics but also simplify the complexity associated with managing different types of data models.
Key Requirements for a PolyDBMS
-
Support for Multiple Data Models: Due to the diverse nature of data in Big Data Management, a PolyDBMS must support at least two data models.
-
Integration of Multiple Engines: A PolyDBMS should integrate multiple storage and execution engines, each supporting various query languages or methods. For each supported data model, there should be at least one corresponding query language and one data storage and execution engine.
-
Consistent Query Results: Regardless of the physical storage of data and the processing engine used, the query results must be consistent.
-
Unified Logical Schema: A PolyDBMS should provide a unified logical schema across all data models to enable cross-model queries. The schema should be adaptable at runtime and must not introduce an implicit mapping to another data model.
-
Adjustable Schema for Specific Interfaces: The PolyDBMS should have the capability to adjust the schema exposed through a specific query interface to handle scenarios like colliding names or differing conceptual entities.
-
ACID-compliant Transactions: To maintain data integrity, a PolyDBMS must support ACID-compliant transactions.
-
Optimization for Heterogeneous Workloads: It should be optimized to handle heterogeneous workloads containing both transactional and analytical queries.
-
Hybrid Architecture: A PolyDBMS must have a hybrid architecture that combines the benefits of monolithic and middleware architecture models. It should use existing database systems for storing data and executing queries, complementing them with an internal execution engine for missing features. This allows the PolyDBMS to combine replication and partitioning of data across various underlying database systems and optimize storage configuration according to the workload.
Through these features, a PolyDBMS serves as a robust, versatile, and efficient solution for managing diverse data types and workloads, offering significant benefits for modern, data-intensive applications.