A Survey of Distributed Database Management Systems



Similar documents
Introduction to Apache Cassandra

Availability Digest. MySQL Clusters Go Active/Active. December 2006

Hadoop IST 734 SS CHUNG

The Hadoop Distributed File System

NoSQL Data Base Basics

NoSQL and Hadoop Technologies On Oracle Cloud

Big Data With Hadoop

Comparing SQL and NOSQL databases

CS2510 Computer Operating Systems

CS2510 Computer Operating Systems

Integrating Big Data into the Computing Curricula

Hadoop: A Framework for Data- Intensive Distributed Computing. CS561-Spring 2012 WPI, Mohamed Y. Eltabakh

Comparing the Hadoop Distributed File System (HDFS) with the Cassandra File System (CFS)

Facebook: Cassandra. Smruti R. Sarangi. Department of Computer Science Indian Institute of Technology New Delhi, India. Overview Design Evaluation

Distributed File Systems

Introduction to Hadoop. New York Oracle User Group Vikas Sawhney

F1: A Distributed SQL Database That Scales. Presentation by: Alex Degtiar (adegtiar@cmu.edu) /21/2013

Comparing the Hadoop Distributed File System (HDFS) with the Cassandra File System (CFS) WHITE PAPER

THE HADOOP DISTRIBUTED FILE SYSTEM

Cloud Computing at Google. Architecture

Not Relational Models For The Management of Large Amount of Astronomical Data. Bruno Martino (IASI/CNR), Memmo Federici (IAPS/INAF)

Distributed File System. MCSN N. Tonellotto Complements of Distributed Enabling Platforms

Hadoop Architecture. Part 1

Practical Cassandra. Vitalii

Apache Hadoop FileSystem and its Usage in Facebook

Apache Hadoop. Alexandru Costan

Snapshots in Hadoop Distributed File System

Overview. Big Data in Apache Hadoop. - HDFS - MapReduce in Hadoop - YARN. Big Data Management and Analytics

Data Management in the Cloud

Architectural patterns for building real time applications with Apache HBase. Andrew Purtell Committer and PMC, Apache HBase

Distributed File Systems

Hypertable Architecture Overview

HDFS Under the Hood. Sanjay Radia. Grid Computing, Hadoop Yahoo Inc.

Realtime Apache Hadoop at Facebook. Jonathan Gray & Dhruba Borthakur June 14, 2011 at SIGMOD, Athens

SQL VS. NO-SQL. Adapted Slides from Dr. Jennifer Widom from Stanford

Journal of science STUDY ON REPLICA MANAGEMENT AND HIGH AVAILABILITY IN HADOOP DISTRIBUTED FILE SYSTEM (HDFS)

Can the Elephants Handle the NoSQL Onslaught?

CSE 590: Special Topics Course ( Supercomputing ) Lecture 10 ( MapReduce& Hadoop)

A Review of Column-Oriented Datastores. By: Zach Pratt. Independent Study Dr. Maskarinec Spring 2011

X4-2 Exadata announced (well actually around Jan 1) OEM/Grid control 12c R4 just released

CSE-E5430 Scalable Cloud Computing Lecture 2

Take An Internal Look at Hadoop. Hairong Kuang Grid Team, Yahoo! Inc

Introduction to Multi-Data Center Operations with Apache Cassandra and DataStax Enterprise

Chapter 11 Map-Reduce, Hadoop, HDFS, Hbase, MongoDB, Apache HIVE, and Related

A survey of big data architectures for handling massive data

Highly available, scalable and secure data with Cassandra and DataStax Enterprise. GOTO Berlin 27 th February 2014

NoSQL Databases. Institute of Computer Science Databases and Information Systems (DBIS) DB 2, WS 2014/2015

INTRODUCTION TO CASSANDRA

Cassandra A Decentralized, Structured Storage System

Introduction to Multi-Data Center Operations with Apache Cassandra, Hadoop, and Solr WHITE PAPER

HDFS Users Guide. Table of contents

An Approach to Implement Map Reduce with NoSQL Databases

INTRODUCTION TO APACHE HADOOP MATTHIAS BRÄGER CERN GS-ASE

Hadoop Distributed File System. Dhruba Borthakur Apache Hadoop Project Management Committee

Hadoop & its Usage at Facebook

Study and Comparison of Elastic Cloud Databases : Myth or Reality?

Hadoop implementation of MapReduce computational model. Ján Vaňo

