Towards Cloud Data Management for Online Games - A Prototype Platform
←
→
Page content transcription
If your browser does not render page correctly, please read the page content below
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
Wang, Shuo: Towards Cloud Data Management for Online Games - A Prototype Platform Master Thesis, University of Magdeburg, 2013.
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