trying to work this merge fail out

This commit is contained in:
Jeena Paradies 2011-05-06 15:50:32 +02:00
commit b445992f11
2 changed files with 82 additions and 31 deletions

View file

@ -270,3 +270,32 @@
YEAR = {2011},
URL = "http://dev.w3.org/html5/webstorage/"
}
@MISC{bson:website,
AUTHOR = "BSON",
TITLE = "BSON - Binary JSON",
MONTH = "May",
YEAR = {2011},
URL = "http://bsonspec.org"
}
@techreport{Slee2007,
author = {Aditya Agarwal and Mark Slee and Marc Kwiatkowski},
institution = {Facebook},
interhash = {105e59dd8576a9d92bb7db1ecc7e4980},
intrahash = {2593c1a9666cfc633d674051d887c8e3},
title = {Thrift: Scalable Cross-Language Services Implementation},
url = {http://incubator.apache.org/thrift/static/thrift-20070401.pdf},
year = 2007,
timestamp = {2009-11-02T17:24:36.000+0100},
keywords = {Thrift datamodeling language specification},
added-at = {2009-11-02T17:24:36.000+0100},
biburl = {http://www.bibsonomy.org/bibtex/22593c1a9666cfc633d674051d887c8e3/voj},
month = {April},
abstract = {Thrift is a software library and set of code-generation tools developed at Facebook to expedite development and implementation of efficient and scalable backend services. Its primary goal is to enable efficient and reliable communication across programming languages by abstracting the portions of each language that tend to require the most customization into a common library that is implemented in each language. Specifically, Thrift allows developers to define datatypes and service interfaces in a single language-neutral file and generate all the necessary code to build RPC clients and servers.
This paper details the motivations and design choices we made in Thrift, as well as some of the more interesting implementation details. It is not intended to be taken as research, but rather it is an exposition on what we did and why.
}
}

View file

@ -1407,7 +1407,10 @@ The first prototype of the GGS consisted of simple modules, however, due
Once the basic structure of the GGS had been established, the first prototype
was removed, remaining was the structure of the modules and the internal
flow of the application.
This could be seen as an interative workflow, with the first prototype
\end_layout
\begin_layout Standard
Design This could be seen as an interative workflow, with the first prototype
being the first iteration.
The second iteration later became the final result of the GGS.
\end_layout
@ -6680,7 +6683,7 @@ name "fig:redundancy"
\end_inset
To the left normal execution is pictured; the server state is backed up.
To the left; the exceptional excution, where the state is retrieved from
To the right; the exceptional excution, where the state is retrieved from
the backup to repopulate the server.
\end_layout
@ -7233,7 +7236,7 @@ textbf{SpiderMonkey}}{JavaScript engine developed by Mozilla}
\end_layout
\begin_layout Subsection
\begin_layout Section
UUID
\end_layout
@ -7257,26 +7260,62 @@ This problem is not new, and a common solution is to use a Universally Unique
e generator.
\end_layout
\begin_layout Subsection
\begin_layout Section
Protocol design
\end_layout
\begin_layout Standard
\begin_inset Note Note
status open
\begin_layout Plain Layout
Discuss how the early GGS protocol were going to use both UDP and binary
plists to be as fast as possible.
Then discuss how complex these solutions were going to be to implement
in the prototype.
Mention that the modular structure of the GGS allows these features to
be implemented later on, but are not currently implemented.
Initially the GGS protocol was designed to use the UDP protocol for transport.
Due to the lack of error checking in the UDP protocol, the UDP protocol
is faster than the TCP protocol, this was a main reason to use UDP.
The GGS does however need error checking to be as reliable as possible,
therefore an error checking layer would have to be placed on top of UDP.
\end_layout
\begin_layout Standard
The development of an error checking layer was weighed against the implementatio
n of TCP instead of UDP, thus losing some speed.
Even though speed was lost, TCP was chosen due to the relative ease of
implementation compared to UDP.
Due to the modularity of the GGS, a UDP extension is possible by replacing
the network parts of the GGS.
\end_layout
\begin_layout Standard
Furthermore, in a move to increase the speed of the GGS prototcol the binary
BSON protocol
\begin_inset CommandInset citation
LatexCommand citet
key "bson:website"
\end_inset
was initially considered.
BSON is a protocol which can be used for vert fast traversal of data.
The BSON protocol is however rather difficult to read in its plain format,
and no implementation has been bade for the GGS.
\end_layout
\begin_layout Standard
The Apache Thrift
\begin_inset CommandInset citation
LatexCommand citep
key "Slee2007"
\end_inset
was also an alternative.
Using Thrift would mean the GGS would feature a standard protocol for network
communication.
Before finding out about Thrift, an implementation of the GGS protocol
had already been made, moving to Thrift would mean too much work.
\end_layout
\begin_layout Standard
The use of Thrift, BSON, or other protocols can be supported quite easily
by develpping protocol modules for each protocol.
No protocol modules for these protocols have however been developed during
the writing of this thesis
\end_layout
\begin_layout Section
@ -7383,23 +7422,6 @@ Coordinator
club up in the exact state it was prior to the fire.
\end_layout
\begin_layout Section
Usability
\end_layout
\begin_layout Standard
\begin_inset Note Note
status open
\begin_layout Plain Layout
Discuss how the GGS can be difficult to use for people not versed with Erlang
\end_layout
\end_inset
\end_layout
\begin_layout Chapter
Results and discussion
\begin_inset CommandInset label