This paper defines as "Classical"



Similar documents
Data Consistency on Private Cloud Storage System

DISTRIBUTED SYSTEMS [COMP9243] Lecture 9a: Cloud Computing WHAT IS CLOUD COMPUTING? 2

Transactions and ACID in MongoDB

Cloud Service Model. Selecting a cloud service model. Different cloud service models within the enterprise

THE WINDOWS AZURE PROGRAMMING MODEL

How To Understand The Architecture Of A Client Server System

CHAPTER 2 MODELLING FOR DISTRIBUTED NETWORK SYSTEMS: THE CLIENT- SERVER MODEL

Tufts University. Department of Computer Science. COMP 116 Introduction to Computer Security Fall 2014 Final Project. Guocui Gao

Affordable, Scalable, Reliable OLTP in a Cloud and Big Data World: IBM DB2 purescale

Converged, Real-time Analytics Enabling Faster Decision Making and New Business Opportunities

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

SOFT 437. Software Performance Analysis. Ch 5:Web Applications and Other Distributed Systems

Eventually Consistent

Distributed Data Management

The Sierra Clustered Database Engine, the technology at the heart of

Distributed Data Stores

Chapter 19 Cloud Computing for Multimedia Services

BIG DATA IN THE CLOUD : CHALLENGES AND OPPORTUNITIES MARY- JANE SULE & PROF. MAOZHEN LI BRUNEL UNIVERSITY, LONDON

Cloud Computing for SCADA

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

Client/Server and Distributed Computing

Cloud Computing. Cloud computing:

Fax Server Cluster Configuration

Scaling Analysis Services in the Cloud

NoSQL in der Cloud Why? Andreas Hartmann

Public Cloud Partition Balancing and the Game Theory

Cloud Based Application Architectures using Smart Computing

Performance with the Oracle Database Cloud

Where We Are. References. Cloud Computing. Levels of Service. Cloud Computing History. Introduction to Data Management CSE 344

Introduction to NOSQL

Building highly available systems in Erlang. Joe Armstrong

An Advanced Commercial Contact Center Based on Cloud Computing

Contents. 1. Introduction

CHAPTER 1: OPERATING SYSTEM FUNDAMENTALS

NoSQL Data Base Basics

SAP HANA - Main Memory Technology: A Challenge for Development of Business Applications. Jürgen Primsch, SAP AG July 2011

Web-based Multimedia Content Management System for Effective News Personalization on Interactive Broadcasting

Distributed Systems Lecture 1 1

IaaS Cloud Architectures: Virtualized Data Centers to Federated Cloud Infrastructures

PipeCloud : Using Causality to Overcome Speed-of-Light Delays in Cloud-Based Disaster Recovery. Razvan Ghitulete Vrije Universiteit

Cloud Computing using

Company & Solution Profile

A Framework for the Design of Cloud Based Collaborative Virtual Environment Architecture

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

Software Life-Cycle Management

CLOUD COMPUTING SECURITY ISSUES

Distribution transparency. Degree of transparency. Openness of distributed systems

Enabling Database-as-a-Service (DBaaS) within Enterprises or Cloud Offerings

Can the Elephants Handle the NoSQL Onslaught?

Client/Server Computing Distributed Processing, Client/Server, and Clusters

Evaluator s Guide. McKnight. Consulting Group. McKnight Consulting Group

An Energy Efficient Server Load Balancing Algorithm

COSC 6374 Parallel Computation. Parallel I/O (I) I/O basics. Concept of a clusters

NoSQL and Hadoop Technologies On Oracle Cloud

Big Data Technology CS , Technion, Spring 2014

Statistics Analysis for Cloud Partitioning using Load Balancing Model in Public Cloud

An Approach Towards Customized Multi- Tenancy

The CAP theorem and the design of large scale distributed systems: Part I

BENCHMARKING CLOUD DATABASES CASE STUDY on HBASE, HADOOP and CASSANDRA USING YCSB

Agenda. Background and cloud portability and interoperability concepts Distributed computing reference model. development Conclusions

Software-Defined Networks Powered by VellOS

Database Replication with Oracle 11g and MS SQL Server 2008

DFSgc. Distributed File System for Multipurpose Grid Applications and Cloud Computing

An Introduction to Cloud Computing Concepts

Axceleon s CloudFuzion Turbocharges 3D Rendering On Amazon s EC2

Big Data With Hadoop

A Study of Infrastructure Clouds

