Added references to Thrift and BSON. Added text in problems about protocols

This commit is contained in:
Jonatan Pålsson 2011-05-06 15:36:08 +02:00
parent d21d6479dc
commit e086bfc258
2 changed files with 75 additions and 27 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

@ -6651,21 +6651,57 @@ 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
@ -6772,23 +6808,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