• Tidak ada hasil yang ditemukan

Join Query ID

N/A
N/A
Protected

Academic year: 2023

Membagikan "Join Query ID"

Copied!
155
0
0

Teks penuh

The need to process large amounts of concurrent user transactions and store huge amounts of data in a scalable and cost-effective manner has led to the development of several distributed NoSQL and NewSQL databases [8, 9]. Developers' familiarity with the expressiveness of SQL queries has led to the emergence of several mechanisms for executing SQL-on-Hadoop queries.

Problem Statement

Large Scale Enterprise Data Management for OLTP Workloads

  • Online Transaction Processing in Relational Databases
  • Online Transaction Processing in Distributed Databases

With the ever-increasing popularity of cloud hosting platforms, more and more companies are moving to the cloud to reduce infrastructure and operational costs. A SQL skin (e.g. Apache Phoenix) on top of a NoSQL database could be used to perform a Strawman transformation from a relational database to a NoSQL database; However, such a Strawman transformation is limited by the performance of the join due to the distribution of data across the cluster and the latency of data transfer.

Large Scale Enterprise Data Management for OLAP Workloads

  • SQL-on-Hadoop
  • SQL-on-Object-Storage

We use the block range index to improve the read performance of a SQL-on-Object-Storage system by skipping irrelevant data. Therefore, additional mechanisms are needed to improve the read performance of SQL-on-Object-Storage systems.

Research Approach and Contributions

Putting It All Together

In Chapter 3, we profile the performance of the MySQL server on the Xen platform for OLTP workloads. In Chapter 6 we evaluate the impact of BRIN on the performance of SQL-on-Object-Storage systems.

Large-Scale Data Processing Frameworks

  • HBase and Phoenix
  • Amazon S3
  • Impala
  • Drill
  • Spark and Spark SQL

Filters can be combined with the scanner to push data filtering criteria to the server. The physical planner generates multiple physical plans for the logical plan using physical operators (e.g., different join algorithms) available in the execution engine.

Figure 2.1: HBase architecture overview
Figure 2.1: HBase architecture overview

Large Scale Enterprise Data Management for OLTP Workloads

  • Online Transaction Processing in Relational Databases
  • Online Transaction Processing in Distributed Databases

In addition, Spark SQL can read and process data from several storage engines (HDFS, HBase, Hive, MySQL, etc.) in a single Spark program. Database transformation. In [69], the authors present a model to map and store relational tables in a key-value store; however, the mechanism to transform SQL-based workloads using the key-value API is not provided.

Large Scale Enterprise Data Management for OLAP Workloads

  • OLAP with Hadoop as Storage Substrate
  • OLAP with Object Storage Systems as Storage Substrate

On the contrary, object storage systems such as Amazon S3 [25], Microsoft Azure Blob Storage [79], etc., are cheaper than the network attached Block Storage and offer better performance per dollar [35] for OLAP workloads. We discuss our performance observations related to the write statement in section 3.5, and conclude in section 3.6.

Experiment Methodology

  • Request Processing Overview
  • Database Server Specifics
  • Xen Hypervisor and Virtual Machine Configuration
  • Client Workload Generator
  • Benchmark SQL Statements
    • Simple Query
    • Complex Query
  • Performance Metric
  • Experiment Setup

The Netback driver forwards the response to the local driver (18) from where it is finally received by the client (20). Once a response is prepared, the MySQL server sends the response to the local host (10) from where it is delivered to the client (12).

Figure 3.1: Laboratory test bed
Figure 3.1: Laboratory test bed

Performance Evaluation of Benchmark Read Statement

  • Dom-u Performance Discussion
  • Dom-0 Performance Discussion
  • Impact of network I/O on performance variations
  • Impact of disk I/O on performance variations
  • Impact of database population from snapshot on performance variations 46
  • Database population from the script
  • Database population from the snapshot

To understand how query τ decreases with increasing cache allocation relative to query τ for no cache, we plot Figure 3.10. As depicted in Figure 3.12c, the query τse is less than 3 msec between repeated executions in each VM.