An Oracle White Paper September Oracle Database and the Oracle Database Cloud

A VIEW OF CLOUD COMPUTING ADOPTION IN JORDANIAN BUSINESSES

Code and Process Migration! Motivation!

Elasticity in Multitenant Databases Through Virtual Tenants

bigdata Managing Scale in Ontological Systems

Big Data Storage Architecture Design in Cloud Computing

CSE 544 Principles of Database Management Systems. Magdalena Balazinska (magda) Winter 2009 Lecture 1 - Class Introduction

Data Management in the Cloud. Zhen Shi

InfiniteGraph: The Distributed Graph Database

Cloud Computing with Microsoft Azure

E-Commerce Supply Chain Management Domain Research and Standard Architectures Kunal Chopra, Jeff Elrod, Bill Glenn, Barry Jones.

Data Management in the Cloud

Understanding Neo4j Scalability

NoSQL for SQL Professionals William McKnight

EUCIP IT Administrator - Module 2 Operating Systems Syllabus Version 3.0

Data-Intensive Computing with Map-Reduce and Hadoop

TOP 7 THINGS Every Executive Should Know About Cloud Computing EXECUTIVE BRIEF

Cloud Computing at Google. Architecture

Scaling Web Applications on Server-Farms Requires Distributed Caching

Tamanna Roy Rayat & Bahra Institute of Engineering & Technology, Punjab, India talk2tamanna@gmail.com

Challenges for Data Driven Systems

Network Attached Storage. Jinfeng Yang Oct/19/2015

Transcription:

Principles of Transactional Approach in the Classical Web-based Systems and the Cloud Computing Systems - Comparative Analysis Vanya Lazarova * Summary: This article presents a comparative analysis of the principles of transactional approach in the classical client/server systems and the cloud computing systems. The major idea of the transactional approach in the classical client/server systems is that the actions performed by a user have to be performed in all-or-nothing manner. The four classical principles of transactional approach in client/server systems, known as ACID (Atomicity, Concurrency, Independence and Durability) are considered. The methodology of development of cloud-based computational systems has integrated many of principles of the design of the classical web-based computational system. However, there are some basically new aspects in the realization of these principles. The multitenancy implies changes in the application of the transactional approach by cloud computing systems. A set of methodological principles referred to as BASE (Basic Availability, Soft state, Eventual consistency) is analyzed. The BASE principles dramatically changed the programming style at all levels. The developers of cloud computing systems have to find the balance (or compromise) between the methodological principles of ACID and BASE. Key words: transactional approach, cloud computing, consistency, ACID, BASE. JEL: C67, D8, D85. Introduction This paper defines as "Classical" client/server systems the ones that are developed specifically for one company. A classical client/server system could be implemented in a local network. In this case the computers are typically placed in the building of the company and managed by the employees from the company s administrative department. Another kind of * Associate Professor, PhD, University of National and World Economy, Department of Information Technologies and Communication; e-mail:vlazarova@unwe.bg 98 Economic Alternatives, Issue 1, 2013

classical client/server system is the webbased system, which involves working on a set of computers connected via the Internet. The cloud computing systems are in many aspects close to the classical web-based client/server system. In both cases the endusers of the computers perform minimal work, whereas the hard work is performed by remote servers. Still the organization of data processing by cloud computing systems is essentially different. Cloud computing systems rely on gathering together a large number of machines with an average speed and a huge amount of memory and disk space. The applications and data of many companies, which are the clients of the cloud services, are loaded in such a way so that they could be divided into very small pieces and processed on separate machines. Accordingly, there is a different way of building applications and organizing the databases. The methodology of the development of cloud computing systems has integrated many of the principles of the design of the classical web-based computational system. But there are some basically new aspects in the realization of these principles. This paper presents the transactional approach and its application by the classical webbased client/server systems and by the cloud computing systems. 1. Classical web-based client/server systems and the ACID principles of the transactional approach Almost any classical web-based client/ server system includes the following three types of general functions: Fig. 1. Four tiers in a classical web-based computing system 99

