Database Sharding with Oracle RDBMS First Impressions

Total Page:16

File Type:pdf, Size:1020Kb

Load more

Database Sharding with Oracle RDBMS First Impressions Robert Bialek Principal Consultant BASEL BERN BRUGG DÜSSELDORF FRANKFURT A.M. FREIBURG I.BR. GENEVA HAMBURG COPENHAGEN LAUSANNE MUNICH STUTTGART VIENNA ZURICH Who Am I Principal Consultant and Trainer at Trivadis GmbH in Munich – MSc in Computer Engineering Focus: – Oracle Database High Availability – Database Architecture/Internals – Backup/Recovery – Troubleshooting/Performance Tuning – Linux Operating System Trainer for the following Trivadis courses: – Oracle Grid Infrastructure, RAC, Data Guard 2 17.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Our company. Trivadis is a market leader in IT consulting, system integration, solution engineering and the provision of IT services focusing on and technologies in Switzerland, Germany, Austria and Denmark. We offer our services in the following strategic business fields: O P E R A T I O N Trivadis Services takes over the interacting operation of your IT systems. 3 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions With over 600 specialists and IT experts in your region. COPENHAGEN 14 Trivadis branches and more than 600 employees HAMBURG 200 Service Level Agreements Over 4,000 training participants Research and development budget: DÜSSELDORF CHF 5.0 million FRANKFURT Financially self-supporting and sustainably profitable STUTTGART Experience from more than 1,900 FREIBURG VIENNA MUNICH projects per year at over 800 BRUGG customers BASEL ZURICH BERN GENEVA LAUSANNE 4 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Technology on its own won't help you. You need to know how to use it properly. 5 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Database Scalability – Limits? For some business requirements: – extreme scalability/elasticity, global data distribution,… know database techniques might not be sufficient. The solution: Database Sharding (horizontal scaling) One Database – Not really a new concept: Cassandra, MongoDB, MySQL, … Split one … into many Only 1/N components 6 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Agenda 1. Sharded Database Architecture 2. Data Sharding Methods 3. Data High Availability/Disaster Recovery 4. Session/Statement Routing 5. Conclusions 7 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Sharded Database Architecture 8 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Distributed Partitioning Horizontally distributed data partitioning using shared-nothing database architecture – Sharded tables: data exist in one shard Up to 1000 non-CDB shards – Duplicated tables: data exist in all shards Sharded Database (SDB) Distributed Shard 1 Shard 2 Shard 3 Partitioning DB (Tables) Server B Server C Server D Unsharded Server A Don’t share physical resources No cluster software 9 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Big Picture Shard Director 1 Shard Director 2 Shard Director 3 Shard Director 4 Shard Catalog Shard Catalog Global Services: OLTP_RW, OLTP_RO, … Shards Shards Data Center (Region): Germany Data Center (Region): Switzerland 10 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Sharded Tables All tables in one table family must be equi-partitioned (sharding key) – Two methods to create a table family: reference partitioning or the PARENT clause CUSTOMERS CREATE SHARDED TABLE customers (... CUSTID FIRSTNAME … CREATE SHARDED TABLE orders (... 100 101 102 ORDERITEMS LINEITEMID CUSTID ORDERID … ORDERS 1000 100 300 Table Family Table ORDERID CUSTID ORDERDATE … 1001 100 300 300 100 1002 101 301 301 101 1003 101 301 302 102 1004 102 302 11 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Duplicated Tables Shard 1 Shard 2 Shard 3 Used to avoid cross-shard operations Use materialized view replication – The master table is created in the Shard Catalog database – R/O materialized views in all shards – All supporting objects created automatically in SDB – SHRD_DUPL_TABLE_REFRESH_RATE initialization Shard Catalog parameter controls refresh frequency Cannot coexist in a tablespace with sharded tables CREATE DUPLICATED TABLE products( productid INTEGER PRIMARY KEY, ... ) TABLESPACE PRODUCTS_TBS; 12 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – DDL Execution The application schema name as well as object names are identical in all shards DDLs are executed in the Shard Catalog database or using GDSCTL – Automatically propagated to all shards SQL> CONNECT SYS@SH_CATALOG GDSCTL> sql "CREATE USER ..." SQL> ALTER SESSION ENABLE SHARD DDL; GDSCTL> sql "CREATE TABLESPACE SQL> CREATE USER <app_name>... SET ..." SQL> GRANT CREATE TABLE TO <app_name>... ... SQL> CREATE DUPLICATED TABLE <name>... SQL> CREATE SHARDED TABLE <name>... Shard Catalog 13 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Sharded Tables (Chunks) Physical data distribution based on chunks – Each table partition is stored in different tablespace 0 CUSTOMERS_P1 Chunk #1 TBS_P1 Shard 1 ORDERS_P1 357913941 CUSTOMERS_P2 Chunk #2 TBS_P2 ORDERS_P2 Chunks: 1-6 715827882 … 2147483646 CUSTOMERS_P7 Shard 2 Chunk #7 TBS_P7 ORDERS_P7 2505397587 CUSTOMERS_P8 Chunk #8 ORDERS_P8 TBS_P8 Chunks: 7-12 2863311528 14 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions SDB Architecture – Resharding (Hotspot Elimination) Adding/Removing shards or hotspot elimination requires chunk movement – Automatically or manually GDSCTL > MOVE CHUNK -CHUNK 12 -SOURCE sh01 -TARGET sh12 FAN R/O Chunk level 0 Copy files and notification to Chunk R/O on RMAN backup RMAN restore clients source Drop the chunk FAN chunk File move/ Chunk level 1 on the source up/down events restore RMAN backup A chunk can also be spit manually within a shard GDSCTL > SPLIT CHUNK -CHUNK 12 Hotspot 15 09.09.2016 Database Sharding with Oracle RDBMS 12c Release 2 - First Impressions Data Sharding Methods 16 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data Sharding Methods – System-Managed Sharding Data is automatically distributed across shards using partitioning by consistent hash – Expression: MOD(ORA_HASH('<SHARDING_KEY'),4294967295) – Useful for data distribution Automatic resharding in case of cardinality change The number of chunks is defined during CREATE SHARDCATALOG and cannot be changed later A tablespace set needs to be created in the Shard Catalog database SQL> CREATE TABLESPACE SET TBS_SET USING TEMPLATE (DATAFILE SIZE 1G AUTOEXTEND ON NEXT 512M MAXSIZE UNLIMITED EXTEND MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO); 17 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data Sharding Methods – System-Managed Sharding Shards #Chunks=12 #Shards=3 C001TS_SET customers_P1 Shard Catalog C002TS_SET customers_P2 C003TS_SET customers_P3 C004TS_SET customers_P4 CREATE SHARDED TABLE customers ( Set C005TS_SET customers_P5 custid varchar2(20) CONSTRAINT C006TS_SET customers_P6 pk_customers PRIMARY KEY, C007TS_SET customers_P7 firstname varchar2(50), C008TS_SET customers_P8 lastname varchar2(50), Tablespace ... ) TABLESPACE SET tbs_set C009TS_SET customers_P9 C00ATS_SET customers_P10 PARTITION BY CONSISTENT HASH (custid) PARTITIONS AUTO; C00BTS_SET customers_P11 C00CTS_SET customers_P12 18 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data Sharding Methods – Composite Sharding Data is first partitioned by range or list method across multiple shardspaces (set of shards), then by consistent hash in all shards within a shardspace GDSCTL> ADD SHARDSPACE germany; GDSCTL> ADD SHARDSPACE switzerland; GDSCTL> ADD SHARD –CONNECT shdb01 –SHARDSPACE germany; GDSCTL> ADD SHARD –CONNECT shdb02 –SHARDSPACE germany; GDSCTL> ADD SHARD –CONNECT shdb02 –SHARDSPACE switzerland; ... SQL> CREATE TABLESPACE SET de_tbs IN SHARDSPACE germany; SQL> CREATE TABLESPACE SET ch_tbs IN SHARDSPACE switzerland; 19 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data Sharding Methods – Composite Sharding Shards CREATE SHARDED TABLE customers C001DE_TBS customers_P1 ( C002DE_TBS customers_P2 custid varchar2(20), Shardspace country varchar2(2), GERMANY de_tbs ... C003DE_TBS customers_P3 ) C004DE_TBS customers_P4 PARTITIONSET BY LIST (country) PARTITION BY CONSISTENT HASH (custid) PARTITIONS AUTO ( C005CH_TBS customers_P5 PARTITIONSET germany VALUES ('DE') C006CH_TBS customers_P6 TABLESPACE SET de_tbs Shardspace PARTITIONSET switzerland VALUES ('CH') SWITZERLAND ch_tbs TABLESPACE SET ch_tbs C007CH_TBS customers_P7 ... C008CH_TBS customers_P8 20 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data High Availability Disaster Recovery 21 16.11.2016 DOAG Conference 2016: Database Sharding with Oracle RDBMS - First Impressions Data High Availability / Disaster Recovery – Overview Data replication with Data Guard is a crucial component in SDB environment – High availability, disaster recovery, read offloading – Replication deployment performed fully automatically – The logical unit of data replication is a shardgroup
Recommended publications
  • Relational Database Design Chapter 7

    Relational Database Design Chapter 7

    Chapter 7: Relational Database Design Chapter 7: Relational Database Design First Normal Form Pitfalls in Relational Database Design Functional Dependencies Decomposition Boyce-Codd Normal Form Third Normal Form Multivalued Dependencies and Fourth Normal Form Overall Database Design Process Database System Concepts 7.2 ©Silberschatz, Korth and Sudarshan 1 First Normal Form Domain is atomic if its elements are considered to be indivisible units + Examples of non-atomic domains: Set of names, composite attributes Identification numbers like CS101 that can be broken up into parts A relational schema R is in first normal form if the domains of all attributes of R are atomic Non-atomic values complicate storage and encourage redundant (repeated) storage of data + E.g. Set of accounts stored with each customer, and set of owners stored with each account + We assume all relations are in first normal form (revisit this in Chapter 9 on Object Relational Databases) Database System Concepts 7.3 ©Silberschatz, Korth and Sudarshan First Normal Form (Contd.) Atomicity is actually a property of how the elements of the domain are used. + E.g. Strings would normally be considered indivisible + Suppose that students are given roll numbers which are strings of the form CS0012 or EE1127 + If the first two characters are extracted to find the department, the domain of roll numbers is not atomic. + Doing so is a bad idea: leads to encoding of information in application program rather than in the database. Database System Concepts 7.4 ©Silberschatz, Korth and Sudarshan 2 Pitfalls in Relational Database Design Relational database design requires that we find a “good” collection of relation schemas.
  • Plantuml Language Reference Guide (Version 1.2021.2)

    Plantuml Language Reference Guide (Version 1.2021.2)

    Drawing UML with PlantUML PlantUML Language Reference Guide (Version 1.2021.2) PlantUML is a component that allows to quickly write : • Sequence diagram • Usecase diagram • Class diagram • Object diagram • Activity diagram • Component diagram • Deployment diagram • State diagram • Timing diagram The following non-UML diagrams are also supported: • JSON Data • YAML Data • Network diagram (nwdiag) • Wireframe graphical interface • Archimate diagram • Specification and Description Language (SDL) • Ditaa diagram • Gantt diagram • MindMap diagram • Work Breakdown Structure diagram • Mathematic with AsciiMath or JLaTeXMath notation • Entity Relationship diagram Diagrams are defined using a simple and intuitive language. 1 SEQUENCE DIAGRAM 1 Sequence Diagram 1.1 Basic examples The sequence -> is used to draw a message between two participants. Participants do not have to be explicitly declared. To have a dotted arrow, you use --> It is also possible to use <- and <--. That does not change the drawing, but may improve readability. Note that this is only true for sequence diagrams, rules are different for the other diagrams. @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: Another authentication Response @enduml 1.2 Declaring participant If the keyword participant is used to declare a participant, more control on that participant is possible. The order of declaration will be the (default) order of display. Using these other keywords to declare participants
  • BEA Weblogic Platform Security Guide

    BEA Weblogic Platform Security Guide

    UNCLASSIFIED Report Number: I33-004R-2005 BEA WebLogic Platform Security Guide Network Applications Team of the Systems and Network Attack Center (SNAC) Publication Date: 4 April 2005 Version Number: 1.0 National Security Agency ATTN: I33 9800 Savage Road Ft. Meade, Maryland 20755-6704 410-854-6191 Commercial 410-859-6510 Fax UNCLASSIFIED UNCLASSIFIED Acknowledgment We thank the MITRE Corporation for its collaborative effort in the development of this guide. Working closely with our NSA representatives, the MITRE team—Ellen Laderman (task leader), Ron Couture, Perry Engle, Dan Scholten, Len LaPadula (task product manager) and Mark Metea (Security Guides Project Oversight)—generated most of the security recommendations in this guide and produced the first draft. ii UNCLASSIFIED UNCLASSIFIED Warnings Do not attempt to implement any of the settings in this guide without first testing in a non-operational environment. This document is only a guide containing recommended security settings. It is not meant to replace well-structured policy or sound judgment. Furthermore, this guide does not address site-specific configuration issues. Care must be taken when implementing this guide to address local operational and policy concerns. The security configuration described in this document has been tested on a Solaris system. Extra care should be taken when applying the configuration in other environments. SOFTWARE IS PROVIDED "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
  • Plantuml Language Reference Guide

    Plantuml Language Reference Guide

    Drawing UML with PlantUML Language Reference Guide (Version 5737) PlantUML is an Open Source project that allows to quickly write: • Sequence diagram, • Usecase diagram, • Class diagram, • Activity diagram, • Component diagram, • State diagram, • Object diagram. Diagrams are defined using a simple and intuitive language. 1 SEQUENCE DIAGRAM 1 Sequence Diagram 1.1 Basic examples Every UML description must start by @startuml and must finish by @enduml. The sequence ”->” is used to draw a message between two participants. Participants do not have to be explicitly declared. To have a dotted arrow, you use ”-->”. It is also possible to use ”<-” and ”<--”. That does not change the drawing, but may improve readability. Example: @startuml Alice -> Bob: Authentication Request Bob --> Alice: Authentication Response Alice -> Bob: Another authentication Request Alice <-- Bob: another authentication Response @enduml To use asynchronous message, you can use ”->>” or ”<<-”. @startuml Alice -> Bob: synchronous call Alice ->> Bob: asynchronous call @enduml PlantUML : Language Reference Guide, December 11, 2010 (Version 5737) 1 of 96 1.2 Declaring participant 1 SEQUENCE DIAGRAM 1.2 Declaring participant It is possible to change participant order using the participant keyword. It is also possible to use the actor keyword to use a stickman instead of a box for the participant. You can rename a participant using the as keyword. You can also change the background color of actor or participant, using html code or color name. Everything that starts with simple quote ' is a comment. @startuml actor Bob #red ' The only difference between actor and participant is the drawing participant Alice participant "I have a really\nlong name" as L #99FF99 Alice->Bob: Authentication Request Bob->Alice: Authentication Response Bob->L: Log transaction @enduml PlantUML : Language Reference Guide, December 11, 2010 (Version 5737) 2 of 96 1.3 Use non-letters in participants 1 SEQUENCE DIAGRAM 1.3 Use non-letters in participants You can use quotes to define participants.
  • Hive Where Clause Example

    Hive Where Clause Example

    Hive Where Clause Example Bell-bottomed Christie engorged that mantids reattributes inaccessibly and recrystallize vociferously. Plethoric and seamier Addie still doth his argents insultingly. Rubescent Antin jibbed, his somnolency razzes repackages insupportably. Pruning occurs directly with where and limit clause to store data question and column must match. The ideal for column, sum of elements, the other than hive commands are hive example the terminator for nonpartitioned external source table? Cli to hive where clause used to pick tables and having a column qualifier. For use of hive sql, so the source table csv_table in most robust results yourself and populated using. If the bucket of the sampling is created in this command. We want to talk about which it? Sql statements are not every data, we should run in big data structures the. Try substituting synonyms for full name. Currently the where at query, urban private key value then prints the where hive table? Hive would like the partitioning is why the. In hive example hive data types. For the data, depending on hive will also be present in applying the example hive also widely used. The electrician are very similar to avoid reading this way, then one virtual column values in data aggregation functionalities provided below is sent to be expressed. Spark column values. In where clause will print the example when you a script for example, it will be spelled out of subquery must produce such hash bucket level of. After copy and collect_list instead of the same type is only needs to calculate approximately percentiles for sorting phase in keyword is expected schema.
  • Comparing Approaches: Analytic Workspaces and Materialized Views

    Comparing Approaches: Analytic Workspaces and Materialized Views

    Comparing Materialized Views and Analytic Workspaces in Oracle Database 11g An Oracle White Paper March 2008 Comparing Materialized Views and Analytic Workspaces in Oracle Database 11g Introduction ....................................................................................................... 3 Fast Reporting – Comparing The Approaches............................................. 3 Overview of Materialized Views................................................................. 3 Overview of Analytic Workspaces............................................................. 4 Working Together in the Oracle Database ............................................... 6 Explanation of Data Used for this White Paper........................................... 6 Methodology for Designing and Building the Materialized Views........ 7 Manually Creating the Materialized View ............................................. 7 Generating Recommendations from the SQL Access Advisor ........ 9 Methodology for Defining the Analytic Workspace ............................. 10 Tools For Querying ........................................................................................ 15 Refreshing the Data ........................................................................................ 16 Refreshing Materialized Views.................................................................. 16 Refreshing Analytic Workspace Cubes.................................................... 17 Other Issues To Consider.............................................................................
  • Oracle Database 10G Materialized Views & Query Rewrite

    Oracle Database 10G Materialized Views & Query Rewrite

    Oracle Materialized Views & Query Rewrite An Oracle White Paper May 2005 Oracle Materialized Views & Query Rewrite Executive Overview.......................................................................................... 3 Introduction ....................................................................................................... 3 Why use Summary Management..................................................................... 4 Components of Summary Management ........................................................ 5 Schema Requirements.................................................................................. 5 Dimensions ........................................................................................................ 5 Hints on Defining Dimensions .................................................................. 7 Materialized Views ............................................................................................ 8 Creating a Materialized View....................................................................... 8 Using your own pre-built materialized views............................................ 9 Index selection for Materialized Views...................................................... 9 What can this Materialized View Do?...................................................... 10 Tuning a Materialized View....................................................................... 11 Materialized View Invalidation ................................................................. 12 Security Implications
  • Asymmetric-Partition Replication for Highly Scalable Distributed Transaction Processing in Practice

    Asymmetric-Partition Replication for Highly Scalable Distributed Transaction Processing in Practice

    Asymmetric-Partition Replication for Highly Scalable Distributed Transaction Processing in Practice Juchang Lee Hyejeong Lee Seongyun Ko SAP Labs Korea SAP Labs Korea POSTECH [email protected] [email protected] [email protected] Kyu Hwan Kim Mihnea Andrei Friedrich Keller SAP Labs Korea SAP Labs France SAP SE [email protected] [email protected] [email protected] ∗ Wook-Shin Han POSTECH [email protected] ABSTRACT 1. INTRODUCTION Database replication is widely known and used for high Database replication is one of the most widely studied and availability or load balancing in many practical database used techniques in the database area. It has two major use systems. In this paper, we show how a replication engine cases: 1) achieving a higher degree of system availability and can be used for three important practical cases that have 2) achieving better scalability by distributing the incoming not previously been studied very well. The three practi- workloads to the multiple replicas. With geographically dis- cal use cases include: 1) scaling out OLTP/OLAP-mixed tributed replicas, replication can also help reduce the query workloads with partitioned replicas, 2) efficiently maintain- latency when it accesses a local replica. ing a distributed secondary index for a partitioned table, and Beyond those well-known use cases, this paper shows how 3) efficiently implementing an online re-partitioning opera- an advanced replication engine can serve three other prac- tion. All three use cases are crucial for enabling a high- tical use cases that have not been studied very well.
  • Apache Hive Overview Date of Publish: 2018-07-12

    Apache Hive Overview Date of Publish: 2018-07-12

    Data Access 3 Apache Hive overview Date of Publish: 2018-07-12 http://docs.hortonworks.com Contents What's new in this release: Apache Hive...............................................................3 Apache Hive 3 architectural overview................................................................... 4 Apache Hive 3 upgrade process..............................................................................6 Changes after upgrading to Apache Hive 3.........................................................................................................7 Convert Hive CLI scripts to Beeline................................................................................................................... 9 Hive Semantic and Syntax Changes.................................................................................................................. 10 Creating a table.......................................................................................................................................10 Escaping db.table references.................................................................................................................. 11 Casting timestamps................................................................................................................................. 11 Renaming tables......................................................................................................................................12 Checking compatibility of column changes...........................................................................................12
  • Short Type Questions and Answers on DBMS

    Short Type Questions and Answers on DBMS

    BIJU PATNAIK UNIVERSITY OF TECHNOLOGY, ODISHA Short Type Questions and Answers on DBMS Prepared by, Dr. Subhendu Kumar Rath, BPUT, Odisha. DABASE MANAGEMENT SYSTEM SHORT QUESTIONS AND ANSWERS Prepared by Dr.Subhendu Kumar Rath, Dy. Registrar, BPUT. 1. What is database? A database is a logically coherent collection of data with some inherent meaning, representing some aspect of real world and which is designed, built and populated with data for a specific purpose. 2. What is DBMS? It is a collection of programs that enables user to create and maintain a database. In other words it is general-purpose software that provides the users with the processes of defining, constructing and manipulating the database for various applications. 3. What is a Database system? The database and DBMS software together is called as Database system. 4. What are the advantages of DBMS? 1. Redundancy is controlled. 2. Unauthorised access is restricted. 3. Providing multiple user interfaces. 4. Enforcing integrity constraints. 5. Providing backup and recovery. 5. What are the disadvantage in File Processing System? 1. Data redundancy and inconsistency. 2. Difficult in accessing data. 3. Data isolation. 4. Data integrity. 5. Concurrent access is not possible. 6. Security Problems. 6. Describe the three levels of data abstraction? The are three levels of abstraction: 1. Physical level: The lowest level of abstraction describes how data are stored. 2. Logical level: The next higher level of abstraction, describes what data are stored in database and what relationship among those data. 3. View level: The highest level of abstraction describes only part of entire database.
  • Automated Selection of Materialized Views and Indexes for SQL Databases

    Automated Selection of Materialized Views and Indexes for SQL Databases

    Automated Selection of Materialized Views and Indexes for SQL Databases Sanjay Agrawal Surajit Chaudhuri Vivek Narasayya Microsoft Research Microsoft Research Microsoft Research [email protected] [email protected] [email protected] Abstract large number of recent papers in this area, most of the Automatically selecting an appropriate set of prior work considers the problems of index selection and materialized views and indexes for SQL materialized view selection in isolation. databases is a non-trivial task. A judicious choice Although indexes and materialized views are similar, must be cost-driven and influenced by the a materialized view is much richer in structure than an workload experienced by the system. Although index since a materialized view may be defined over there has been work in materialized view multiple tables, and can have selections and GROUP BY selection in the context of multidimensional over multiple columns. In fact, an index can logically be (OLAP) databases, no past work has looked at considered as a special case of a single-table, projection the problem of building an industry-strength tool only materialized view. This richness of structure of for automated selection of materialized views materialized views makes the problem of selecting and indexes for SQL workloads. In this paper, materialized views significantly more complex than that we present an end-to-end solution to the problem of index selection. We therefore need innovative of selecting materialized views and indexes. We techniques for dealing with the large space of potentially describe results of extensive experimental interesting materialized views that are possible for a given evaluation that demonstrate the effectiveness of set of SQL queries and updates over a large schema.
  • Partitionable Blockchain

    Partitionable Blockchain

    Partitionable Blockchain A thesis submitted to the Kent State University Honors College in partial fulfillment of the requirements for University Honors by Joseph Oglio May, 2020 Thesis written by Joseph Oglio Approved by _____________________________________________________________________, Advisor ______________________________________, Chair, Department of Computer Science Accepted by ___________________________________________________, Dean, Honors College ii TABLE OF CONTENTS LIST OF FIGURES…..………………………………………………………………….iv ACKNOWLEDGMENTS……………...………………………………………………...v CHAPTER 1. INTRODUCTION……………………………………………….……………….1 2. PARTITIONABLE BLOCKCHAIN...…………………………….…………….7 2.1. Notation……………………………..…………………...…………………7 2.2. The Partitionable Blockchain Consensus Problem…………………..……10 2.3. Impossibility...………………………………………………………….…10 2.4. Partitioning Detectors……………………………………………………..12 2.5. Algorithm PART………………………………………………………….15 2.6. Performance Evaluation…………………………………………………..19 2.7. Multiple Splits…………………………………………………………….21 3. CONCLUSION, EXTENSIONS, AND FUTURE WORK…………………….25 BIBLIOGRAPHY………………………………………………………………….…...27 iii LIST OF FIGURES Figure 2.1 Implementation of ◊AGE using WAGE …………………..…….…………….14 Figure 2.2 Algorithm PART.………………………………………………….…………...22 Figure 2.3 Global blockchain tree generated by PART.…………………………..……….23 Figure 2.4 PART with perfect AGE. Split at round 100.………………………….……….23 Figure 2.5 PART+◊AGE. Split at round100, detector recognizes it at round 200…..…….23 Figure 2.6 PART+◊AGE. No split in computation, detector mistakenly