Figure 3.7: Read statement performance comparison between dom-0 and dom-u VMs for γ = 0 and S = S de f ault
Figure 3.7: Read statement performance comparison between dom-0 and dom-u VMs for γ = 0 and S = S de f ault

Performance evaluation of benchmark simple query

Performance evaluation of benchmark write statement

Chapter Summary

This chapter introduces the Synergy system, which leverages a schema- and workload-based mechanism to identify materialized views and a specialized concurrency control system on top of a NoSQL database to enable scalable data management with familiar relational conventions. Experimental results using the TPC-W benchmark show that for a database populated with 1 million customers, the Synergy system shows a maximum performance improvement of 80.5% compared to the other evaluated systems.

Background

Relation, Index and Schema Models

The primary key of R denoted as PK(R) is a tuple of attributes that uniquely identifies each record in R. The foreign key of R denoted as FK(R) is a set of attributes that refer to another relation T.

Modeling Workload

A relation can have multiple foreign keys, so let F(R) denote the set of foreign keys of R. The key of an index is a union of attributes in the tuples Xtuple(R) and PK(R), in that order.

Baseline Database Transformation

Schema–Using the previous definitions of a relation and an index, a database schema S is modeled as a set of relations and corresponding index sets, S = {R1, I(R1), R2, I(R2), .., Rn, I(Rn)}, where represents the number of relationships in the scheme. The row key of X(R0) is a bounded relation of the attribute value to the key of X(R).

Challenges and Design Choices

  • Implication of Materialized Views
  • Lock Number and Granularity
  • View Selection Challenges
  • Design Decisions

Row-level locks and database locks represent the two ends of the locking mechanism spectrum. However, this approach prevents high storage costs and bottleneck shifts from read to write performance.

System Overview

For the Synergy system, we make the following design decisions based on our analysis of the TPC-W benchmark, which contains many key/foreign key equi-joins. In addition, the Synergy system can only be used with NoSQL data stores that trade availability for strong consistency in the presence of network partitioning (CP model from the CAP theorem [92]).

Generating Candidate Views

Roots Selection

Q can either be provided by the database designer or it can be learned in an automated way. Note that the automatic selection of roots is a separate problem and can be solved independently.

Candidate Views Generation Mechanism

  • Mechanism Overview
  • Mechanism Description
  • Discussion

We identify the paths in the DAG from each root relation to a non-root relation. Then we remove all non-root relations on the path from the topological order and continue.

Figure 4.4: Intermediate results of the candidate views generation mechanism for the Company database with roots set Q company = {Address,Department}
Figure 4.4: Intermediate results of the candidate views generation mechanism for the Company database with roots set Q company = {Address,Department}

Views Selection Mechanism

Views Selection

We iteratively examine each equi-join query in the workload and select views for it. We then use the join conditions in the query to highlight the relevant edges and participating relationships in the rooted trees.

Query Re-writing

Additional View Indexes

View Maintenance Mechanism

Insert Statement

  • Applicability Test
  • Tuple Construction

Inserting into a view on a base table insert may require reading tuples from the base tables to construct the view tuple. For a base table insertion that applies to a view with k relations, we need to read related tuples from frac−1 base tables to construct the view tuple.

Delete Statement

  • Applicability Test
  • Key Construction

We use the key/foreign key relationships between the view relationships to sequentially read the tuples of the base table, starting with the relation Rk−1 and ending with the relation R1. Note that the time to create a view tuple increases linearly with the number of relations in the view and is independent of the cardinality ratios between the relations.

Update Statement

  • Applicability Test
  • Tuple Construction

System Architecture

Lock Implementation

So to update a row for a relation in a rooted tree, we acquire the lock on the key of the associated row in the root relation. The lock table key has the same set of properties as the root relation's key and it contains a single boolean column that identifies whether lock is in use or not.

Write Transaction Procedures

As a disadvantage of hierarchical locking, all rows associated with the root key are locked along all paths, which can affect throughput with concurrent requests trying to grab the lock on the same root key.

Transaction Isolation Level