User interface - functions implementing the information system interaction with the user. Business logic - functions of information processing in accordance with specific rules governing the specific application area. Description of the business logic includes descriptions of business rules and business processes. Business rules are the operations, definitions and restrictive conditions applied by the organization in the achievement of its goals. Storage and retrieval of data from databases or from individual files. When the functions of the information system are divided into software components so that they can be installed to run on a separate machine, they form a tier (layer) of information system. The architecture of the classical webbased computing system includes four tiers (see figure 1): Tier 1 includes the graphical user interface (GUI) visualization in browsers. Tier 2 includes GUI management realized on the web server. Within the scope of tier 3 is the business logic, implemented on an application server. Tier 4 includes the database management systems (DBMS) and all data sources used in the system. The major idea on which the transactional approach is based is that some set of actions performed by any end-user have to be implemented in all-or-nothing manner (Gray, 1981). The aim of the transactional approach is to ensure consistency of the data in the database, given that many endusers work with one and the same set of data. While one user is reading some data, another user could try to modify or delete the same data. Such situations cannot be resolved automatically by the database management systems. The transactional approach has an impact on the organization of data processing at all levels in the system and on the organization of the processes on the business logic tier, in particular. Let us recall the four principles of transactional approach in client/server systems, known as ACID. ACID stands for Atomicity, Concurrency, Independence and Durability: - Atomicity: Each transaction is either executed to completion, or else is not executed at all. The term atomic is used to refer to operations that have multiple sub-operations but that are performed in all-or-nothing manner. - Concurrency: Transactions are executed so as to maximize concurrency, which in turn maximizes the degrees of freedom available within the server to schedule execution efficiently. - Independence: Transactions are designed to operate independently of each other. Each client application is written to operate, as if the entire remainder of the system were idle and the database server itself prevents concurrent transactions from observing one another s intermediate results. Such a process is referred to as isolation. - Durability: The results of the performed transaction are persistent. Nowadays many software developers consider the principles of ACID as absolutely necessary because these principles ensure 100 Economic Alternatives, Issue 1, 2013

the consistency of the data in the databases. The principle of data consistency in the database is regarded as fundamental. Furthermore, from the classical viewpoint, an information system with inconsistent database is seen as unusable at all. The next section presents how by the development of cloud computing systems it is namely the fundamental principle of data consistency that is given up. The strong requirement of data consistency is replaced by a weak requirement for "eventual consistency". 2. Cloud computing systems and the BASE principles The general architecture of a cloud computing system is close to those of a classical web-based computing system (see figure 2). The first tier in a cloud computing system is the webpage with its associated request processing logic, realized on the web-server. The GUI visualization in the browsers is not considered because it lies beyond the scope of the cloud. The second tier is the business logic tier. The most important new features, compared to the classical systems, are realized at this level. The second tier includes highly scalable key-value storage, caches, used to support the first tier. The third tier includes the databases used by the first and second tiers. Database shards are often used in the Fig. 2. Tiers in a cloud computing system 101

cloud computing systems. A database shard is a horizontal partition in a database. On the business logic tier, database shards are presented as temporary datasets maintained by the business processes. The main characteristic of cloud computing - multitenancy is the ability to share resources among a large community of tenants, which changes the internal organization at any of the three levels. Multitenancy is realized specifically in the three services of delivery models: Software as a Service (SaaS), Platform as a Service (PaaS), and Infrastructure as a Service (IaaS) (Lazarova, 2012). We are considering here the case of SaaS - delivering of applications to tenants. Multitenancy implies changes in the application of the transactional approach by cloud computing systems. A set of methodological principles called BASE (Basic Availability, Soft state, Eventual consistency) has been proposed. Some authors (Briman, 2012; Chapple, 2012) regard the BASE principles as an attempt to adapt ACID to the needs of the cloud computing systems, while others (Pritchett, 2008; Cook, 2009) consider it to be merely an alternative to ACID. BASE comprises the methodological principles of Basic Availability, Soft State, Eventual Consistency, which are defined as follows: - Basic Availability. Availability of data even in the presence of multiple failures. It is achieved by applying the distributed approach to database management. Instead of maintaining a single large data store and focusing on the fault tolerance of that store, databases spread data across many storage systems with a high degree of replication. In the unlikely event that a failure should disrupt access to a segment of data, this does not necessarily result in a complete database outage. Availability is a mixture of performance and fault tolerance. The application must keep running and deliver responses even if some part of data has failed. Even if the necessary data cannot be delivered immediately, the client should not be left waiting. Soft State. BASE databases abandon the consistency requirements of the ACID model pretty much completely. One of the basic concepts behind BASE is that data consistency is the developer s problem and should not be handled by the database. Soft state encompasses cached data or other kinds of reconstructible data, linked to a processing node. Such data can be discarded from the node in case the node crashes or is to restart. Hard state, in contrast, refers to durable data, both in the form of files or databases. The value of soft state can be replicated massively and, if a first-tier application uses it, the inner tiers are shielded from the associated load. Eventual Consistency. The only requirement that databases have regarding consistency is that at some point in the future the data will converge to a consistent state. However, there are no guarantees as to when this will 102 Economic Alternatives, Issue 1, 2013

