Added references to Thrift and BSON. Added text in problems about protocols
This commit is contained in:
parent
d21d6479dc
commit
e086bfc258
2 changed files with 75 additions and 27 deletions
|
@ -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.
|
||||
}
|
||||
}
|
||||
|
|
73
report.lyx
73
report.lyx
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue