Towards Cloud Data Management for Online Games - A Prototype Platform

Page created by Cynthia Romero
 
CONTINUE READING
Towards Cloud Data Management for Online Games - A Prototype Platform
University of Magdeburg

                  School of Computer Science

                       Master Thesis

Towards Cloud Data Management
 for Online Games - A Prototype
             Platform

                           Author:

                         Shuo Wang
                     14, October, 2013

                          Advisors:

         Prof. Dr. rer. nat. habil. Gunter Saake
                   M.Sc. Ziqiang Diao
    Department of Technical and Business Information System
Towards Cloud Data Management for Online Games - A Prototype Platform
Wang, Shuo:
Towards Cloud Data Management for Online Games - A Prototype Platform
Master Thesis, University of Magdeburg, 2013.
Towards Cloud Data Management for Online Games - A Prototype Platform
Abstract

Over the last decades, Massively Multi-player Online Role Playing Games (MMORPGs)
have become big business. Along with the development of MMORPG, the game’s
content and entertainment is enriching. MMORPG has attracted a quite number of
players. With the steeply increasing count of players, the data volumes of a game
that needs to be persisted will also increase starkly. Nowadays the most popular data
store system in MMORPGs is Relational Database Management System (RDBMS).
However the traditional RDBMS cannot completely meet the requirements for data
storage. Many MMORPGs, in the case of large users accessing, will encounter the
database’s bottlenecks, such as the big data volume and lack of scalability and so on.
The traditional RDBMS has very limited scalability because of its subjection to the
ACID rules. Most of MMORPGs have very complex server-side architecture, which
makes the background database even harder to scale out. The traditional RDBMS are
facing challenges in the MMORPG industry. My study focuses on using the Cloud
database to solve these problems that RDBMS are facing. In this work, A simple
MMORPG testbed has been implemented. It contains a server side with some game
logic and a client side. The popular Cloud database Cassandra has been chosen to
store the game data. We evaluate the reading and writing performance as well as the
scalability of our game prototype. The results show that our prototype is able to meet
the data management requirements of MMORPGs and it has a big potential to scale
out in a large range and support very large number of players.
Contents

List of Figures                                                                                                         viii

List of Tables                                                                                                           ix

List of Code Listings                                                                                                    xi

List of Acronyms                                                                                                        xiii

1 Introduction and Background                                                                                             1
  1.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                      2
  1.2 Motivation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                      3
  1.3 Structure of Thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . .                                       4

2 Related Fundations                                                                                                      5
  2.1 MMORPG . . . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     5
  2.2 MMORPG Architecture . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     6
  2.3 Relational Database Management System .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     8
      2.3.1 Brief History . . . . . . . . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     8
      2.3.2 Structured Query Language . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     8
      2.3.3 ACID Properties . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     8
      2.3.4 Schema . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .     9
  2.4 Limitations of RDBMS in MMORPG . . .              .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    10

3 Cloud Database Management                                                                                              13
  3.1 Cloud Computing . . . . . . . . . . . . . . .         .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    13
  3.2 Cloud Computing Service Model . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    14
  3.3 Cloud Database . . . . . . . . . . . . . . . .        .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    15
      3.3.1 SQL Database vs. NoSQL Database                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    17
      3.3.2 Data Model . . . . . . . . . . . . . .          .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    18
      3.3.3 ACID vs. BASE . . . . . . . . . . .             .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    19
  3.4 Cloud Database Products . . . . . . . . . .           .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    22
  3.5 MMORPG Data Storage in Cloud Database                 .   .   .   .   .   .   .   .   .   .   .   .   .   .   .    23

4 Cassandra                                                                                                              25
  4.1 History and Development         . . . . . . . . . . . . . . . . . . . . . . . . .                                  25
vi                                                                                                                       Contents

     4.2   Cassandra Data Model . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   25
           4.2.1 Cassandra Ring . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   28
     4.3   Transaction and Concurrency Control       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
           4.3.1 Atomicity . . . . . . . . . . .     .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
           4.3.2 Tunable Consistency . . . . .       .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   30
           4.3.3 Isolation . . . . . . . . . . . .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
           4.3.4 Durability . . . . . . . . . . .    .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
           4.3.5 Read and Write . . . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   31
     4.4   Query Tools in Cassandra . . . . . .      .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   .   32

5 Design and Implementation                                                                                                      37
  5.1 Starting Point . . . . . . . . . . . . . . . . . . . . . . . . . .                                 .   .   .   .   .   .   37
      5.1.1 Infrastructure . . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   37
      5.1.2 Functional Requirements . . . . . . . . . . . . . . . .                                      .   .   .   .   .   .   38
  5.2 Prototype Architecture . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   39
  5.3 MMORPG Database Schema Design in Cassandra . . . . . .                                             .   .   .   .   .   .   40
      5.3.1 Tranditional Game Database Schema . . . . . . . . .                                          .   .   .   .   .   .   40
      5.3.2 Different Design Concepts . . . . . . . . . . . . . . .                                      .   .   .   .   .   .   43
      5.3.3 Schema Transformation . . . . . . . . . . . . . . . .                                        .   .   .   .   .   .   44
      5.3.4 Comparison . . . . . . . . . . . . . . . . . . . . . . .                                     .   .   .   .   .   .   48
      5.3.5 Creation and Query of Column Families in Cassandra                                           .   .   .   .   .   .   49
      5.3.6 Deployment of Cassandra Cluster . . . . . . . . . . .                                        .   .   .   .   .   .   52
  5.4 Game Server Design and Implementation . . . . . . . . . . .                                        .   .   .   .   .   .   53
      5.4.1 Darkstar . . . . . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   53
      5.4.2 Data Structures . . . . . . . . . . . . . . . . . . . . .                                    .   .   .   .   .   .   56
  5.5 Game Client Implementation . . . . . . . . . . . . . . . . .                                       .   .   .   .   .   .   58
      5.5.1 JMMORPG . . . . . . . . . . . . . . . . . . . . . . .                                        .   .   .   .   .   .   58
      5.5.2 Client Libraries . . . . . . . . . . . . . . . . . . . . .                                   .   .   .   .   .   .   59

6 Evaluation                                                                                                                     61
  6.1 Experimental Environment . . . . . . . . . . . . . . . . . . .                                     .   .   .   .   .   .   61
      6.1.1 Experimental Clients . . . . . . . . . . . . . . . . . .                                     .   .   .   .   .   .   61
      6.1.2 Configuration of Cassandra . . . . . . . . . . . . . .                                       .   .   .   .   .   .   62
      6.1.3 Methodology . . . . . . . . . . . . . . . . . . . . . .                                      .   .   .   .   .   .   62
      6.1.4 Acquisition and Expectation of Experimental Results                                          .   .   .   .   .   .   63
  6.2 Experiment Results and Discussion . . . . . . . . . . . . . .                                      .   .   .   .   .   .   64
      6.2.1 Performance of the Prototype . . . . . . . . . . . . .                                       .   .   .   .   .   .   64
      6.2.2 Scalability of the Prototype . . . . . . . . . . . . . .                                     .   .   .   .   .   .   66