occur. That is a complete departure from the immediate consistency requirement of ACID that prohibits a transaction from being executed until the prior transaction has been completed and the database has converted to a consistent state. Consistency has a durability-related dimension. A consistent service should never forget an update once it has been accepted and the client has been sent a reply. Following the BASE principles, the transactional approach dramatically changed the programming style at the business logic level. The task is divided into subtasks - application pieces which will run in parallel if possible. Such subtasks could be regarded as short pipelines of operations. According to BASE, the cloud system includes modules performing the subtasks in parallel. Even though the tasks of each Fig. 3. All modules run in parallel, loading data from the buffers. 103

client are performed sequentially, while one module is running a subtask for one client, the next module runs a subtask for another client (see figure 3). The critical point by applying the BASE methodology is the possible inconsistency of the data. So the major question which the designer of a cloud computing system has to answer is: How robust is the system in case of data inconsistency? The level of tolerance to data inconsistency depends on the task which the end-users are solving. The weakening of consistency does not fit well with applications in the financial and the medical areas or in applications like booking a complex travel plan including accommodation, cars and flights. However, there are applications where the end-user is not aware that anything Fig. 4. From the viewpoint of any end-user, it seems that the task is performed by the cloud computing system in transaction mode. 104 Economic Alternatives, Issue 1, 2013

strange has happened. Thus, for instance, in the cases of making purchases on Amazon. com, browsing ebay auctions or looking for news about the latest movie, the weakening of consistency works well. Many cloud computing applications require access to some form of replicated and consistent state, for example, the updates to a Facebook account or the remaining inventory of a book in Amazon. com. The applications need to reach the system components that handle the web request. Therefore the data must be replicated in such a way that every component that needs to access the data or update it can readily do so. Cloud systems require various forms of application of fault tolerance. While the server may break down, the application running on the client s computer should never go down. However, that is not always possible. There are conditions under which the client platform may not be sure what state the cloud service has been left in, so it may fail to resume operation without the help from either the server itself or from the user of the system administration. In cases where data inconsistency is not acceptable, the cloud computing system has to run the subtasks of any single enduser in such a way so as to ensure a virtual transaction mode (see figure 4). For example, a cloud computing system for booking tickets will ensure strong consistency of the database and all booking transactions will follow the ACID principles. Naturally, the program realization of the transaction mode in a cloud system is more complex compared to the realization of transactions in a classical client/server system. Conclusion The methodology of development of cloud computing systems has integrated many of the principles of the design of the classical web-based system. As has been already said, there are some basically new aspects in the realization of these principles. Particularly, the multitenancy implies changes in the application of the transactional approach by cloud computing systems. The system designers have to decide, depending on the needs of the end-users, how important data consistency is and whether, in case some inconsistency should be allowed, to what a degree. There is a broad range of possible options between the principles of ACID and BASE. Therefore the developers of cloud computing systems should find a balance (or compromise) between these two sets of methodological principles. References: Briman, K., 2012. Guide to Reliable Distributed Systems. Springer. Chapple, M., 2012. Abandoning ACID in Favor of BASE Changes to the long-held relational model. About.com Guide. [online] Available at: http://databases.about.com/ od/otherdatabases/a/abandoning-acid-in- Favor-Of-Base.htm [Accessed December, 11 th, 2012] 105

Cook, J., 2009. ACID versus BASE for database transactions. July 6. Blog [online] Available at: http://www.johndcook.com/ blog/2009/07/06/brewer-cap-theorembase/ [Accessed December, 11 th, 2012] Gray, J., 1981. The Transaction Concept: Virtues and Limitations. Proceedings of the 7th International Conference on Very Large Databases. Vallco Parkway, Cupertino CA. Lazarova, V., 2012. Multitenancy in Cloud Computing. In: International Conference on Application of Information and Communication Technology and Statistics in Economy and Education ICAICTSEE 2012, UNWE, Sofia, Bulgaria. Pritchett, D., 2008. BASE: An ACID Alternative. ACM QUEUE. [online] Available at: http:// queue.acm.org/detail.cfm?id=1394128 [Accessed December, 11 th, 2012] 106 Economic Alternatives, Issue 1, 2013