Experimental Evaluation

  • Experiment Environment
    • Testbed
    • Performance Metric
  • Micro Benchmark Evaluation
    • Schema and Workload
    • Experiment Setup and Results
  • Locking Overhead Evaluation
  • TPC-W Benchmark Evaluation
    • Benchmark
    • Systems Evaluated
    • Performance Evaluation of Joins in the TPC-W Benchmark
    • Performance Evaluation of Write Statements in the TPC-W
    • Performance Comparison of All Evaluated Systems

Experiment Setup – In this set of experiments, we evaluate and compare the join performance across different systems using the join queries in the TPC-W benchmark. Note that we exclude VoltDB as it does not support all join queries in the TPC-W benchmark.

Figure 4.9: Micro benchmark results to show that performance of join algorithms is slow in HBase
Figure 4.9: Micro benchmark results to show that performance of join algorithms is slow in HBase

Chapter Summary

In this chapter, we perform a comparative analysis of four state-of-the-art SQL-on-Hadoop systems (Impala, Drill, Spark SQL, and Phoenix) using the Web Data Analytics microbenchmark and the TPC-H benchmark on Amazon. EC2 cloud platform. Next, in Section 5.4, we use the TPC-H benchmark to thoroughly evaluate query expressiveness, optimization quality, and query execution engine efficiency in the investigated systems.

Background

Experiment Goals

We examine the impact of text (row) and tile (column) storage formats on query performance on each system. To understand the scaling characteristic of each system, we increase the size of the data in a cluster and examine the query performance changes.

Micro Benchmark Experiments

  • Hardware Configuration
  • Software Configuration
  • Experiment Setup
  • WDA Benchmark
  • Data Preparation
  • Experiment Results
    • Selection Task (Q1)
    • Aggregation Task (Q2)
    • Join Task (Q3)

Impala, Spark SQL, and P-HBase exhibit near-linear scaling characteristics, as the query RT remains nearly constant as the batch size increases. Similar to the batch task, the RT query in Drill more than doubles as the batch size is increased from 4 to 8 workers due to an increase in scan operator wait time.

Table 5.2: Data preparation times (seconds) in evaluated systems for WDA benchmark.
Table 5.2: Data preparation times (seconds) in evaluated systems for WDA benchmark.

TPC-H Benchmark Experiments

Hardware and Software Configuration

Data Preparation

Experiment Results

  • Execution Time Breakdown
  • Correlated Sub-query Execution in Drill
  • Parquet versus Text Performance
  • Size-up Characteristic Evaluation

The input and output data sizes for a join operator remain the same in both storage formats; However, on average the HJ operator time in the text format is 3x compared to the parquet format. On average, the scanning time in the text format is 8.7x compared to the parquet format.

Figure 5.3: The breakdown of query RT into aggregated processing time for each operator type in evaluated systems
Figure 5.3: The breakdown of query RT into aggregated processing time for each operator type in evaluated systems

Discussion and Chapter Summary

However, the time of the scan operator exhibits sub-linear growth, resulting in sub-linear scaling behavior in Impala. Although the Drill execution engine (with the columnar data model for in-memory processing) is optimized for the columnar data storage format on disk (parquet), the scan operator is the main contributor to the RT query in the parquet format.

Block Range Index

BRIN Implementation and Storage Choices

  • Key Value Store Based Implementation
  • Interval Tree Based Implementation

To efficiently run this query on a key-value store, we use the index that contains the first part of the table key. To efficiently execute this query on a key-value store, we use the index hasminas.

Figure 6.1: Range query sub cases in a block range index.
Figure 6.1: Range query sub cases in a block range index.

System Overview

We use a self-balancing augmented binary search tree to implement an interval tree [102] that resides on a single computing node. Different implementation choices for a spanning tree that resides on a single node in a computing cluster are 1) on disk and 2) entirely in memory.

Figure 6.2: Fusion system overview.
Figure 6.2: Fusion system overview.

Experimental Evaluation

  • Hardware Configuration
  • Software Configuration
  • Experiment Setup
  • TPC-W Benchmark
  • Experiment Results
    • Fusion versus Baseline
    • Impact of Data Partition Size in Fusion System
    • Fusion versus Baseline: Impact of Database Size
    • Write Statement Performance

Next, we evaluate the performance impact of increasing the database size in the Fusion system. Queries that could not use any indexes on the Fusion system (with partitioned data) show performance similar to the Baseline system (with non-partitioned data).