Lecture 10: HBase! Claudia Hauff (Web Information Systems)!

Big Data Analytics: Hadoop-Map Reduce & NoSQL Databases

Apache HBase: the Hadoop Database

Near Real Time Indexing Kafka Message to Apache Blur using Spark Streaming. by Dibyendu Bhattacharya

Challenges for Data Driven Systems

Benchmarking Replication in NoSQL Data Stores

Chapter 7. Using Hadoop Cluster and MapReduce

Hadoop Distributed File System. Jordan Prosch, Matt Kipps

Fault Tolerance in Hadoop for Work Migration

Welcome to the unit of Hadoop Fundamentals on Hadoop architecture. I will begin with a terminology review and then cover the major components

Lambda Architecture. Near Real-Time Big Data Analytics Using Hadoop. January Website:

Distributed Systems. Tutorial 12 Cassandra

Introduction to NOSQL

NoSQL Database Options

<Insert Picture Here> Oracle NoSQL Database A Distributed Key-Value Store

Design and Evolution of the Apache Hadoop File System(HDFS)

VoltDB Technical Overview

Apache HBase. Crazy dances on the elephant back

Hadoop and Map-Reduce. Swati Gore

How To Use Big Data For Telco (For A Telco)

Comparing Microsoft SQL Server 2005 Replication and DataXtend Remote Edition for Mobile and Distributed Applications

Large scale processing using Hadoop. Ján Vaňo

The Hadoop Distributed File System

Introduction to Hadoop HDFS and Ecosystems. Slides credits: Cloudera Academic Partners Program & Prof. De Liu, MSBA 6330 Harvesting Big Data

Prepared By : Manoj Kumar Joshi & Vikas Sawhney

HBase A Comprehensive Introduction. James Chin, Zikai Wang Monday, March 14, 2011 CS 227 (Topics in Database Management) CIT 367

In Memory Accelerator for MongoDB

Analytics March 2015 White paper. Why NoSQL? Your database options in the new non-relational world

Processing of massive data: MapReduce. 2. Hadoop. New Trends In Distributed Systems MSc Software and Systems

Comparison of the Frontier Distributed Database Caching System with NoSQL Databases

Lecture 5: GFS & HDFS! Claudia Hauff (Web Information Systems)! ti2736b-ewi@tudelft.nl

How To Scale Out Of A Nosql Database

GraySort and MinuteSort at Yahoo on Hadoop 0.23

Lecture Data Warehouse Systems

Performance Evaluation of NoSQL Systems Using YCSB in a resource Austere Environment

High Availability for Database Systems in Cloud Computing Environments. Ashraf Aboulnaga University of Waterloo

Open source software framework designed for storage and processing of large scale data on clusters of commodity hardware

Why NoSQL? Your database options in the new non- relational world IBM Cloudant 1

HDFS Architecture Guide

Transcription:

Brady Kyle CSC-557 4-27-14 A Survey of Distributed Database Management Systems Big data has been described as having some or all of the following characteristics: high velocity, heterogeneous structure, extremely large volume, and complexity in data distribution and synchronization. As big data became more prominent in the professional world, DBMS s with a capacity to handle such extreme data became necessary. Several different types of DBMS s were developed, one of the most prominent being the distributed DBMS, which allows for the replication of data and concurrency of operations across multiple nodes. Distributed systems in general face numerous obstacles during development, including heterogeneity, openness, security, scalability, fault handling, concurrency, and transparency. Following is a list of numerous popular distributed database management systems with their implementation and attempts to tackle those challenges. The Apache Cassandra Database Management System was developed as an efficient system for handling big data by Google, Amazon, and Facebook, which ultimately open sourced the DBMS to the Apache Foundation in 2009. The result was a highly available, highly reliable, and highly scalable NoSQL alternative to existing RDBMS technologies. Cassandra has been utilized by numerous well-known corporations for which data integrity, security, and availability are essential, including ebay, Netflix, Hewlett Packard, and many others. The Cassandra DBMS was developed with a peer-to-peer distributed architecture, as opposed to the regularly used master-slave system or manual and difficult-to-maintain sharded design. Nodes communicate through a gossip protocol and thus, the absence of a master node allows Cassandra to operate without such a single point of failure that commonly cripples master-slave systems. Cassandra uses the concept of a ring to denote a group of nodes across which data is automatically and transparently distributed in either a randomized (default) or ordered manner. After selecting the desired number of copies, Cassandra