7 Conclusion and Future Work                                                                                                     73

Bibliography                                                                                                                     75
List of Figures

 2.1   Typical architecture of a MMORPG [WKG+ 07] . . . . . . . . . . . . .            6
 2.2   A Cloud-based MMORPG architecture adapted from[DSWM13] . . . .                  7
 2.3   A simple E-R model and relational data model . . . . . . . . . . . . . .        10

 3.1   Cloud service model adapted from[Bok10] . . . . . . . . . . . . . . . .         14
 3.2   Efficiency vs. control[Spr12] . . . . . . . . . . . . . . . . . . . . . . . .   15
 3.3   Different properties in NoSQL according to Brewer’s theorem[GL02] . .           19
 3.4   The popular databases products in different group of CAP adapted from
       [Hew10] . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   20

 4.1   The structure of a column . . . . . . . . . . . . . . . . . . . . . . . . .     26
 4.2   The structure of a row . . . . . . . . . . . . . . . . . . . . . . . . . . .    26
 4.3   Cassandra column family stores sorted rows and columns . . . . . . . .          27
 4.4   Cassandra cluster ring adapted from [Dat13e] . . . . . . . . . . . . . .        29
 4.5   Cassandra client write request[Dat13e] . . . . . . . . . . . . . . . . . .      32
 4.6   Cassandra client read request[Dat13e] . . . . . . . . . . . . . . . . . . .     33

 5.1   The infrastructure of the prototype . . . . . . . . . . . . . . . . . . . .     38
 5.2   The test platform architecture . . . . . . . . . . . . . . . . . . . . . . .    39
 5.3   E-R model design of prototype . . . . . . . . . . . . . . . . . . . . . . .     42
 5.4   Cassandra column family design derived from E-R model . . . . . . . .           45
 5.5   Cassandra column family inventory sample . . . . . . . . . . . . . . . .        47
 5.6   Cassandra column family event log sample . . . . . . . . . . . . . . . .        48
 5.7   Datastax Cassandra OPSCenter . . . . . . . . . . . . . . . . . . . . . .        53
viii                                                                             List of Figures

       5.8   Class diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .    54
       5.9   DarkStar architecture adapted from [Bur07] . . . . . . . . . . . . . . .         55
       5.10 DarkStar core component adapted from [Bur07] . . . . . . . . . . . . .            56
       5.11 Sequence diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      58
       5.12 Server class implementation . . . . . . . . . . . . . . . . . . . . . . . .       59
       5.13 A screen shot of our prototype(client side) . . . . . . . . . . . . . . . .       60

       6.1   Average response time of 200 clients     . . . . . . . . . . . . . . . . . . .   63
       6.2   Reading/Writing response time for group 1 . . . . . . . . . . . . . . . .        65
       6.3   Reading/Writing response time for group 2 . . . . . . . . . . . . . . . .        65
       6.4   Reading/Writing response time for group 3 . . . . . . . . . . . . . . . .        66
       6.5   Group 1: Performances of 1 nodes Cassandra         . . . . . . . . . . . . . .   67
       6.6   Group 2: Performances of 2 nodes Cassandra         . . . . . . . . . . . . . .   68
       6.7   Group 3: Performances of 3 nodes Cassandra         . . . . . . . . . . . . . .   68
       6.8   Group 4: Performances of 4 nodes Cassandra . . . . . . . . . . . . . . .         69
       6.9   Group 5: Performances of 5 nodes Cassandra . . . . . . . . . . . . . . .         69
       6.10 Average reading time of 5 groups . . . . . . . . . . . . . . . . . . . . .        71
       6.11 Average reading time of 5 groups(modified) . . . . . . . . . . . . . . .          71
       6.12 Average writing time of 5 groups . . . . . . . . . . . . . . . . . . . . .        72
List of Tables

 3.1   Classification of Cloud database products adapted from [MCO10] . . .             22
 3.2   Data classification and requirements analysis adapter from [DSWM13] .            24

 4.1   Relational model analogy . . . . . . . . . . . . . . . . . . . . . . . . . .     28
 4.2   Replicas table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .   30
x   List of Tables
List of Code Listings

 4.1   Using CQL creating keyspace sample . . . . . . . . . . . . . . . . . . .         33
 4.2   Using CQL creating column family sample . . . . . . . . . . . . . . . .          34
 4.3   CQL insert and select sample . . . . . . . . . . . . . . . . . . . . . . .       34
 4.4   CLI creating a keyspace . . . . . . . . . . . . . . . . . . . . . . . . . .      35
 4.5   CLI creating a column family . . . . . . . . . . . . . . . . . . . . . . .       35
 4.6   CLI set users information    . . . . . . . . . . . . . . . . . . . . . . . . .   36
 4.7   CLI get uses information . . . . . . . . . . . . . . . . . . . . . . . . . .     36
 5.1   SQL syntax sample . . . . . . . . . . . . . . . . . . . . . . . . . . . . .      43
 5.2   CLI creating a keyspace . . . . . . . . . . . . . . . . . . . . . . . . . .      49
 5.3   CLI creating a column family . . . . . . . . . . . . . . . . . . . . . . .       50
 5.4   Using a ColumnQuery to get money of a user . . . . . . . . . . . . . .           51
 5.5   A sample of using a SliceQuety . . . . . . . . . . . . . . . . . . . . . .       51
 5.6   A sample of using a RangeSliceQuety . . . . . . . . . . . . . . . . . . .        52
 5.7   Data structure game player . . . . . . . . . . . . . . . . . . . . . . . .       56
 5.8   Data structure command . . . . . . . . . . . . . . . . . . . . . . . . . .       57
xii   List of Code Listings
List of Acronyms

API      Application Programming Interface

CLI      Command Line Interface
CQL      Cassandra Query Language

DCL      Data Control Language
DDL      Data Definition Language
DML      Data Manipulation Language

E-R      Entity-Relation

IaaS     Infrastructure as a Service

JDK      Java Development Kit
JMX      Java Management Extensions

MMOFPS Massively   Multi-player First Person Shooter
MMOG   Massively   Multi-Player Online Games
MMORPG Massively   Multi-player Online Role Playing Game
MMORTS Massively   Multi-player Online Real-Time Strategy

NF       Normal Forms
NIST     National Institute of Standards and Technology

PaaS     Platform as a Service
PDA      Personal Digital Assistant
PDS      Project Darkstar Server

RDBMS    Relational Database Management System
RPC      Remote Procedure Call
xiv                                 List of Acronyms

 SaaS   Software as a Service
 SQL    Structured Query Language
 SSH    Security Shell

 VPN    Virtual Private Network
1. Introduction and Background