Table 6.2: Total time to compute index intervals for 10GB TPC-W database with 16MB table partitions.
Table 6.2: Total time to compute index intervals for 10GB TPC-W database with 16MB table partitions.

Chapter Summary

Mechanisms

However, in-memory interval trees are centralized and may be too large to hold in memory for large tables. Therefore, we plan to supplement the Fusion system by calculating the data distribution information on table columns and use this information to guide whether implementing a block range index might be useful for skipping data.

Experiments

In Chapter 6, the Fusion system uses in-memory range trees to implement the block range indexes. In addition, the selection mechanism for block range indexes in the Fusion system is unaware of the distribution of data in the table columns.

Summary of Contributions

For SQL-on-Object-Storage systems, we implement and evaluate the impact of block range indexes on query performance. We perform a comparative analysis of four advanced SQL-on-Hadoop systems (Impala, Drill, Spark SQL and Phoenix) using the Web Data Analytics microbenchmark and the TPC-H benchmark on the Amazon EC2 cloud platform.

Summary and classification of related works

Notations commonly used throughout this chapter

Query µ and µ se with dom-u inside Nodes B, C and D

Qualitative comparison of NoSQL, NewSQL and Synergy systems

Sum of RT of all the statements in the TPC-W benchmark to quantify trade

Database sizes across different evaluated systems

Specification of joins in the TPC-W Benchmark

Specification of write statements in TPC-W Benchmark

Qualitative comparison of evaluated SQL-on-Hadoop systems

Data preparation times (seconds) in evaluated systems for WDA benchmark. 91

Data preparation times (seconds) in systems for the TPC-H benchmark

Large Scale Data Management Frameworks Ecosystem

Summary of both challenges faced by data architects in large scale data

HBase architecture overview

An example table in HBase

Physical view of HBase table in Figure 2.2

Single Table Aggregation Query Processing in Phoenix

Join query processing in Phoenix

Impala architecture overview

Laboratory test bed

Request Processing Overview With MySQL Server Hosted Inside Xen Domains . 33

Complex Query

Write Statement

Profiling model

Read statement performance comparison between dom-0 and dom-u VMs for γ =

Measuring query execution time in a client session

Read statement performance comparison between dom-u’s for different cache al-

Read statement performance comparison between database populated from script

Simple query performance comparison between dom-0 and dom-u VMs with γ =

Write statement performance comparison between dom-0 and dom-u VMs for γ =

Relations in the Company Schema

Database transformation workflow in Synergy system

Input and output of the candidate views generation mechanism for the Com-

Intermediate results of the candidate views generation mechanism for the Com-

Illustration of view selection and query re-writing procedure for an example equi

Synergy System Architecture Overview

Micro benchmark schema graph

Micro-Benchmark Workload

Micro benchmark results to show that performance of join algorithms is

Experiment to show overhead associated with two phase row locking in

Materialized views selection mechanism and concurrency control mecha-

Performance Evaluation of the write statements in the TPC-W benchmark

Query execution model in each evaluated system

Query text and logical plans for the WDA benchmark queries

The breakdown of query RT into aggregated processing time for each operator

Query text and execution plans with profiled operator times in evaluated system

The breakdown of query RT into aggregated processing time for each operator

Range query sub cases in a block range index

Fusion system overview

Query processing in Fusion system

Gambar

Figure 1.1: Large Scale Data Management Frameworks Ecosystem.
Figure 1.2: Summary of both challenges faced by data architects in large scale data man- man-agement of each enterprise workload class and the mechanisms proposed in this dissertation to address these challenges.
Figure 3.1: Laboratory test bed
Table 3.1: Notations commonly used throughout this chapter.
+7

Referensi

Dokumen terkait

لاطعأ صيخشت ةعملمجا تافيكلما ةنايصو يلمعلا يليصفتلا جهنلما تاعاسلا ىوتلمحا مييقتلا تاودأ ةيهفش ةلئسأ عجارم عوضولما ةمجبرلاو بيرعتلا زكرم ةجمرتو ليس رثرآ: فيلأت ةيئابرهكلا كلاسلاا