transparently handles data replication, which takes place across multiple nodes in the same ring. This can be further customized with a variety of options, including the ability to further safeguard data on a physical location basis by choosing to store copies in separate physical racks, separate data centers, and even separate cloud platforms. To preserve data integrity, the data is preserved in an atomic, isolated, and durable manner. In terms of read-write capabilities, Cassandra is described as location independent, allowing for data from any database node to be accessed from any other node in the database. To ensure data integrity, when updated, data is first recorded to a commit log and logged temporarily in a volatile memtable, which is later flushed into the more permanent disk-based sorted strings table. In case of node failure during a write operation, data is written to an alternate node, and when the failed node returns to operation, relevant data is synched with the rest of the system. To request data, the user accesses and requests relevant data from a node, deemed the user s coordinator node, in the system. Concurrently, the data is requested from one or more, in case of failure, nodes with the relevant data. In terms of data consistency, the relevant nodes response can be customized from an immediate response to a more gradual approach and can be configured on a per operation basis, allowing for greater control. Read-write operations scale linearly as the number of nodes increase ( Introduction to Apache Cassandra"). The Apache HBase DBMS is a Java-implemented, HDFS-based, open-source, distributed, column-oriented derivation of Google s BigTable system. The Java-based HBase is a top-layer component of both Apache Hadoop and Apache Zookeeper (Rabl). The Hadoop Distributed File System was developed for efficient storage of extremely large data. It uses a master-slave architecture, composed of one master NameNode (a second NameNode can be configured for failure recovery purposes), which manages the system s namespace and performs access control, and numerous subservient DataNodes, which manage data stored on the physical machines. Using the file system namespace, HDFS stores data in file structures, which are stored as data blocks on sets of DataNodes. Furthermore, the NameNode handles file and directory access and naming, as well as block dispersal to DataNodes. DataNodes handle data

access and perform block and data manipulation and replication, when prompted to by the NameNode. MapReduce, the primary way HDFS data is analyzed, is able to operate on a large amount of data by performing operations on smaller block segments of the overall data. ("Comparing the Hadoop Distributed File System (HDFS) with the Cassandra File System (CFS).") MapReduce allows HDFS to perform complex operation on large amounts of data, but does not allow for efficient access of individual records (Karnataki). The HBase DBMS is a NoSQL distributed database designed for use with high volumes of data built on top of HDFS ( Chapter 9. Architecture. ). Similarly to the HDFS, HBase uses a master-slave architecture with a single Master node and numerous Region Servers, each of which are composed of multiple Regions. Regions store data in the form of tables. The region system allows for the reallocation of data for expanding tables, by allowing a table to be stored in numerous regions, increasing its potential size. The Master node handles administrative tasks associated with maintenance of the Cluster and the load across the system, as well as Region allocation to the Region Servers. The Region Servers maintain their assigned Regions, including automatic splitting in response to Region growth, and handle client requests. Since the data in HBase is stored in Tables, unlike the HDFS, the HBase is better suited for accessing individual records than performing operations on large numbers of records (Karnataki). To prevent unintended results, HBase implements concurrency control on write operations by locking accessed structures (i.e. rows, columns) (Chanan). The Voldemort system is a distributed, highly scalable NoSQL DBMS developed by LinkedIn. Foregoing commonly maintained ACID integrity guidelines, Voldemort was designed as a distributed, fault-tolerant, persistent hash table. Voldemort s data model allows for the automatic and transparent replication of information across nodes and a high degree of horizontal scalability. Voldemort can be easily integrated with other DBMS s to add persistence through uncomplicated API calls (Rabl). Voldemort s architecture is made up of numerous nodes with data partitioned in a way that each node maintains a unique subset of the data, enabling the cluster to expand without reconfiguration of every node. Rather than tables, data is maintained in stores, which allow

for more freedom in data type choice (i.e. lists and mappings could be stored as well). Queries are performed with hashtable key-value semantics and thus data is retrieved through the use of primary keys. While not inherently included one-to-many relationships can be established through the use of the list structure type. To improve ease of load estimates and storage transparency, only simple queries are allowed. To reduce load times, rather than preserving data consistency at write time, inconsistencies are allowed until they are resolved at read time through the use of versioning. This inconsistency leads to an increase probability of failed operations. To maintain the state of included data, Voldemort supplies an API for persistence purposes, allowing data to be stored in separate storage entities ( Design ). The Redis DBMS is a key-value data store designed for use with in-memory data and is programmed in ANSI C and can be used with most POSIX systems (Campanelli). Though the data is expected to exist only in short-term memory, data can be (semi-) persisted through the use of periodic snapshots of the data or operational logs. Redis supports keys with the string, hash, list, set, and sorted set types, which can be modified through numerous atomic operations. Data can be asynchronously replicated through the use of an extendible masterslave architecture. Through the use of a non-blocking structure, master and slave nodes do not interfere with each other through the replication and synchronization processes, ultimately allowing for a highly scalable architecture (Rabl). Redis uses an extendible master-slave architecture, which allows for numerous master nodes each connected to numerous slave nodes. Slave nodes can also be interconnected. As previously mentioned, replication is non-blocking on both the master and slave level, allowing either to continue working during the synchronization process. The Master node can continue to issue orders to Slave nodes and Slave nodes can respond to user read-only queries with older data copies. As all Slave nodes can respond to read-only queries, replication can be used for both scalability and redundancy purposes. ("Replication") Redis can be reached through API, applicable with most programming languages. Though there are no inherent concurrency control mechanisms, a Redis implementation can be programmed to use a series of locks when modifying a piece of data (Wagstaff).

The VoltDB DBMS is a RDBMS designed for use with in-memory data and is a derivation of the research prototype H-Store. To preserve data integrity, the DBMS complies with the ACID guidelines. VoltDB partitions data across multi-node clusters by assigning disjoint sets of data to each node. VoltDB supports SQL queries and tactically executes them only at the node with the relevant partitioned data, reducing load time. The in-memory nature of the data allows for further temporal efficiency as this eliminates the overhead from I/O and network access (Rabl). Data is handled in-memory to reduce access times associated with disk seeks. Using a special high performance stored procedure interface, VoltDB ensures at most one round trip between the server and the client for each transaction, reducing communication latencies. VoltDB is composed of multiple partitions, in-memory execution engines, made up of data and processing structures. VoltDB implements and distributes these partitions to the many CPU cores, each of which is single threaded and contains a process queue to be executed sequentially, of the cluster. Sequential execution helps ensure transactional consistency. VoltDB clusters can be easily scaled, without any changes to the cluster layout, both by increasing the number of nodes and their individual capacities. VoltDB allows for small commonly used tables to be replicated across multiple nodes, allowing for quicker access times. VoltDB provides fault tolerance through three distinct methods: K-safety, Network Fault Detection, and Live Node Rejoin. K-safety allows for the user to specify a number, K, of copies for all partitions. VoltDB, then, transparently replicates the data, which thereafter syncs with each change, and in the event of node failure, the system continues using other copies of that node s partition. Due to K-safety, in the event of a network disconnection, both parties may be able to continue functioning, leading to possible synchronization errors. Network fault detection enables the DBMS to recognize the hardware failure and chooses a party to continue operation and discretely shuts down the other. Failed nodes can be rejoined, syncing relevant partition data from sibling nodes, with the rest of the system without significantly impacting operations. In lieu of possible hardware failures, the DBMS can be configured to periodically record snapshots of the database at selected intervals and to record all intersnapshot transactions through a process called command logging, enabling the system to be

brought back to work in a timely manner. For extremely critical databases, VoltDB offers a Database Replication service, through which every change made to the primary DB is made to a replica one, so that in the event of extreme hardware failure, the replica DB can be brought online. VoltDB can be accessed by numerous programming language interfaces as well as a JDBC API ("VoltDB Technical Overview"). The ACID-compliant, open source MySQL DBMS is the most frequently utilized RDBMS in the world. It was developed as a quicker and more flexible alternative to the precursor msql. It was developed with a similar API to msql and was ultimately named after co-founder Monty Widenius s daughter, My. It can be implemented as either part of a client-server system or as a smaller embedded library linkable to an external application. MySQL is built upon an architecture with three distinct node types: Storage Nodes, Management Server Nodes, and MySQL Server Nodes. Storage nodes maintain the DB data, which is replicated across multiple storage nodes. The Management Server Node(s) handle the base configuration of the system and are only used at startup, meaning after their initial actions, the system can run without them. The MySQL Server nodes act as the gateways between the user and the storage node clusters, sending requests for information. All MySQL Server nodes are connected to all Storage nodes, allowing for any change to DB data to be immediately visible to all MySQL Server nodes. The combined properties of each node type contribute to the High Availability of MySQL, allowing for continued function in the event of any node type meaning there is no single point of failure. The cluster is designed using a sharednothing architecture, meaning disk and memory storage are not shared between nodes. As all applications are connected to the MySQL Cluster through the MySQL Server and do not directly interact with the nodes, the system maintains data, network, distribution, replication, and partition transparency. Each transaction triggers a synchronization of all applicable nodes, maintaining data integrity. MySQL detects failures by either registering a communication loss between normally connected nodes or through a heartbeat system. In the event of the first case, all nodes are informed and carry on with the missing node classified as failed and when the node recovers, it is joined as a new node. The heartbeat system works as the nodes are

connected in a logical circle, and each node periodically pings the next node in the chain. In the event of three consecutive missed messages from the prior node, the previous node is classified as dead. In the event of node failure, multiple groups of nodes could become isolated and if they each maintain access to the entirety of the DB, both groups could carry on operations leading to possibly conflicting data. To solve this problem MySQL implements a network partitioning paradigm that determines if a set of nodes contains at least half of the original total number of nodes. If so, the set of nodes is allowed to continue operation. If multiple nodes fail concurrently, to allow for their safe restart, the Master Storage Node uses the number of nodes that have deemed each fail to determine fail order. In the event that a Master Storage Node fails, a replacement is immediately instantiated. The failure order is used to determine the order in which the nodes should be restarted. In the event that the whole system is disrupted, MySQL can keep track of the system state through logging and both local and global checkpoints, which can then be used to recover from hardware failure. In the event of a targeted storage node failure during a transaction, MySQL uses a round-robin approach to transparently select a separate node with the relevant data (Ronstrom). Below is a table describing the challenges each DBMS chose to address during their development. DBMS Heterogeneity Openness Security Scalability Fault Concurrency Transparency (Integrity) Handling Cassandra X X X X X X X HBase X X X X X Voldemort X X X X X Redis X X X X X VoltDB X X X X X X X MySQL X X X X X X All of the above DBMS s tackle the challenges of distributed structures (i.e. heterogeneity, openness, security, scalability, fault handling, concurrency, and transparency) in their own unique way. Some forego certain aspects in an attempt to strengthen separate

areas. The DBMS s all take into consideration heterogeneity, openness, scalability, and fault handling, but several forego data integrity, concurrency of operations, and transparency.

References Campanelli, Piero. "The Architecture of REDIS." REDIS Architecture. N.p., 2011. Web. 29 Apr. 2014. Chanan, Gregory. "The Apache Software FoundationBlogging in Action." Apache HBase Internals: Locking and Multiversion Concurrency Control : Apache HBase. N.p., 11 Jan. 2013. Web. 29 Apr. 2014. "Chapter 9. Architecture." Chapter 9. Architecture. N.p., n.d. Web. 29 Apr. 2014. "Comparing the Hadoop Distributed File System (HDFS) with the Cassandra File System (CFS)." Comparing the Hadoop Distributed File System (HDFS) with the Cassandra File System (CFS). DataStax Corporation, Aug. 2013. Web. 29 Apr. 2014. <http://www.datastax.com/wp-content/uploads/2012/09/wp-datastax- HDFSvsCFS.pdf>. "Design." - Voldemort. N.p., n.d. Web. 29 Apr. 2014. Karnataki, Vivek. "Netwoven Blogs." Netwoven Blogs. N.p., 10 Oct. 2013. Web. 29 Apr. 2014. Rabl, Tilmann, et al. "Solving big data challenges for enterprise application performance management." Proceedings of the VLDB Endowment 5.12 (2012): 1724-1735. "Replication." â Redis. Pivotal, n.d. Web. 29 Apr. 2014. Ronstrom, Mikael, and Lars Thalmann. "MySQL Cluster Architecture Overview."MySQL Cluster Architecture Overview. MySQL, 2004. Web. 29 Apr. 2014. <https://confluence.oceanobservatories.org/download/attachments/16418744/mysqlcluster-technical-whitepaper.pdf>. "VoltDB Technical Overview." VoltDB Technical Overview. VoltDB, Inc., n.d. Web. 29 Apr. 2014. <http://www.odbms.org/wp-content/uploads/2013/11/voltdbtechnicaloverview.pdf>.

Wagstaff, Geoff. "Distributed Locks Using Redis - GoSquared Engineering."GoSquared Engineering. N.p., 21 Mar. 2014. Web. 29 Apr. 2014.