Massively Multi-Player Online Games (MMOG) has become more and more popular
over the last years. In an MMOG, players can play games with others in the world.
The Online games are usually more interesting than the normal PC game, because
the players of online game are playing against or cooperating with other human rather
than the machine. Despite the artificial intelligence getting more and more advance, it
is still quite far from replicating the challenge and pleasure of playing against another
human. Normally, a player in an online game is not alone, he will build their own
social circle and find new friends[FBS07]. This social circle will make the game more
attractive to the player. People could get more fun in online games and even a sense of
accomplishment. According to the Niko report, the Chinese online gaming market has
grown to more than 9 billion dollars at 2012 year end[int13]. Another report on global
MMOG Market predicts, the MMOG will become the second largest gaming segment
in the next few yeas, and the most growing area will be the market APAC1 and Eastern
European regions[17113].
The MMORPG is an important member of MMOG. It distinguish from other online
games by allowing thousands of player playing in a single game world. Our study will
focus on this kind of game. The growing number of players makes the data volume
increasing and getting the architecture more complex. The existing game architecture
adopting a relational database for storage of massive user data, with the growing data
volume and the number of players, the drawback of Relational Database Management
System (RDBMS) is slowly exposed. The players of a game has elasticity, thus no
one can predict how many users can a new MMORPG attract. Bruce Wookcock’ re-
search finds that, when a new MMORPG coming into market, it will attract many
users at beginning and then this number will decreasing and the workload for online
game is unpredictable over longer periods of time[PS09]. If the game gets popular
over time, the number of player may exponentially growth. A large amounts of play-
  1
      APAC: Asia and Pacific
2                                                                1. Introduction and Background

ers may playing game at same time, and this will cause a big access pressure on the
database. The game vendor have to purchase more game servers and database servers
to support the growing players. In contrast, the purchased servers could be a kind of
waste if the players continuously reduced[FBS07]. In some large popular MMORPG,
there will be usually thousands or even ten thousand players access the game database
concurrently. The database of an MMORPG must have scalability, consistency and
highly performance. However the traditional RDBMS cannot satisfy the requirement
mentioned above simultaneously[DSWM13]. So we need a kind of new database, which
should have elastic scalability and has the ability to handles large amount of data. A
Cloud-based database could be a potential solution for MMORPG game data store.

