3 research outputs found

    Towards application-specific query processing systems

    Get PDF
    Database systems use query processing subsystems for enabling efficient query-based data retrieval. An essential aspect of designing any query-intensive application is tuning the query system to fit the application's requirements and workload characteristics. However, the configuration parameters provided by traditional database systems do not cover the design decisions and trade-offs that arise from the geo-distribution of users and data. In this paper, we present a vision towards a new type of query system architecture that addresses this challenge by enabling query systems to be designed and deployed in a per use case basis. We propose a distributed abstraction called Query Processing Unit that encapsulates primitive query processing tasks, and show how it can be used as a building block for assembling query systems. Using this approach, application architects can construct query systems specialized to their use cases, by controlling the query system's architecture and the placement of its state. We demonstrate the expressiveness of this approach by applying it to the design of a query system that can flexibly place its state in the data center or at the edge, and show that state placement decisions affect the trade-off between query response time and query result freshness

    Une approche flexible et dĂ©centralisĂ©e du traitement de requĂȘtes dans les systĂšmes gĂ©o-distribuĂ©s

    Get PDF
    This thesis studies the design of query processing systems, across a diversity of geo-distributed settings. Optimising performance metrics such as response time, freshness, or operational cost involves design decisions, such as what derived state (e.g., indexes, materialised views, or caches) to maintain, and how to distribute and where to place the corresponding computation and state. These metrics are often in tension, and the trade-offs depend on the specific application and/or environment. This requires the ability to adapt the query engine's topology and architecture, and the placement of its components. This thesis makes the following contributions: - A flexible architecture for geo-distributed query engines, based on components connected in a bidirectional acyclic graph. - A common microservice abstraction and API for these components, the Query Processing Unit (QPU). A QPU encapsulates some primitive query processing task. Multiple QPU types exist, which can be instantiated and composed into complex graphs. - A model for constructing modular query engine architectures as a distributed topology of QPUs, enabling flexible design and trade-offs between performance metrics. - Proteus, a QPU-based framework for constructing and deploying query engines. - Representative deployments of Proteus and experimental evaluation thereof.Cette thĂšse prĂ©sente l'Ă©tude de la conception de systĂšmes de traitement de requĂȘtes dans divers cadres gĂ©o-distribuĂ©s. L'optimisation des mesures de performance telles que le temps de rĂ©ponse, la fraĂźcheur ou le coĂ»t opĂ©rationnel implique des dĂ©cisions de conception tel que le choix de l’état dĂ©rivĂ© (indices, vues matĂ©rialisĂ©es, caches par ex.) Ă  construire et maintenir, et la distribution et le placement de ces derniers et de leurs calculs. Ces mĂ©triques sont souvent opposĂ©es et les compromis dĂ©pendent de l'application et/ou de la spĂ©cificitĂ© de l'environnement. La capacitĂ© d'adapter la topologie et l'architecture du systĂšme de traitement de requĂȘtes devient alors essentielle, ainsi que le placement de ses composants. Cette thĂšse apporte les contributions suivantes : - Une architecture flexible pour les systĂšmes de traitement de requĂȘtes gĂ©o-distribuĂ©s, basĂ©e sur des composants connectĂ©s dans un graphe bidirectionnel acyclique. - Une abstraction de micro-service et une API communes pour ces composants, le Query Processing Unit (QPU). Un QPU encapsule une tĂąche de traitement de requĂȘte primitive. Il existe plusieurs types de QPU qui peuvent ĂȘtre instanciĂ©s et composĂ©s en graphes complexes. - Un modĂšle pour construire des architectures de systĂšmes de traitement de requĂȘtes modulaires composĂ©es d’une topologie distribuĂ©e de QPUs, permettant une conception flexible et des compromis selon les mesures de performance visĂ©es. - Proteus, un framework basĂ© sur les QPU, permettant la construction et le dĂ©ploiement de systĂšmes de traitement de requĂȘtes. - DĂ©ploiements reprĂ©sentatifs de systĂšmes de traitement de requĂȘtes Ă  l'aide de Proteus, et leur Ă©valuation expĂ©rimentale
    corecore