Added web storage reference, mnesia reference and added text to database module

This commit is contained in:
Jonatan Pålsson 2011-05-03 22:19:33 +02:00
parent e63263eccc
commit 5f187abbf6
2 changed files with 97 additions and 10 deletions

View file

@ -242,3 +242,31 @@
isbn = {0201702452},
publisher = {Pearson Education},
}
@inproceedings{667766,
address = {London, UK},
author = {Haakan Mattsson and Hans Nilsson and Claes Wikstrom},
booktitle = {PADL '99: Proceedings of the First International Workshop on Practical Aspects of Declarative Languages},
interhash = {3b61289b4cf321234fcef209681d70e6},
intrahash = {f9f1e5b94bbcd945aa03459ad1698f61},
pages = {152--163},
publisher = {Springer-Verlag},
title = {Mnesia - A Distributed Robust DBMS for Telecommunications Applications},
url = {http://portal.acm.org/citation.cfm?id=645769.667766},
year = 1998,
timestamp = {2007-12-06T05:02:39.000+0100},
keywords = {database distributed erlang mnesia},
added-at = {2007-12-06T05:02:39.000+0100},
description = {Mnesia - A Distributed Robust DBMS for Telecommunications Applications},
isbn = {3-540-65527-1},
biburl = {http://www.bibsonomy.org/bibtex/2f9f1e5b94bbcd945aa03459ad1698f61/jhammerb}
}
@MISC{webstorage:website,
AUTHOR = "Ian Hickson",
TITLE = "Web Storage -- Editor's Draft 27 April 2011",
MONTH = "May",
YEAR = {2011},
URL = "http://dev.w3.org/html5/webstorage/"
}

View file

@ -4747,10 +4747,53 @@ name "sub:The-database-module"
\end_layout
\begin_layout Standard
Game data from all games on the GGS are stored here.
The database module is using a database management system called Mnesia.
Game data will not be lost when a game is stopped or has went down for
unknown reasons.
Game data from all games on the GGS are stored in the database backend of
the database module.
\end_layout
\begin_layout Standard
In the GGS prototype the database module is using a database management
system called Mnesia.
Mnesia ships with the standard Erlang distribution and is a key-value store
type database.
Mnesia is designed to handle the stress of telecoms systems, and has some
features specifically tailored for telecoms which are not commonly found
in other databases.
Key features of the Mnesia database are:
\end_layout
\begin_layout Itemize
Fast key/value lookups
\end_layout
\begin_layout Itemize
Distribution of the database system
\end_layout
\begin_layout Itemize
Fault tolerance
\end_layout
\begin_layout Standard
\begin_inset CommandInset citation
LatexCommand citet
key "667766"
\end_inset
\end_layout
\begin_layout Standard
The features of Mnesia originally intended for telecoms prove very useful
for the purposes of the GGS as well.
The fault tolerance and speed of Mnesia are very valueable tools, the fast
key/value lookups permit many lookups per second to the database.
\end_layout
\begin_layout Standard
Game data will not be lost when a game is stopped or has gone down for unknown
reasons.
This makes it possible to continue a game just before the failure without
having to start the game from the beginning.
@ -4770,8 +4813,13 @@ nomenclature{Mnesia}{Database server used in the GGS}
\end_layout
\begin_layout Standard
Each game is uniquely identified by a table token and it's data is stored
within two different namespaces.
The GGS stores the game state in the distributed Mnesia database, from which
the state can be restored in the event of a crash.
\end_layout
\begin_layout Standard
Each game is uniquely identified by a table token and the data of each game
is stored within two different namespaces.
The namespaces are named World and Localstorage.
The World is used contain all game data related to the game state.
This sort of game data may change during the runtime of the game.
@ -4786,10 +4834,21 @@ Each game is uniquely identified by a table token and it's data is stored
\end_layout
\begin_layout Standard
The interface of the database module has been inspired by the W3C Web Storage
interface.
Only difference is the usage of the game token and namespace within the
database module of GGS.
The interface of the database module is an implementation of the upcoming
W3C Web Storage specification.
Web Storage is intended for use in web browsers, providing a persistant
storage on the local machine for web applications.
The storage can be used to communicate in between browser windows (which
is difficult when using cookies), and to store larger chunks of data
\begin_inset CommandInset citation
LatexCommand citet
key "webstorage:website"
\end_inset
.
Usage of the web storage standard in the GGS provides a well documented
interface to the database backend.
\end_layout
\begin_layout Section