1.1          Introduction
Many Massively Multi-player Online Role Playing Games (MMORPGs) have a lot of
subscriptions, for instance the World of WarCraft has millions of players in the world
and many game companies have relying MMORPG achieved big commercial business.
A single-node game server and database is not possible to support so many concurrent
users playing. Many studies have focus on how to scale a game server so that it can
support more user concurrent online. Those researches proposed Peer-to-Peer based
architecture to scale the server in order to improve the performance of the massively
multi-player games [KLXH04][AT06]. Some researches proposed novel algorithm to
improve networking or reduce latency. Assiotis has a solution for MMORPG. In this
model, the game world is divided into many small areas, every filed will be handled
by a single node, he has also proposed a new algorithm to reduce the package size.
The proposed model is scalable and the players in different field can interact with each
other seamlessly [ZKD08]. Some studies give new idea to optimize the game state, they
present a new way to classify and store game data. Some of the optimization is based
on object database. It could be very convenient when we persistent the game data.
But object database is hard to scale. Some other paper optimized the data structure
onto relational database, for instance, Zhang’s paper describes a new efficient way to
persist game state [DGK+ 09], he identifies different consistency categories and gives
them different priority. For category with low consistency level, the storage strategies
with low overhead will be applied. This method provides efficient writes and can be
dynamically adjusted. It worth nothing that most of studies are focused on RDBMS,
which has limited scalability due to its ACID constraint and complex architecture. The
ACID constraint guarantees the database transactions are reliably processed. Many
database rely upon locking to provide ACID capability. Lock means that a transaction
marks the data as locked, so that other transactions cannot modify the data until it
releases the lock. Locks means competition, which will result some processes waiting
until the resource be released. This lock mechanism will lead to performance loss
if the RDBMS scaled to a large size. Beside, the RDBMS is difficult to scale out
due to its complex structure. But many of popular MMORPGs adopt a RDBMS to
persist game data[BBG10], for example EVE has applied SQL database2 . Even an
    2
        (http://doublebuffered.com/2008/10/05/can-eve-evolve/)
1.2. Motivation                                                                       3

MMORPG with a mature commercial database be applied. The MMOGs struggle to
achieve much more than 500 transactions per second. And this transaction rate cannot
be improved by simply adding new node in cluster. With the increasing number of
players and concurrent database access, the RDBMS becomes a bottleneck in a lager
scale MMORPG.

Nowadays the research on Cloud computing is a hot topic. The Cloud-based NoSQL
storage model could be a potential solution to the problem that RDBMS faced. The ad-
vantages of Cloud database are easy to scale and high performance and availability[BBG10].
Cloud database is in infancy, so researches on the possibility to apply a NoSQL Cloud
database on a MMORPG are not so much. A master thesis from Muhammad has im-
plemented a Snowbox battle game[Muh11]. The game persists game state in a NoSQL
Cloud database Riak. This architecture has good scalability and performance. How-
ever, in his paper, he didn’t describe the transaction and consistency problem. Other
paper from Diao has also proposed a Cloud-based MMORPG model[DSWM13]. He has
classify the game data in different group and made an appropriate Cloud-based persis-
tence solution for MMORPG. He point out that, the Cloud-based database can be used
to store non-sensitive data. The privacy data and the data need highly consistency or
transactions are not suitable for Cloud database. Cloud database can’t displace RDBMS
completely. There is also no “one fit all” database products. We should for different
propose chose different database products. The Cloud database has many drawbacks
need to be addressed, such as consistency, transaction and data privacy[DWC10], access
control[Ram09] and so on. Cloud database are not intend designed for MMORPG, and
the existing SNS(Social Networking Services) on top of Cloud database are very dif-
ferent from MMORPG. Comparing MMORPG to SNS, such as Facebook and Twitter
[Aba09], the SNSs have normally very large number of users, and it doesn’t need higher
consistency. Because it is total acceptable that my friends two minutes later see my
status after I updated it. However, MMORPG needs some kind of consistency, some
of the game data need to be performed in transaction[DSWM13]. For this reason, the
Cloud database cannot be applied to MMORPG directly.

1.2     Motivation
The MMORPG architecture will benefit from Cloud database and get more scalability.
However, there are only few publications that discuss the Cloud based MMORPG. This
thesis will introduce the character of Cloud database to the architecture of MMORPG.
As the idea from [DSWM13], who classified the game data as several Categories ac-
cording to different consistency demands. Thesis thesis will combine the characteristics
of Cloud database and the requirements of MMORPG. The Cloud database should be
more suitable for storing MMORPG game state after improvement. We will design
and implement a Cloud-based MMORPG testbed. The problems that encountered by
implementing will be discussed. And we will evaluate the performance and scalability
of the game testbed.
4                                                      1. Introduction and Background

1.3     Structure of Thesis
This Thesis will be structured as follows:

Chapter 1 Introduction and Background:
This chapter introduces the background information of this thesis and the development
of MMORPG market as well as the motivation of this paper.
Chapter 2 General Information:
This chapter introduces the architecture of MMORPG and describes the foundation of
the Cloud database. The most popular Cloud database products are compared and we
also illustrated why we chose Cassandra as the database for our testbed.
Chapter 3 Cloud Database Management:
In this chapter, the basis and features of Cloud computing and Cloud database, the
possibility of its application in MMORPG as well as the advantages and drawbacks are
introduced. The Cloud database has normally high scalability and can handle large
data volume. It is the highest potential solution for the bottleneck of database problem
in MMORPG.
Chapter 4 Cassandra:
This chapter gives the basics information about the data model and infrastructure of
Cassandra, which will be important for our prototype design and implementation. Cas-
sandra is a key-value NoSQL database, which has the high scalability and availability.
Chapter 5 Design and Implementation:
Chapter 5 illustrates the processes from design to implementation of our prototype’s
client side and server side, and the solutions of the problems we met during this
processes. During the implementation of our prototype, it is quite different between
RDMBS table design and Cassandra column family design. These differences and rel-
ative merits will be discussed in detail here.
Chapter 6 Evaluation:
This chapter gives the methodology and result of our experiments, based on which the
performance and scalability of our prototype are evaluated.
Chapter 7 Conclusion:
In this chapter, the conclusion and summary based on our experiment results are pre-
sented here. Some limitations and possible improvements of this thesis work are also
outlined here.
2. Related Fundations

2.1     MMORPG
MMORPG is an abbreviation of Massively Multi-Player Online Role Playing Games1 .
It is the subset of the MMOG (Massively Multi-Player Online Game). An MMOG is
a computer game, which is capable of supporting multilayer in parallel. It normally
consists of a client side and a server side. The game logic of an MMOG runs on server
side to protect the game from malicious manipulation. The MMOG server simulates
a giant persistent virtual world through computing, database operating, receiving and
handling the request from client [Bar04]. Depending on the different game world, the
MMOG has lots of other variants2 . For instances, Massively Multi-player Online Real-
Time Strategy (MMORTS), the players of this kind of game can build their own military
in the game world and use different strategies to against others, such as“settlers Online”
3
  . “MMO Rhythm game” is a kind of music game, of which the players have to do
some actions following the music rhythm, and the winner is the player who do with
the most accuracy. MMO Racing simulate a virtual world, in which the player can
buy cars and racing with friends; MMO Social game is a game aimed for player’s
social communications in a virtual world; Massively Multi-player First Person Shooter
(MMOFPS) creates a virtual world, in which players can shoot in their own views with
or against other players. However the virtual worlds of those MMOGs mentioned above
are mostly divided into many small sessions, in which only several players compete in a
separate room or a battle field. A server will create an isolate space for each group and
the space will be destroyed after the one single game. A MMORPG distinguishes itself
from the others by allowing a very large number of players to interact with each other
in one virtual shared game world and the game world of MMORPG will keep running
even in case of no player in it. moreover, unlike other type of MMOG, which only need
  1
    http://en.wikipedia.org/wiki/Massively multiplayer online role-playing game
  2
    http://www.sciencedaily.com/articles/m/massively multiplayer online game.htm
  3
    http://www.mmobomb.com/review/the-settlers-online
6                                                                             2. Related Fundations

to persist users’ account and player’s informations. An MMORPG must persist large
data volume such as inventory, skills, social relation, etc. for all of the players for a
very long time and part of data will be modified constantly by many current users. In
an MMORPG, a player can create an avatar, who controls his avatar to kill monsters
or complete quest to get experience. If the avatar of the player gets enough experience,
he will get stronger and gain more skills and abilities. The MMORPG are meant to be
played for a long-term and the players will spend months or years on a single character
[ZKD08]. My thesis will investigate the performance of a MMORPG by introducing
Cloud database into the architecture of traditional MMORPG storage and a testbed
environment will be create as a small MMORPG world to verify my idea.

2.2      MMORPG Architecture
Normally a highly abstracted structure of a basic MMORPG is composed of a client
and a server. The client is an interface through which the users connect with the
server and interact with other players. Game client could be variety, such as a smart
phone client, Personal Digital Assistant (PDA) client, browser or a PC application.
A game server seems to be a complicate software system. However, a MMORPG is
just a carefully organized relative simple component. Although individual games may
differ slightly in details of their implementation, the underlying architecture are usually
similar [DSWM13][Bur07]. A highly simplified view of MMORPG server architecture
is typically consist of four parts[HYC04], Map/Application server, Database server,
Transactional Data Cache and Directory server[CDG+ 08][CKSW02]. The Figure 2.1

                                                      Monitoring Database
                  Client

                                 Directory
               Login Server       Server

                                                                            Map/Applicati
                                                                             on Servers

                                  Server 1     Server 2       Server 3         Server 4

              User Accounts
                Database
                                             Transactional Database Cache

                                                World State Database

              Figure 2.1: Typical architecture of a MMORPG [WKG+ 07]

shows the typical basic structure of a full functional game server running on top of
2.2. MMORPG Architecture                                                                       7

RDBMS. If a player sends a request to the server for logging in, he/she will type in
his/her account from client side. The login server will receive the login data and verify
the user’s identity in cooperation with the users’ accounts database. If the validation
is passed, the login server will send an encrypted user id along with a token back
to the client. The client use this token to communicate with the Directory server
and the Directory server will then arrange the validated client session in one of the
Map/Application servers. All the users’ behaviors in the game must be monitored and
stored in the monitoring database in order to maintain the order of the virtual world.
While the player is gaming, the server computes the global state of the game world
based on the actions submitted by players, and the new relevant state information will
be sent to the client in real time within 200ms[CHL06]. All the game related data are
stored in World State Database by the transactional data cache. According to a study,
to ensure fluent play, the response time of an MMORPG must be kept less than 1250ms
[FRS05], while keeping lower latency is critical for keeping the player engaging. With
the increasing number of players, the game architecture based on RDBMS is hard to
maintain and the underlying RDBMS will face the bottleneck of limited scalability.

                                              Client

                Login Server              Gateway Server                    Chat Server

                                           Zone Server
                                                                        HDFS/Cassandra
                                    Logic Server       Map Server   (Game Data and Log Data)
            RDBMS as a Service
              (Account Data)
                                          In-Memory DB

                                        Data Access Server

                                     Cloud Storage System
                                         (State Data)

     Figure 2.2: A Cloud-based MMORPG architecture adapted from[DSWM13]

Furthermore, for supporting thousands of concurrent players, the game vendor should
maintain a large static infrastructure with hundreds to thousands of distributed servers
in order to provide the required quality of service[AT06]. For example, the World of
Warcraft, has over 10,000 serversnaemassively. As the study shows, the MMORPG’s
demands of resource are highly dynamic and thus a large portion of the statically
allocated resources are wasted [NIP+ 08]. This leads to very inefficient resource utiliza-
tion. The author proposed an ecosystem for MMOGs, whose underlying technology is
Cloud computing. His system reached efficient on-demand resource usage by hosting
the MMOGs on the Cloud [NPI11]. But this study focused on the game server itself,
8                                                                 2. Related Fundations

so the drawbacks of RDBMS problems are still not solved. To addressing the database
limitation in the MMORPG architecture, Diao has proposed a new way by introducing
the Cloud database into the MMORPG[DSWM13].
 Figure 2.2 on the previous page shows the simplified architecture proposed by Diao.
The general idea of this structure is managing the data of online games according to
their different consistency requirements. Such as game account data and billing data
need strong consistency and highly security, so they should always be performed as a
transaction and must be stored in a RDBMS which has good support for transactional
operations. And for game and state data which has strong requirements for flexibility
and availability will be stored in the Cloud. The log data will not be modified any more
after it’s persisted in a database. It’s typically large-scale and usually analysed after
a long period of time. So the demand of consistency and performance are also not so
strict that they can be stored in a Cloud database such as Cassandra[DSWM13].

2.3     Relational Database Management System
2.3.1    Brief History
The first idea of relational Database was brought by Edgar Codd with his paper “A
relational model of data for large shared data banks” [Cod01]. In this paper, he has
firstly proposed the theory of a relational database, which has a big effect on today’s
database. RDBMS has been developed and evolved for more than 40 years and it has
been proved to be very mature and reliable . Nearly 80% applications have applied a
RDBMS for their data persist[Hew10]. We can say that, In RDMBS stored the whole
world.

2.3.2    Structured Query Language
There are many reasons why the relational database has become so popular in the
world. One of the important reasons is RDBMS has adopted a Structured Query
Language (SQL). SQL is powerful for some reasons. First, it allows user to perform
complex operation with data by using simple Data Manipulation Language (DML) such
as insert, delete, update and it supports grouping aggregate and summary functions.
SQL provides a variety of operations for creating, altering and deleting data schema in
run time by using Data Definition Language (DDL). SQL also allows users to manage
access rights by using Data Control Language (DCL). Second, SQL has a standard basic
syntax, which can be learned quickly. Even you changed your storage system from one
vendor to anther, the standard SQL language will be still supported by every RDBMS.
Except SQL, there are also many intuitive graphical interfaces supported by different
database vendors for viewing and working with relational database.

2.3.3    ACID Properties
Besides the features we mentioned above, the RDBMS support an important feature, it
is transaction. A transaction is like the“transformation of state”. As Jim Gray described
2.3. Relational Database Management System                                                    9

4
 , the transaction executes the operation virtually in the database at first and checks if
all the operations is going well. If yes, the operations will be committed; if not, it allows
programmer to roll back. Operations of a transaction must be performed successfully
all together or none. The transaction in RDBMS must obey the ACID rules.

    • Atomicity: identifies that the transaction is atomic or so called “all or nothing”,
      all the statements within a transaction is either fully completed or none of them
      is done. That means if one part or some parts of a transaction fails, the entire
      transaction is recognized as failed. In this case the database state is returned
      to the state it was in before the transaction was started and left the system
      totally unchanged. An atomic system must guarantee atomicity in all kinds of
      unexpected and urgent situations, such as power failures, errors, and unknown
      crashes. An example of an atomic transaction is dealing. The money is removed
      from the player’s account and then the item goes into the player’s inventory. If
      the system fails after removing the money from the player’s account, then the
      transaction processing system will give the money back to player. This is so
      called “a rollback”.
    • Consistency: means the data in database can only move from one valid state
      to another. Any data which be persisted into the database must in a valid status
      according to all defined rules. It is impossible to provide the readers with different
      values what make no sense together. Once a error happens in a transaction, the
      system will in a invalid state, then any of the changes made by this transaction
      must be rolled back.
    • Isolation: means that transactions executing concurrently will not affect each
      other. This property ensures that the concurrent transactions results in the same
      system state as they were executed one after the other. If there is one transaction
      runs in isolation, it seems to be the only action that the system is executing; if
      there are more than one transactions that are all performing the same function
      at the same time, transaction isolation will ensure that one transaction will not
      aware of the others. If transactions were not running in isolation, they could
      access data in an invalid state from the database.
    • Durability: means that once a successful transaction result is persisted in a
      database, it will be permanent and never get lost even in case of power loss,
      crashes, or errors. To defend against unexpected cases, transactions must be
      recorded in a hard disk instead of a volatile memory. The concept of durability
      allows the developer to know all the transactions have been permanently stored
      in database, regardless of what happens to the system later on.

2.3.4         Schema
In RDBMS, data is organized in tables. A Table consists of a set of tuples and represents
a relation. Each column in the table called an attribute that describes a certain domain
    4
        http://research.microsoft.com/en-us/um/people/gray/papers/theTransactionConcept.pdf
10                                                                                         2. Related Fundations

and the attribute(also called fields) is usually named. One or a group of columns can
be specified as a table’s primary key. The primary key are used to uniquely identify a
row. To design a relational schema, the Entity-Relation (E-R) Model is often used to
mapping the real world into relational model. The ER-Model represents the relation
between entities. In order to reduce data redundancy the 3-Normal Forms (NF)5 are
always considered during the database design. 3-NF is introduced by the inventor of
the relational model, Edgar F. Codd, which is used to organize the fields and tables
in a relational database in order to minimize redundancy and dependency. The core
idea of 3-NF is to divide a large tables into smaller tables according the relationship
between them. Figure 2.3 shows a simple example of E-R model and the corresponding
relational table.

                                       Players
                         ER-Model

                                                                  Races
                                     PK:PlayerId
                                     FK:RacdId                  PK:RaceId
                                     UserName                   RaceName

                                                   Primary Key

                          PlayerId       RaceId      UserName                  RaceId   RaceName
                                                                    Relation

                          PlayerA          1            A                        1       human

                           PlayerB         2            B                        2       Worgen

                           PlayerC         3            C                        3      Night elf

                                                            Attributes

                    Figure 2.3: A simple E-R model and relational data model

2.4           Limitations of RDBMS in MMORPG
As we discussed above, one single node Database System is impossible to satisfy the
requirements of data accessing in a MMORPG with highly concurrent players. The
qualified data persistent System in an MMORPG must ensure data consistency, effi-
ciency and scalability[ZKD08]. Unfortunately, the existing RDBMS are hard to satisfy
all the requirements simultaneously[WKG+ 07]. Assuming we have an MMORPG run-
ning on top of RDBMS, if the number of players in this Game goes up, the database
will encounter a scalability problem. Almost all relational database are support join
operations, which reduce the system performance. The transaction guarantees the re-
lational database consistency by locking some portion of the database, so this portion
     5
         3 Normal Forms: http://de.wikipedia.org/wiki/Normalisierung (Datenbank)
2.4. Limitations of RDBMS in MMORPG                                                                  11

of data is not available to other clients. This can induce the game server to very heavy
workloads because locking means the clients have to wait for their turn in queue to ac-
cess data. Typically, we can solve those problems by the following ways: firstly, we can
add more memories, more faster processors and disks, and moving the game to more
powerful computer. This way called vertical scaling6 . Vertical scaling has reasonably
well for data but has its limitations: expensive and always need the next generation
larger system. If we already have a most powerful machine but the problems still
arise, the solution is similar: since one machine is heavily loaded, we can simply add
new machines into the database cluster. We group data by function and spread them
across databases. We also need to split data within functional areas across multiple
databases. If we do so, we have to face the data replication and consistency prob-
lems in the multi-node cluster, which will never arise with single machine. Fortunately
there are lots of researches on how to manage transaction and maintain ACID rules
in a distributed database scenario[ÖV96]. In order to solve the conflicts in distributed
database, a locking based concurrency control are widely used. A simple example is the
two-phase locking rule, which make sure that no transaction should request lock after
it releases one of its locks, alternatively, a transaction should keep all locks until it has
no request for another lock[TèV11]. Other algorithms are a little bit different, but the
basic idea is also locking some data. So we want to go ahead optimize our system and
try to improve indexes and queries. The Game is built and we understand the primary
query paths. To avoid join operations in big tables, we can also denormalizes some
data to make it more like the queries that access it. This way is somehow against the
Codd’s 12 commandments for relational data[Cod85]. But it bring us more performance
by generating some data redundancy. In short, the traditional database has following
limitations when it applied to MMORPG.

   1. Hard to scale-out: The RDBMS, due to its strictly ACID constraints, is hard to
      scale-out. As mentioned above, the MMORPG need an elastic database.

   2. Performance: Relational database is based on relational algebra. It models and
      stores the data to relational model, reads data from RDBMS, and then mod-
      els data back to their original model. This consumes considerable computing
      resources and hence the reading and writing are not efficient.

   3. Data Complexity: Data in an RDBMS are stored in multiple tables, which link to
      each other through foreign keys. In MMORPG scenario, the state data are even
      more complex, so in this highly concurrent data accessing situation, RDBMS is
      not able to handle the operation efficiently.

   4. Cost: In order to set up a relational database cluster, the game publisher should
      purchase.an expensive license from the database vendor, which normally increase
      the cost dramatically.
   6
    Vertical scaling, also described as scale up, typically refers to adding more processors and storage
to an Symmetric Multiple Processing to extend processing capability. Generally, this form of scaling
employs only one instance of the operating system(IBM).
12                                                               2. Related Fundations

     5. Structured Limits: RDMBS has a fixed schema, so that the structure of a table
        must be pre-defined. However, a MMORPG’s life circle is always bug-fixed. If
        some new features are added into MMORPG, alteration of the existing table
        structure.

In summary, RDBMS is good at solving certain problems, but it cannot freely scale
out due to its constraints. If we want to scale a relational database, we should avoid
join operation, which means denormalizing the data to achieve a better performance,
In order to do that, we have to maintain multiple replications of data, which causes the
development of application and database harder than before. For this reason, a new
DBMS is required to address these problems. In the next chapter, we will discuss the
Cloud database management in MMORPG scenario.
3. Cloud Database Management

3.1        Cloud Computing
Cloud computing is a an increasing hot technology today. However, there are lots of
definitions of Cloud computing available[VRMCL08][BBD+ 08][GK08]. Most of them
are either too general or too specific. From technique, commercial or users’ perspective,
here is a rather fitting one from the United States National Institute of Standards and
Technology (NIST)1 .

        “Cloud computing is a model for enabling convenient, on-demand network
        access to a shared pool of configure computing resources (e.g. networks,
        servers, storage, applications, and services) that can be rapidly provisioned
        and released with minimal management effort or service provider interac-
        tion”.

Cloud computing is not a new technology rather than a new way to make use of existing
technology and devices. It is a new approach to shared data and computing resources
over a scalable network[Aba09]. Cloud computing system connects the huge computing
pool together to provide a variety of IT services. Its core idea is unifying management,
scheduling the computing resource in network and providing the end user a on-demand
service[AFG+ 10]. It provides companies the ability to quickly react to the increasing
demand on computing power. From the users’ perspective, the resource on the Cloud
is unlimited scalable ,instant acquirable and pay as you go.
The emergence of Cloud computing makes it possible that the computing resources(physical
resources,infrastructure,middle-ware platforms and applications) can be provided and
consumed as other kind of products just like gas, water and electricity. The enterprise
  1
      NIST http://www.nist.gov/itl/cloud
14                                                          3. Cloud Database Management

and users no longer have to purchase expensive hardware and maintaining infrastruc-
tures but could rent these computing resource via internet. The Cloud computing
technology will bring the computer industry a essential and revolutionary change.

3.2           Cloud Computing Service Model
The service models of Cloud computing can be typically categorized to three different
levels as Figure 3.1 shows. The lowest level is called Infrastructure as a Service (IaaS).
Platform as a Service (PaaS) is built on top of IaaS. The Software as a Service (SaaS)
is built on PaaS and IaaS. Every layer has different aimed user groups. The essential
layer, aims to be the network architects, provides more flexible resources but also needs
more efforts for management. The users of PaaS are normally application developers
but the top layer SaaS usually provides applications for common users. So generally
the top layer has the most population of users.

                                       SaaS              End
                                                         End Users
                                                             Users

                                       PaaS        Application
                                                   Application
                                                   Developers
                                                   Developers

                                       IaaS
                                             Network
                                             Network
                                             Archtects
                                             Archtects

                     Figure 3.1: Cloud service model adapted from[Bok10]

     • Infrastructure as a Service - is the lowest layer and offers the most basic ser-
       vices. This layer offers virtualized computer hardware resources such as databases,
       CPU power and memories. This layer also allows user to install their Operating
       system and deploy their software. By doing so, the users are free to create their
       own environment and gain more flexibility. However, they are also responsible
       for updating and patching their operations systems in this level[Var08a]. Amazon
       Web Server2 is a popular IaaS example.

     • Platform as a Service - within this layer, the providers offer a computing
       platform which includes operating systems and programming language execution
     2
         AWS http://aws.amazon.com
3.3. Cloud Database                                                                  15

      environments. The user can develop their applications by using computing plat-
      form and tools offered by their providers. In this situation, programmers don’t
      need to worry about maintaining the infrastructure[VVE09] and can better fo-
      cus on the business logic. Some popular examples of this layer are Google App
      Engine3 and Microsoft Azure4 .

   • Software as a Service - The providers of this layer offer the users a collection of
     software and application programs. The users can simply use a web browser to get
     access to the software that the others have developed already without worrying
     about the back-ups and maintenance of the software. SaaS is also known as
     “software on demand” or “software as needed”. In this level, the users can not
     get access to the underlying infrastructure[VVE09] so they have little flexibility.
     Google mail and Google office5 are popular examples for this layer.

The conflicts between efficiency, flexibility and cost of the above mentioned three dif-
ferent service models can be seen from Figure 3.2. The efficiency is increasing when the
user moving from standalone servers to a SaaS service model and the cost can decrease
but the flexibility is decreased because they cannot control the hardware.

                                     More Efficiency

            Standalone
                                 IaaS              PaaS             SaaS
              Servers

                                  More flexible and cost

                        Figure 3.2: Efficiency vs. control[Spr12]

3.3     Cloud Database
Cloud database, working as a normal database for users, generally deploys a database
software on top of a Cloud computing infrastructure. Cloud database may be di-
rectly accessed via a browser or Application Programming Interface (API) provider
  3
    Google App Engine https://cloud.google.com
  4
    Microsoft Azure http://www.windowsazure.com
  5
    Google http://www.google.com
16                                                      3. Cloud Database Management

by Cloud database vendor. It is primarily a PaaS in the Cloud service model as
we mentioned above[MCO10]. Many big database vendors are commercializing Cloud
database into Cloud database products. such as Amazon SimpleDB[Var08b], Google
bigtable[CDG+ 08] and so on.

Attributes of a Cloud Database

Cloud database is a new data management concept with the development of Cloud
computing. But it is not simply taking a traditional RDBMS and running it in a
Cloud environment. Cloud database is capable to handle large-scale of data volume
and it provides availability and high scalability. We could say that, the Cloud database
represents the future of database industry. A Cloud database has typically the following
attributes.

     • Elasticity: using a Cloud database, the user can add and remove nodes any time.
       The Cloud database could then balance workloads automatically. The MMORPG
       can especially benefit from this “load balancing” feature, which enables the game
       vendor to add or remove their storage resources in response to the number of
       players.

     • Scalability: theoretically, the Cloud database has the unlimited scalability and
       can always satisfy the increasing demand on data accessing. For this reason, a
       Cloud based MMORPG can simply hold large amounts of players’ data and heavy
       accessing pressure by simply adding new nodes in the cluster.

     • High availability: a Cloud database has normally high availability because the
       nodes in the cluster are distributed in different physical locations and the data
       are duplicated so that every node holds only a subset of the whole data. This
       ensures the whole database always available even in case of single node failure or
       data unavoidable emergency.

     • Low-cost: Cloud database applies typically a multi-tenancy. That means the
       user can rent the database from a database provider, so they could save the cost
       for maintaining infrastructure and human resources. A big Cloud database cluster
       can provide services for many users, so the using-cost will also be reduced. When
       a user rent a Cloud database, the cost for purchase of hardware and software can
       be avoided but the payment for consumed resource is necessary.

There are also some drawbacks. For example, all the users share the physical resources
in a Cloud infrastructure, the data security and privacy cannot be guaranteed[MT05].
Moreover, without maintaining the infrastructure means users cannot fix some unex-
pected problems in time.
3.3. Cloud Database                                                                   17

3.3.1    SQL Database vs. NoSQL Database
In this section, we will make a simple comparison between SQL database and NoSQL
database. There are many differences between SQL and NoSQL database from different
aspects. In a RDBMS stored structured table, the data in the table can be queried by
using standard SQL language, which NoSQL don’t have. NoSQL, is a summary term
describes a set of non-relational databases, may scale out horizontally to a very large
size but not guarantees ACID properties. NoSQL stands for “not only SQL”. So NoSQL
is not about to do not using SQL any more, but not only limited to SQL. NoSQL is
not a terminator of SQL, but an alternative or enrichment to the SQL World[Sto10].
Generally, SQL is not in minority compare to NoSQL, It is still the first choice for
most database problems. SQL database exists for a very long time and almost everyone
who works related with programming is familiar with relational database. In addition,
with the development of many extensions of SQL systems, working with SQL system
becomes more and more easier. In the SQL database field, it has a big amount of
mature products and a large number of tutorial,support, etc. available. That is why
SQL database still remains the first choice position for all database problems. We will
now give a short comparison from aspects of scalability, performance and consistency
between SQL database and NoSQL database.

   • Scalability:
     The historical NoSQL database models are aimed to fix some disadvantages
     of RDBMS. Scalability is one of the most important characters for distributed
     database and it is also the main reason why NoSQL comes into the world[Sto10].
     Especially the horizontal scalability, the horizontal scaling of a SQL database
     requires more administrative overhead after it scale out to a certain size, the per-
     formance of the scaled SQL database will decrease significantly. While on the
     other hand, NoSQL don’t need a fixed table structure that makes NoSQL partic-
     ularly suitable for scaling out. The architecture of many NoSQL databases are
     also running on inexpensive computers for data storage. Normally, the NoSQL
     system can reach a very high scalability by simple adding new nodes into the
     cluster, even during the runtime. NoSQL systems can provide well and stable
     scalability constantly despite of the high volume of data. So the NoSQL database
     is superior compare to SQL database with the aspect of scalability.

   • Performance:
     With similar reasons as in the scaling, the NoSQL databases has flexible schema,
     no join and n lock, that makes NoSQL databases are more efficient than the SQL
     databases. One of the reasons why NoSQL exists is that SQL systems has limited
     performance when it extends to a certain scale. The performance of NoSQL
     is much more better than SQL nevertheless of writing or reading. When the
     data volume increase, the contribution of a flexible schema and scalability to the
     performance of the database is more obvious [TB11].
18                                                        3. Cloud Database Management

     • Consistency:
         Some NoSQL system support the idea eventual consistency instead of fully consis-
         tency in RDBMS[Vog09]. This property does not guarantee that the user’s read
         always returns the latest value after the update. In order to return the up-to-date
         value to all users, a number of conditions must be met. Some middle-ware appli-
         ances (such as CloudTPS for Google’s BigTable and Amazons SimpleDB[ZPC11])
         also exists, which are adding full ACID features to some NoSQL systems. In this
         type of database, it can determine which operation is governed by the ACID
         and which is by ”Eventually consistency”. But even so the NoSQL in terms of
         consistency is still not as strong as SQL, because SQL database has an absolute
         consistency which means it doesn’t allow any inconsistent state exists. When
         choosing the type of database, users have to decide which is more important for
         them, a good consistency or good performance.

3.3.2        Data Model
In contrast to the standard SQL databases, there are a few types of supporting data
model of the NoSQL databases. So there are several subtypes of NoSQL as following[TB11].

     • Document-style: a document-style stores data recorder consist of a set of key-
       value pairs with a payload. Simple example are MongoDB6 or OrientDB7 .
     • Key-value stores: which stores key-payloads pairs. This style database is usu-
       ally implemented by distributed hash tables. It is generally called key-value stores
       for simplicity. Simple key-value stores example are Apache Hadoop8 , Riak9 or
       Amazon’s Dynamo10 .
     • Wide column store: this kind of database stores data tables as sections of
       columns rather than as rows. Some examples fall into this category are HBase11 ,Cassandra12
       and Amazon SimpleDB13 .

There are probably two reasons for users to chose a NoSQL database as storage system:
performance and flexibility. From the performance point of view, managing RDBMS’
distributed data across several sites is very complex and the RDBMS multi-nodes struc-
ture is hard to maintain. Storing different types of data into a RDBMS has low flexibil-
ity because all the data stored in a RDBMS must be normalized to conform to a rigid
relational schema. The user needs something with more flexible data structure.
     6
    MongoDB: http://www.mongodb.org/
     7
    OrientDB: http://www.orientdb.org/
  8
    Apache Hadoop: http://hadoop.apache.org/
  9
    Riak: http://basho.com/riak/
 10
    Dynamo: http://aws.amazon.com/de/dynamodb/
 11
    HBase: http://hbase.apache.org/
 12
    Cassandra: http://cassandra.apache.org/
 13
    SimpleDB: http://aws.amazon.com/cn/simpledb/
3.3. Cloud Database                                                                     19

NoSQL database should be considered in the situations when a SQL database has
reached its limitation or fulfills the resource-consuming task that induces the SQL sys-
tem need to be distributed. NoSQL database with better horizontal scalability, can
manage much larger amounts of data without hitting limitation of storage. For com-
plex storage requirements, such as storing of unstructured data, video, audio or image
files in the same area, some NoSQL databases support tree-shaped structures of the
meta-data without a firmly defined data schema. Although there are a verity of files
should be stored, the NoSQL databases can store them well and easily, because the
data no longer have to be forced into tables and relations.

3.3.3       ACID vs. BASE
The ACID properties are the essentials rules for RDBMS, which guarantees RDBMS
transaction works reliable. But they are also the obstacles of the distributed database
system. Distributed database system cannot guarantee the full ACID properties, but
support BASE instead of ACID[Pri08]. BASE is derived from the CAP theorem which
is proposed by professor Eric Brewer in 2000 in University of California 14 . In 2002, Seth
Gilbert and Nancy Lynch from MIT has proofed the correctness of this theorem[GL02].
The CAP theorem is now the basic foundation while describing a distributed database.
The CAP explains the tradeoffs between the consistency, availability and partition

                                                       Partition
                                Consistency     CP
                                                      Tolerance

                                           CA        AP

                                           Availability

   Figure 3.3: Different properties in NoSQL according to Brewer’s theorem[GL02]

tolerance, and explores that a distributed system cannot have all of them simultaneously
but only two of them can be selected at the same time[Bre00]. Figure 3.3 shows the
CAP theorem, from which we can see that, the three circles has no common area.

   • Consistency: means the data on all nodes of the distributed system is consistent.
     If one client has written something to an arbitrary node successfully, the changes
 14
      http://www.julianbrowne.com/article/viewer/brewers-cap-theorem
20                                                                   3. Cloud Database Management

       will simultaneously propagate to all the other nodes. The system is thus able to
       return readers the same result at the same time.

     • Availability: guarantees that every request can receive a response from the
       server, even the request is failed. In practice, it is more meaningful to bounded
       the response in an appropriate time.

     • Partition Tolerance: means the system will continue working even in case of
       messages lost between nodes or parts of the system is failed.

                                                    A
                                                               Dyname,Cassandra
                                                              Voldemort,CouchDB
                     Relational Database-                           Riak
                        MySQL,SQL
                       Server,Postgres

                                              Only two of them
                                               can be selected

                                            Neo4J,Google Bigtable,

                      C                     MongoDB,Hbase,Redis
                                                                                  P
Figure 3.4: The popular databases products in different group of CAP adapted from
[Hew10]

According to CAP theorem, we have the following choice when we design a system. Fig-
ure 3.4 shows the corresponding database products in different grouped classifications.
All systems can only support at most two of these properties. Those three groups are
three distinct combinations of CAP and each with different characteristics. The hor-
izontal scaling strategy of a Cloud database is based on data partitioning, therefore,
Cloud database is forced to choose one between consistency and availability[Pri08].

     • Group CA: this group of system is primarily provides a consistent and available
       service. The relational database falls usually into this category, because RDBMS
       will first guarantee all nodes availability and consistency. The RDBMS normally
       run on a high available network and servers, thus it’s not so necessary for them
       to deal with partition.
3.3. Cloud Database                                                                     21

   • Group CP: distributed systems with this combination usually have strongly con-
     sistency even in the presence of partition. However, the nodes in the partition
     may not be able to response to requests when they are waiting for the latest up-
     dating data. In this case, the system becomes unreachable. Hence, the availability
     cannot always be guaranteed in this group. Some example products are Google
     Bigtable, MongoDB, Habse etc.

   • Group AP: has very high availability and partition tolerance. However, it can-
     not be always consistent. Some distributed systems, such as DNS(Domain Name
     System) and Cloud computing which need high availably, will take this combina-
     tion. Cloud platforms rely on a horizontally scaled cluster and its workloads are
     also distributed in the whole system. Therefore, a Cloud application must have
     the tolerance to the failures. The example systems in this group are Cassandra,
     CouchDB, Riak etc.

As we introduced before, ACID in RDBMS make sure that the database has a consistent
state after every transactions. For a distributed NoSQL database, it is enough to
eventually be in a consistent state[Bar10]. So the BASE consistency model is widely
used in NoSQL systems. BASE is not like ACID that forces consistency at the end of
every transaction. BASE is optimistic and accept a eventually consistency which mean
all nodes will reach to a consistent state after a reasonable time . It sounds a little bit
hard to deal with but in reality it is quite feasible and leads a higher scalability that
cannot be achieved by ACID.

   • Basic Availability: refers to the perceived availability of the data. It ensures that
     the whole system will stay operational in case of single node fails. This single
     failure will only impact on the users whose data is on the failed machine. A
     simple example about MMORPG is: the MMORPG players’ data are partitioned
     across five database servers. If one of them is not reachable, only 20 percent of the
     users whose data is on that particular host cannot get their data and the other
     players will not be aware of this failer. So it remains the whole system higher
     perceived availability.

   • Soft-state: indicates that the system will change state without users’ intervention.
     The state of the data may be changed without inputting over time due to the
     eventual consistency model. A simple example can illustrate this point. In an
     MMORPG, the players can transfer their money or objects to other players. The
     operation will be decoupled into two, one is taking the asset from one player and
     another is giving the asset to the other player. There is a time lag between sending
     and receiving, in which the asset has left one player and not immediately received
     by another. However, from the players’ perspective, this lag is invisible or certainly
     tolerable. We consider the system’s behaviour is consistent and acceptable to the
     players.[Pri08]
You can also read