Triton-commits
Threads by month
- ----- 2026 -----
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
June 2013
- 1 participants
- 23 discussions
branch, ticket-227, updated. 3950b983465668b3c74a23e14403fd89d56edde6
by noreply@mcs.anl.gov 27 Jun '13
by noreply@mcs.anl.gov 27 Jun '13
27 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, ticket-227 has been updated
via 3950b983465668b3c74a23e14403fd89d56edde6 (commit)
from a36d1ac8b63efc715b6c3e71f839654bdaa44b03 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 3950b983465668b3c74a23e14403fd89d56edde6
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Thu Jun 27 10:52:59 2013 -0400
use signal resource to gracefully stop mercury svr
-----------------------------------------------------------------------
Summary of changes:
code/src/remote/mercury-svr.ae | 24 +++++++++++-------------
1 files changed, 11 insertions(+), 13 deletions(-)
Diff of changes:
diff --git a/code/src/remote/mercury-svr.ae b/code/src/remote/mercury-svr.ae
index 220b07c..89e78d0 100644
--- a/code/src/remote/mercury-svr.ae
+++ b/code/src/remote/mercury-svr.ae
@@ -2,15 +2,19 @@
#include <errno.h>
#include <assert.h>
#include <stdio.h>
+#include <signal.h>
#include <aesop/aesop.h>
#include "src/zeroconf/zeroconf.h"
#include "src/remote/mercury-engine.hae"
-
-static void triton_perror(const char *s, triton_ret_t ret);
+#include "src/common/resources/signal/signal.hae"
static __blocking int run_server(void)
{
+ triton_signal_track(SIGINT);
+
+ triton_signal_wait(SIGINT);
+
return 0;
}
@@ -19,12 +23,11 @@ __blocking int aesop_main(int argc, char **argv)
triton_ret_t ret;
int test_ret;
+ ret = triton_signal_init();
+ triton_error_assert(ret);
+
ret = triton_mercury_svr_init();
- if(ret != TRITON_SUCCESS)
- {
- triton_perror("triton_mercury_svr_init", ret);
- return(-1);
- }
+ triton_error_assert(ret);
test_ret = run_server();
if(test_ret == 0)
@@ -33,17 +36,12 @@ __blocking int aesop_main(int argc, char **argv)
printf("Test failure.\n");
triton_mercury_svr_finalize();
+ triton_signal_finalize();
return test_ret;
}
aesop_main_set(aesop_main);
-static void triton_perror(const char *s, triton_ret_t ret)
-{
- /* TODO: fix this */
- fprintf(stderr, "%s: I have no clue how to print this error.\n", s);
-}
-
/*
* Local variables:
* c-indent-level: 4
hooks/post-receive
--
1
0
branch, ticket-227, updated. a36d1ac8b63efc715b6c3e71f839654bdaa44b03
by noreply@mcs.anl.gov 26 Jun '13
by noreply@mcs.anl.gov 26 Jun '13
26 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, ticket-227 has been updated
via a36d1ac8b63efc715b6c3e71f839654bdaa44b03 (commit)
via 11aa5f440a2b03b2fecea3d7888a069abd99836a (commit)
from 2de95fd20ecffd7f9385ec9eacf308c71ec5dd81 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a36d1ac8b63efc715b6c3e71f839654bdaa44b03
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Wed Jun 26 22:07:16 2013 -0400
init and finalize mercury svr engine
commit 11aa5f440a2b03b2fecea3d7888a069abd99836a
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Wed Jun 26 22:06:05 2013 -0400
hard code BMI paths temporarily
-----------------------------------------------------------------------
Summary of changes:
code/configure.ac | 1 +
code/src/remote/mercury-svr.ae | 10 ++++++++++
2 files changed, 11 insertions(+), 0 deletions(-)
Diff of changes:
diff --git a/code/configure.ac b/code/configure.ac
index 6504eb4..a798411 100644
--- a/code/configure.ac
+++ b/code/configure.ac
@@ -69,6 +69,7 @@ AC_ARG_WITH(mercury,
])
AECC=${withval}/bin/aecc
MERCURY_LIBS=`PKG_CONFIG_PATH=${withval}/lib/pkgconfig pkg-config mercury --libs`
+MERCURY_LIBS="-L/home/pcarns/working/bmi/install/lib $MERCURY_LIBS -lbmi"
MERCURY_CFLAGS=`PKG_CONFIG_PATH=${withval}/lib/pkgconfig pkg-config mercury --cflags`
AC_SUBST(USE_MERCURY)
diff --git a/code/src/remote/mercury-svr.ae b/code/src/remote/mercury-svr.ae
index d981f88..220b07c 100644
--- a/code/src/remote/mercury-svr.ae
+++ b/code/src/remote/mercury-svr.ae
@@ -5,6 +5,7 @@
#include <aesop/aesop.h>
#include "src/zeroconf/zeroconf.h"
+#include "src/remote/mercury-engine.hae"
static void triton_perror(const char *s, triton_ret_t ret);
@@ -18,12 +19,21 @@ __blocking int aesop_main(int argc, char **argv)
triton_ret_t ret;
int test_ret;
+ ret = triton_mercury_svr_init();
+ if(ret != TRITON_SUCCESS)
+ {
+ triton_perror("triton_mercury_svr_init", ret);
+ return(-1);
+ }
+
test_ret = run_server();
if(test_ret == 0)
printf("Test success.\n");
else
printf("Test failure.\n");
+ triton_mercury_svr_finalize();
+
return test_ret;
}
aesop_main_set(aesop_main);
hooks/post-receive
--
1
0
branch, ticket-227, updated. 2de95fd20ecffd7f9385ec9eacf308c71ec5dd81
by noreply@mcs.anl.gov 26 Jun '13
by noreply@mcs.anl.gov 26 Jun '13
26 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, ticket-227 has been updated
via 2de95fd20ecffd7f9385ec9eacf308c71ec5dd81 (commit)
via 78ba3f78e3ae74a6dfe3aff0b5f50b8cf72cb077 (commit)
from 1d6834bbaec12013f0431b791dc5bca4e376cdd6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 2de95fd20ecffd7f9385ec9eacf308c71ec5dd81
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Wed Jun 26 21:37:03 2013 -0400
stub server side mercury engine
commit 78ba3f78e3ae74a6dfe3aff0b5f50b8cf72cb077
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Wed Jun 26 21:24:56 2013 -0400
--with-mercury option to configure
-----------------------------------------------------------------------
Summary of changes:
code/Makefile.in | 6 ++-
code/configure.ac | 18 +++++++++
code/src/remote/mercury-engine.ae | 68 ++++++++++++++++++++++++++++++++++++
code/src/remote/mercury-engine.hae | 11 ++++++
code/src/remote/mercury-svr.ae | 44 +++++++++++++++++++++++
code/src/remote/module.mk.in | 8 ++++-
6 files changed, 152 insertions(+), 3 deletions(-)
create mode 100644 code/src/remote/mercury-engine.ae
create mode 100644 code/src/remote/mercury-engine.hae
create mode 100644 code/src/remote/mercury-svr.ae
Diff of changes:
diff --git a/code/Makefile.in b/code/Makefile.in
index 44203f7..4f52958 100644
--- a/code/Makefile.in
+++ b/code/Makefile.in
@@ -72,7 +72,7 @@ ifneq (0,$(VALGRIND_CLEAN))
CPPFLAGS += -DVALGRIND_CLEAN -DVALGRIND
endif
-CFLAGS= -I$(srcdir)/include -I. -I$(srcdir) @CFLAGS@ $(CPPFLAGS)
+CFLAGS= -I$(srcdir)/include -I. -I$(srcdir) @CFLAGS@ @MERCURY_CFLAGS@ $(CPPFLAGS)
# enable relocatable
#CFLAGS += -fPIC
@@ -109,7 +109,7 @@ LIBCFLAGS=@LIBCFLAGS@
LIBCFLAGS += -DEV_CONFIG_H=\"triton-config.h\"
LDFLAGS += @LDFLAGS@
LIBS += @LIBS@ -lcrypto
-LIBS += @AESOP_LIBS@ -lc-utils -lm -ldb
+LIBS += @AESOP_LIBS@ @MERCURY_LIBS@ -lc-utils -lm -ldb
DEPLIBS += @THREAD_LIB@
@@ -122,6 +122,8 @@ MPILDFLAGS = @MPILDFLAGS@
MPILIBS = @MPILIBS@
BUILD_MPI = @BUILD_MPI@
+USE_MERCURY=@USE_MERCURY@
+
CFLAGS += $(MPICFLAGS)
LDFLAGS += $(MPILDFLAGS)
LIBS += $(MPILIBS)
diff --git a/code/configure.ac b/code/configure.ac
index d488f19..6504eb4 100644
--- a/code/configure.ac
+++ b/code/configure.ac
@@ -57,6 +57,22 @@ AECC=${withval}/bin/aecc
AESOP_LIBS=`PKG_CONFIG_PATH=${withval}/lib/pkgconfig pkg-config aesop --libs`
AC_SUBST(USE_AESOP)
+USE_MERCURY=
+AC_ARG_WITH(mercury,
+ [ --with-mercury=<dir> Location of external mercury package],
+ [
+ AC_CHECK_FILE(${withval}/mercury.h)
+ USE_MERCURY=${withval}
+ ],
+ [
+ USE_MERCURY=
+ ])
+AECC=${withval}/bin/aecc
+MERCURY_LIBS=`PKG_CONFIG_PATH=${withval}/lib/pkgconfig pkg-config mercury --libs`
+MERCURY_CFLAGS=`PKG_CONFIG_PATH=${withval}/lib/pkgconfig pkg-config mercury --cflags`
+AC_SUBST(USE_MERCURY)
+
+
dnl ======================================================================
dnl Try harder to be valgrind safe
dnl ======================================================================
@@ -360,6 +376,8 @@ AC_SUBST(BLOCKSOPT)
AC_SUBST(LIBCFLAGS)
AC_SUBST(THREAD_LIB)
AC_SUBST(AESOP_LIBS)
+AC_SUBST(MERCURY_LIBS)
+AC_SUBST(MERCURY_CFLAGS)
AC_CHECK_LIB([crypto], [SHA1], [],
[AC_MSG_ERROR([-lcrypto required. Install OpenSSL.])])
diff --git a/code/src/remote/mercury-engine.ae b/code/src/remote/mercury-engine.ae
new file mode 100644
index 0000000..60b2215
--- /dev/null
+++ b/code/src/remote/mercury-engine.ae
@@ -0,0 +1,68 @@
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <assert.h>
+#include <unistd.h>
+
+#include <aesop/aesop.h>
+#include <triton-thread.h>
+#include "src/common/triton-error.h"
+#include "src/remote/mercury-engine.hae"
+
+#include "mercury_handler.h"
+#include "na_bmi.h"
+
+/* TODO: configurable transport and address */
+/* TODO: replace fprintf() calls */
+
+static triton_mutex_t module_lock = TRITON_MUTEX_INITIALIZER;
+static int module_refcount = 0;
+
+triton_ret_t triton_mercury_svr_init(void)
+{
+ na_class_t *network_class = NULL;
+ int hg_ret;
+
+ triton_mutex_lock(&module_lock);
+
+ if (!module_refcount)
+ {
+
+ /* Initialize the interface */
+ network_class = NA_BMI_Init("bmi_tcp", "tcp://localhost:3344", BMI_INIT_SERVER);
+
+ hg_ret = HG_Handler_init(network_class);
+ if (hg_ret != HG_SUCCESS)
+ {
+ fprintf(stderr, "Could not initialize function shipper handler\n");
+ return(TRITON_ERR_UNKNOWN);
+ }
+
+ /* TODO: start thread to run Handler_process() */
+
+ }
+ module_refcount++;
+ triton_mutex_unlock(&module_lock);
+
+ return(TRITON_SUCCESS);
+}
+
+void triton_mercury_svr_finalize(void)
+{
+ int hg_ret;
+
+ triton_mutex_lock(&module_lock);
+ module_refcount--;
+
+ if (!module_refcount)
+ {
+ /* TODO: stop thread */
+
+ hg_ret = HG_Handler_finalize();
+ if (hg_ret != HG_SUCCESS) {
+ fprintf(stderr, "Could not finalize function shipper handler\n");
+ return;
+ }
+ }
+ triton_mutex_unlock(&module_lock);
+}
diff --git a/code/src/remote/mercury-engine.hae b/code/src/remote/mercury-engine.hae
new file mode 100644
index 0000000..cd954ee
--- /dev/null
+++ b/code/src/remote/mercury-engine.hae
@@ -0,0 +1,11 @@
+#ifndef __REMOTE_HAE__
+#define __REMOTE_HAE__
+
+#include <aesop/aesop.h>
+#include "src/common/triton-error.h"
+
+triton_ret_t triton_mercury_svr_init(void);
+
+void triton_mercury_svr_finalize(void);
+
+#endif
diff --git a/code/src/remote/mercury-svr.ae b/code/src/remote/mercury-svr.ae
new file mode 100644
index 0000000..d981f88
--- /dev/null
+++ b/code/src/remote/mercury-svr.ae
@@ -0,0 +1,44 @@
+#include <stdio.h>
+#include <errno.h>
+#include <assert.h>
+#include <stdio.h>
+
+#include <aesop/aesop.h>
+#include "src/zeroconf/zeroconf.h"
+
+static void triton_perror(const char *s, triton_ret_t ret);
+
+static __blocking int run_server(void)
+{
+ return 0;
+}
+
+__blocking int aesop_main(int argc, char **argv)
+{
+ triton_ret_t ret;
+ int test_ret;
+
+ test_ret = run_server();
+ if(test_ret == 0)
+ printf("Test success.\n");
+ else
+ printf("Test failure.\n");
+
+ return test_ret;
+}
+aesop_main_set(aesop_main);
+
+static void triton_perror(const char *s, triton_ret_t ret)
+{
+ /* TODO: fix this */
+ fprintf(stderr, "%s: I have no clue how to print this error.\n", s);
+}
+
+/*
+ * Local variables:
+ * c-indent-level: 4
+ * c-basic-offset: 4
+ * End:
+ *
+ * vim: ft=c ts=8 sts=4 sw=4 expandtab
+ */
diff --git a/code/src/remote/module.mk.in b/code/src/remote/module.mk.in
index 0f50440..1da1b53 100644
--- a/code/src/remote/module.mk.in
+++ b/code/src/remote/module.mk.in
@@ -11,7 +11,13 @@ AELIBSRC += $(DIR_REMOTE)/message.ae \
$(DIR_REMOTE)/service.ae \
$(DIR_REMOTE)/retry-method.ae \
$(DIR_REMOTE)/client-server-exec.ae \
- $(DIR_REMOTE)/core-client.ae
+ $(DIR_REMOTE)/core-client.ae
+
+ifneq (,$(USE_MERCURY))
+AESOP_HDR += $(DIR_REMOTE)/mercury-engine.hae
+AELIBSRC += $(DIR_REMOTE)/mercury-engine.ae
+endif
AERLIBSRC += $(DIR_REMOTE)/core.aer
+AETESTSRC += $(DIR_REMOTE)/mercury-svr.ae
hooks/post-receive
--
1
0
25 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via da24bd1abb0790f8b89d6d2c5fb21f9a3041acfa (commit)
from 7327da1be1077342b31590e91f85632b97c33eda (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit da24bd1abb0790f8b89d6d2c5fb21f9a3041acfa
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Tue Jun 25 12:08:11 2013 -0400
add draft overview figure
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/figs/asg-example.pdf | Bin 0 -> 19324 bytes
papers/asg-osd/figs/asg-example.svg | 1891 ++++++++++++++++++++++++++++++
papers/asg-osd/sections/introduction.tex | 13 +-
3 files changed, 1902 insertions(+), 2 deletions(-)
create mode 100644 papers/asg-osd/figs/asg-example.pdf
create mode 100644 papers/asg-osd/figs/asg-example.svg
Diff of changes:
diff --git a/papers/asg-osd/figs/asg-example.pdf b/papers/asg-osd/figs/asg-example.pdf
new file mode 100644
index 0000000..4a4b4c4
Binary files /dev/null and b/papers/asg-osd/figs/asg-example.pdf differ
diff --git a/papers/asg-osd/figs/asg-example.svg b/papers/asg-osd/figs/asg-example.svg
new file mode 100644
index 0000000..a0f9392
--- /dev/null
+++ b/papers/asg-osd/figs/asg-example.svg
@@ -0,0 +1,1891 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.2"
+ width="915.84894"
+ height="646.39282"
+ id="svg4437"
+ inkscape:version="0.48.4 r9939"
+ sodipodi:docname="asg-example.svg">
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1680"
+ inkscape:window-height="974"
+ id="namedview279"
+ showgrid="false"
+ inkscape:zoom="0.76071794"
+ inkscape:cx="395.88962"
+ inkscape:cy="443.22084"
+ inkscape:window-x="0"
+ inkscape:window-y="24"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg4437"
+ fit-margin-top="0"
+ fit-margin-left="0"
+ fit-margin-right="0"
+ fit-margin-bottom="0"
+ showguides="false">
+ <inkscape:grid
+ type="xygrid"
+ id="grid3262"
+ empspacing="5"
+ visible="true"
+ enabled="true"
+ snapvisiblegridlinesonly="true"
+ originx="-47.158122px"
+ originy="645.89284px" />
+ <sodipodi:guide
+ position="499.9196,963.76648"
+ orientation="44.233208,0"
+ id="guide8098" />
+ <sodipodi:guide
+ position="499.9196,919.53327"
+ orientation="0,-56.291851"
+ id="guide8100" />
+ <sodipodi:guide
+ position="443.6278,919.53327"
+ orientation="-44.233208,0"
+ id="guide8102" />
+ <sodipodi:guide
+ position="443.6278,963.76648"
+ orientation="0,56.291851"
+ id="guide8104" />
+ <sodipodi:guide
+ position="499.9196,899.70541"
+ orientation="44.233208,0"
+ id="guide8106" />
+ <sodipodi:guide
+ position="499.9196,855.47221"
+ orientation="0,-56.291851"
+ id="guide8108" />
+ <sodipodi:guide
+ position="443.6278,855.47221"
+ orientation="-44.233208,0"
+ id="guide8110" />
+ <sodipodi:guide
+ position="443.6278,899.70541"
+ orientation="0,56.291851"
+ id="guide8112" />
+ <sodipodi:guide
+ position="499.9196,835.64429"
+ orientation="44.233208,0"
+ id="guide8114" />
+ <sodipodi:guide
+ position="499.9196,791.41108"
+ orientation="0,-56.291851"
+ id="guide8116" />
+ <sodipodi:guide
+ position="443.6278,791.41108"
+ orientation="-44.233208,0"
+ id="guide8118" />
+ <sodipodi:guide
+ position="443.6278,835.64429"
+ orientation="0,56.291851"
+ id="guide8120" />
+ <sodipodi:guide
+ position="499.9196,771.58322"
+ orientation="44.233208,0"
+ id="guide8122" />
+ <sodipodi:guide
+ position="499.9196,727.35001"
+ orientation="0,-56.291851"
+ id="guide8124" />
+ <sodipodi:guide
+ position="443.6278,727.35001"
+ orientation="-44.233208,0"
+ id="guide8126" />
+ <sodipodi:guide
+ position="443.6278,771.58322"
+ orientation="0,56.291851"
+ id="guide8128" />
+ <sodipodi:guide
+ position="499.9196,707.52216"
+ orientation="44.233208,0"
+ id="guide8130" />
+ <sodipodi:guide
+ position="499.9196,663.28895"
+ orientation="0,-56.291851"
+ id="guide8132" />
+ <sodipodi:guide
+ position="443.6278,663.28895"
+ orientation="-44.233208,0"
+ id="guide8134" />
+ <sodipodi:guide
+ position="443.6278,707.52216"
+ orientation="0,56.291851"
+ id="guide8136" />
+ <sodipodi:guide
+ position="499.9196,643.46112"
+ orientation="44.233208,0"
+ id="guide8138" />
+ <sodipodi:guide
+ position="499.9196,599.22791"
+ orientation="0,-56.291851"
+ id="guide8140" />
+ <sodipodi:guide
+ position="443.6278,599.22791"
+ orientation="-44.233208,0"
+ id="guide8142" />
+ <sodipodi:guide
+ position="443.6278,643.46112"
+ orientation="0,56.291851"
+ id="guide8144" />
+ <sodipodi:guide
+ position="499.9196,579.40009"
+ orientation="44.233208,0"
+ id="guide8146" />
+ <sodipodi:guide
+ position="499.9196,535.16688"
+ orientation="0,-56.291851"
+ id="guide8148" />
+ <sodipodi:guide
+ position="443.6278,535.16688"
+ orientation="-44.233208,0"
+ id="guide8150" />
+ <sodipodi:guide
+ position="443.6278,579.40009"
+ orientation="0,56.291851"
+ id="guide8152" />
+ <sodipodi:guide
+ position="499.9196,515.33899"
+ orientation="44.233208,0"
+ id="guide8154" />
+ <sodipodi:guide
+ position="499.9196,471.10578"
+ orientation="0,-56.291851"
+ id="guide8156" />
+ <sodipodi:guide
+ position="443.6278,471.10578"
+ orientation="-44.233208,0"
+ id="guide8158" />
+ <sodipodi:guide
+ position="443.6278,515.33899"
+ orientation="0,56.291851"
+ id="guide8160" />
+ </sodipodi:namedview>
+ <defs
+ id="defs4439">
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend"
+ style="overflow:visible">
+ <path
+ id="path5428"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(-0.6,-0.6)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Send"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Send"
+ style="overflow:visible">
+ <path
+ id="path5416"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.2,0,0,-0.2,-1.2,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow1Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow1Lend"
+ style="overflow:visible">
+ <path
+ id="path5404"
+ d="M 0,0 5,-5 -12.5,0 5,5 0,0 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt"
+ transform="matrix(-0.8,0,0,-0.8,-10,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640"
+ style="overflow:visible">
+ <path
+ id="path5263"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Lend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5377"
+ style="overflow:visible">
+ <path
+ id="path5141"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="TriangleOutL"
+ style="overflow:visible">
+ <path
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ transform="scale(0.8,0.8)"
+ id="path6408"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4459"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4461"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-7"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-5"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-3"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-7"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-8"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-0"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-69"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-51"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4927"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4929"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4931"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4933"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4935"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4937"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4939"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4941"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker4943"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path4945"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-9"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-9"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5102"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5104"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5106"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5108"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-61"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-1"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5148"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5150"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5152"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5154"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5156"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5158"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5160"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5162"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5164"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5166"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-0"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-59"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5478"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5480"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5482"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5484"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker5486"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path5488"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-4"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-38"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <linearGradient
+ id="linearGradient1683">
+ <stop
+ id="stop1684"
+ style="stop-color:#68db0c;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop1685"
+ style="stop-color:#387606;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ id="linearGradient7777">
+ <stop
+ id="stop7779"
+ style="stop-color:#68db0c;stop-opacity:1"
+ offset="0" />
+ <stop
+ id="stop7781"
+ style="stop-color:#387606;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <linearGradient
+ x1="244.8598"
+ y1="827.01349"
+ x2="244.8598"
+ y2="646.06177"
+ id="linearGradient2646"
+ xlink:href="#linearGradient1694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-0.9487631,0,0,0.4334606,-8.1130988,57.558783)" />
+ <linearGradient
+ id="linearGradient1694">
+ <stop
+ id="stop1695"
+ style="stop-color:#ffffff;stop-opacity:0"
+ offset="0" />
+ <stop
+ id="stop1696"
+ style="stop-color:#ffffff;stop-opacity:1"
+ offset="1" />
+ </linearGradient>
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ color-interpolation-filters="sRGB"
+ id="filter7837">
+ <feColorMatrix
+ id="feColorMatrix7839"
+ type="luminanceToAlpha"
+ result="result2" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="arithmetic"
+ k1="0"
+ k2="0"
+ k3="2"
+ k4="0"
+ in="result2"
+ result="result4"
+ id="feComposite7841" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result4"
+ result="result3"
+ id="feBlend7843" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="in"
+ in="result3"
+ result="fbSourceGraphic"
+ id="feComposite7845" />
+ <feColorMatrix
+ result="fbSourceGraphicAlpha"
+ in="fbSourceGraphic"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ id="feColorMatrix7857" />
+ <feColorMatrix
+ id="feColorMatrix7859"
+ values="1"
+ in="fbSourceGraphic"
+ type="saturate"
+ result="result2" />
+ <feFlood
+ id="feFlood7861"
+ flood-color="rgb(254,102,0)"
+ flood-opacity="1"
+ result="result1" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result1"
+ result="result3"
+ id="feBlend7863" />
+ <feComposite
+ in2="fbSourceGraphic"
+ operator="in"
+ result="result4"
+ id="feComposite7865" />
+ </filter>
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ color-interpolation-filters="sRGB"
+ id="filter7847">
+ <feColorMatrix
+ id="feColorMatrix7849"
+ type="luminanceToAlpha"
+ result="result2" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="arithmetic"
+ k1="0"
+ k2="0"
+ k3="2"
+ k4="0"
+ in="result2"
+ result="result4"
+ id="feComposite7851" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result4"
+ result="result3"
+ id="feBlend7853" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="in"
+ in="result3"
+ result="fbSourceGraphic"
+ id="feComposite7855" />
+ <feColorMatrix
+ result="fbSourceGraphicAlpha"
+ in="fbSourceGraphic"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ id="feColorMatrix7867" />
+ <feColorMatrix
+ id="feColorMatrix7869"
+ values="1"
+ in="fbSourceGraphic"
+ type="saturate"
+ result="result2" />
+ <feFlood
+ id="feFlood7871"
+ flood-color="rgb(254,102,0)"
+ flood-opacity="1"
+ result="result1" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result1"
+ result="result3"
+ id="feBlend7873" />
+ <feComposite
+ in2="fbSourceGraphic"
+ operator="in"
+ result="result4"
+ id="feComposite7875" />
+ </filter>
+ <linearGradient
+ x1="244.8598"
+ y1="827.01349"
+ x2="830.00043"
+ y2="281.30646"
+ id="linearGradient7889"
+ xlink:href="#linearGradient1694"
+ gradientUnits="userSpaceOnUse"
+ gradientTransform="matrix(-1.3152933,0,0,0.3042174,-130.00077,-908.89576)" />
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-41"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-2"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker3376"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path3378"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-85"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-12"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker3823"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path3825"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="marker3827"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path3829"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-5"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-6"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-39"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-04"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-2"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-01"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-89"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-36"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-53"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-511"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-1"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-22"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-65"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-05"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640-2"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5263-1"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)" />
+ </marker>
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ color-interpolation-filters="sRGB"
+ id="filter7847-6">
+ <feColorMatrix
+ id="feColorMatrix7849-3"
+ type="luminanceToAlpha"
+ result="result2" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="arithmetic"
+ k1="0"
+ k2="0"
+ k3="2"
+ k4="0"
+ in="result2"
+ result="result4"
+ id="feComposite7851-4" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result4"
+ result="result3"
+ id="feBlend7853-1" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="in"
+ in="result3"
+ result="fbSourceGraphic"
+ id="feComposite7855-6" />
+ <feColorMatrix
+ result="fbSourceGraphicAlpha"
+ in="fbSourceGraphic"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ id="feColorMatrix7867-6" />
+ <feColorMatrix
+ id="feColorMatrix7869-1"
+ values="1"
+ in="fbSourceGraphic"
+ type="saturate"
+ result="result2" />
+ <feFlood
+ id="feFlood7871-2"
+ flood-color="rgb(254,102,0)"
+ flood-opacity="1"
+ result="result1" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result1"
+ result="result3"
+ id="feBlend7873-4" />
+ <feComposite
+ in2="fbSourceGraphic"
+ operator="in"
+ result="result4"
+ id="feComposite7875-3" />
+ </filter>
+ <filter
+ x="0"
+ y="0"
+ width="1"
+ height="1"
+ color-interpolation-filters="sRGB"
+ id="filter7837-7">
+ <feColorMatrix
+ id="feColorMatrix7839-6"
+ type="luminanceToAlpha"
+ result="result2" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="arithmetic"
+ k1="0"
+ k2="0"
+ k3="2"
+ k4="0"
+ in="result2"
+ result="result4"
+ id="feComposite7841-1" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result4"
+ result="result3"
+ id="feBlend7843-8" />
+ <feComposite
+ in2="SourceGraphic"
+ operator="in"
+ in="result3"
+ result="fbSourceGraphic"
+ id="feComposite7845-2" />
+ <feColorMatrix
+ result="fbSourceGraphicAlpha"
+ in="fbSourceGraphic"
+ values="0 0 0 -1 0 0 0 0 -1 0 0 0 0 -1 0 0 0 0 1 0"
+ id="feColorMatrix7857-5" />
+ <feColorMatrix
+ id="feColorMatrix7859-2"
+ values="1"
+ in="fbSourceGraphic"
+ type="saturate"
+ result="result2" />
+ <feFlood
+ id="feFlood7861-9"
+ flood-color="rgb(254,102,0)"
+ flood-opacity="1"
+ result="result1" />
+ <feBlend
+ in2="result2"
+ mode="multiply"
+ in="result1"
+ result="result3"
+ id="feBlend7863-7" />
+ <feComposite
+ in2="fbSourceGraphic"
+ operator="in"
+ result="result4"
+ id="feComposite7865-8" />
+ </filter>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640-26"
+ style="overflow:visible">
+ <path
+ id="path5263-5"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640-25"
+ style="overflow:visible">
+ <path
+ id="path5263-8"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640-5"
+ style="overflow:visible">
+ <path
+ id="path5263-0"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="TriangleOutL"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="marker5640-0"
+ style="overflow:visible">
+ <path
+ id="path5263-83"
+ d="m 5.77,0 -8.65,5 0,-10 8.65,5 z"
+ style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt;marker-start:none"
+ transform="scale(0.8,0.8)"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-0"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-0"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-9"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-8"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-4"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-7"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-6"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-6"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-09"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-1"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-69"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-4"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ refX="0"
+ refY="0"
+ orient="auto"
+ id="Arrow2Lend-6-2"
+ style="overflow:visible">
+ <path
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="matrix(-1.1,0,0,-1.1,-1.1,0)"
+ id="path6258-3-06"
+ style="font-size:12px;fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ inkscape:connector-curvature="0" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-1"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5428-2"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(-0.6,-0.6)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-4"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5428-4"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(-0.6,-0.6)" />
+ </marker>
+ <marker
+ inkscape:stockid="Arrow2Mend"
+ orient="auto"
+ refY="0"
+ refX="0"
+ id="Arrow2Mend-14"
+ style="overflow:visible">
+ <path
+ inkscape:connector-curvature="0"
+ id="path5428-1"
+ style="fill-rule:evenodd;stroke-width:0.625;stroke-linejoin:round"
+ d="M 8.7185878,4.0337352 -2.2072895,0.01601326 8.7185884,-4.0017078 c -1.7454984,2.3720609 -1.7354408,5.6174519 -6e-7,8.035443 z"
+ transform="scale(-0.6,-0.6)" />
+ </marker>
+ </defs>
+ <metadata
+ id="metadata4442">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <flowRoot
+ transform="translate(886.4268,779.0692)"
+ id="flowRoot4907"
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion4909"><rect
+ width="593.96973"
+ height="894.99518"
+ x="-789.93927"
+ y="133.12337"
+ id="rect4911" /></flowRegion><flowPara
+ id="flowPara4913" /></flowRoot> <flowRoot
+ transform="translate(184.92679,749.0344)"
+ id="flowRoot3491"
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion3493"><rect
+ width="4.9370975"
+ height="219.70084"
+ x="2266.1277"
+ y="367.81378"
+ id="rect3495" /></flowRegion><flowPara
+ id="flowPara3497" /></flowRoot> <flowRoot
+ transform="translate(184.92679,749.0344)"
+ id="flowRoot3763"
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"><flowRegion
+ id="flowRegion3765"><rect
+ width="4.9370975"
+ height="113.55325"
+ x="439.40167"
+ y="-17.279842"
+ id="rect3767" /></flowRegion><flowPara
+ id="flowPara3769" /></flowRoot> <text
+ xml:space="preserve"
+ style="font-size:18px;font-style:normal;font-weight:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Bitstream Vera Sans"
+ x="64.137543"
+ y="1105.0647"
+ id="text4236"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan4238"
+ x="64.137543"
+ y="1105.0647" /></text>
+ <flowRoot
+ xml:space="preserve"
+ id="flowRoot6033"
+ style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Arial;-inkscape-font-specification:Arial"
+ transform="translate(158.94913,729.3927)"><flowRegion
+ id="flowRegion6035"><rect
+ id="rect6037"
+ width="1.8590511"
+ height="48.335331"
+ x="738.04327"
+ y="-652.38318" /></flowRegion><flowPara
+ id="flowPara6039" /></flowRoot> <g
+ transform="matrix(-1,0,0,1,-864.31684,-531.50764)"
+ id="g7935-07-4" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:none;stroke:#000000;stroke-width:2.46850562;stroke-linecap:butt;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:0;display:inline"
+ d="m 295.23104,298.1105 c -52.76535,4.479 -72.12942,17.4925 -76.25615,41.4434 -43.73624,0.7747 -78.76389,17.818 -78.76389,38.7087 2.93691,24.9881 49.47939,43.2759 102.23238,37.5366 15.41212,9.931 42.88936,17.3156 76.44915,19.2341 47.14444,2.695 91.85786,-6.2326 111.74812,-20.887 44.03167,14.4275 77.61696,11.3608 116.82774,-4.2075 29.75901,-16.2416 26.08265,-40.601 -8.23006,-54.3364 -9.6907,-3.8793 -20.79852,-6.4799 -32.40566,-7.874 2.55243,-9.7093 -2.75065,-19.9306 -16.52429,-28.3702 -31.84106,-16.8439 -83.69327,-20.9791 -121.19995,-5.3196 -17.72324,-10.9112 -44.70748,-16.7442 -73.87739,-15.9281 z"
+ id="path2171"
+ sodipodi:nodetypes="ccccsccscccc" />
+ <text
+ x="165.48128"
+ y="-382.50186"
+ id="text7577-3-6-83-8-6-9"
+ xml:space="preserve"
+ style="font-size:36px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"><tspan
+ x="165.48128"
+ y="-382.50186"
+ id="tspan7579-42-6-29-9-7-3" /></text>
+ <text
+ x="240.52577"
+ y="-594.59839"
+ xml:space="preserve"
+ style="font-size:36px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ id="text5181-1"><tspan
+ x="240.52577"
+ y="-594.59839"
+ id="tspan5183-4" /></text>
+ <g
+ id="g3705"
+ transform="matrix(0.92566712,0,0,0.9298773,-52.067976,-965.14712)">
+ <rect
+ transform="matrix(0,1,-1,0,0,0)"
+ ry="19.713287"
+ rx="14.749601"
+ y="-689.89575"
+ x="1273.4053"
+ height="523.75507"
+ width="70.399414"
+ id="rect8263-3-0-1"
+ style="fill:#ff9840;fill-opacity:1;stroke:#000000;stroke-width:4.58615112;stroke-linecap:round;stroke-miterlimit:3.9000001;stroke-opacity:1;stroke-dasharray:4.58615114, 4.58615114;stroke-dashoffset:0" />
+ <text
+ style="font-size:36px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ xml:space="preserve"
+ id="text7577-3-6-83-8-7"
+ y="1318.7416"
+ x="183.39595"><tspan
+ id="tspan7579-42-6-29-9-2"
+ y="1318.7416"
+ x="183.39595">Object Storage Abstraction</tspan></text>
+ </g>
+ <g
+ id="g3649"
+ transform="translate(-47.158122,-1017.4736)">
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-5"
+ transform="matrix(0.65954008,0,0,0.73134889,109.0381,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-8"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-25"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8-3"
+ transform="matrix(0.65954008,0,0,0.73134889,204.54518,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0-8"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2-2"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4-1"
+ transform="matrix(0.65954008,0,0,0.73134889,300.05226,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9-3"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0-3"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-2-0"
+ transform="matrix(0.65954008,0,0,0.73134889,395.55935,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-2-6"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-04-6"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8-1-2"
+ transform="matrix(0.65954008,0,0,0.73134889,491.06643,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0-0-9"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2-4-8"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4-7-7"
+ transform="matrix(0.65954008,0,0,0.73134889,586.57352,1197.9855)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9-7-5"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0-1-8"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1"
+ transform="matrix(0.65954008,0,0,0.73134889,74.859861,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8"
+ transform="matrix(0.65954008,0,0,0.73134889,170.36694,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4"
+ transform="matrix(0.65954008,0,0,0.73134889,265.87402,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-2"
+ transform="matrix(0.65954008,0,0,0.73134889,361.38111,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-2"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-04"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8-1"
+ transform="matrix(0.65954008,0,0,0.73134889,456.88819,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0-0"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2-4"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4-7"
+ transform="matrix(0.65954008,0,0,0.73134889,552.39528,1246.2538)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9-7"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0-1"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-87"
+ transform="matrix(0.65954008,0,0,0.73134889,35.423431,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-1"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-08"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8-7"
+ transform="matrix(0.65954008,0,0,0.73134889,130.93051,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0-3"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2-0"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4-12"
+ transform="matrix(0.65954008,0,0,0.73134889,226.4376,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9-74"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0-7"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-2-7"
+ transform="matrix(0.65954008,0,0,0.73134889,321.94468,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-2-9"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-04-3"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-8-1-3"
+ transform="matrix(0.65954008,0,0,0.73134889,417.45177,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-0-0-97"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-2-4-6"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ <g
+ style="display:inline"
+ id="g3181-7-0-1-4-7-3"
+ transform="matrix(0.65954008,0,0,0.73134889,512.95885,1291.893)">
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:3.55861831;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path7240-4-2-1-9-7-0"
+ d="m 127.99999,380.54526 c -0.13017,0 -0.25556,0.0204 -0.38556,0.0212 l -64.696029,0 0,67.41894 0.192778,0 c -0.07107,1.36881 -0.137904,2.72452 -0.192778,4.11169 -0.624158,15.77878 28.532402,27.23695 64.457439,27.23695 35.92504,0 66.95405,-10.83402 65.70574,-27.23695 -0.10534,-1.38426 -0.1217,-2.74288 -0.19277,-4.11169 l 0.19277,0 0,-67.41894 -64.69603,0 c -0.13,-8.6e-4 -0.25539,-0.0212 -0.38556,-0.0212 z" />
+ <path
+ inkscape:connector-curvature="0"
+ style="fill:#a4a4a4;fill-opacity:1;stroke:#000000;stroke-width:9.82521152;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
+ id="path5773-8-2-0-0-1-6"
+ transform="matrix(0.6182361,0,0,0.2121899,-80.345578,268.93598)"
+ d="m 442.5,528.86218 a 105.5,105.5 0 1 1 -211,0 105.5,105.5 0 1 1 211,0 z" />
+ </g>
+ </g>
+ <text
+ xml:space="preserve"
+ style="font-size:7px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="361.3421"
+ y="342.28238"
+ id="text3641"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan3643"
+ x="361.3421"
+ y="342.28238"
+ style="font-size:22px;text-align:center;text-anchor:middle">Common storage</tspan><tspan
+ sodipodi:role="line"
+ x="364.84406"
+ y="369.78238"
+ id="tspan3645"
+ style="font-size:22px;text-align:center;text-anchor:middle">system functionality </tspan><tspan
+ sodipodi:role="line"
+ x="361.3421"
+ y="397.28238"
+ style="font-size:22px;text-align:center;text-anchor:middle"
+ id="tspan3647">(resilience, management, etc.)</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:4.25489283;stroke-linecap:round;stroke-miterlimit:3.9000001;stroke-opacity:1;stroke-dasharray:4.25489263, 4.25489263;stroke-dashoffset:0"
+ id="rect8263-3-0-1-7"
+ width="48.373657"
+ height="245.57518"
+ x="4.9153771"
+ y="-607.7027"
+ rx="13.71532"
+ ry="18.247942"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <text
+ x="373.68881"
+ y="40.408138"
+ id="text7577-3-6-83-8-7-7"
+ xml:space="preserve"
+ style="font-size:33.39971542px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ transform="scale(0.99773355,1.0022716)"><tspan
+ x="373.68881"
+ y="40.408138"
+ id="tspan7579-42-6-29-9-2-5">File System 1</tspan><tspan
+ x="373.68881"
+ y="40.408138"
+ id="tspan4953" /></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:4.25489283;stroke-linecap:round;stroke-miterlimit:3.9000001;stroke-opacity:1;stroke-dasharray:4.25489263, 4.25489263;stroke-dashoffset:0"
+ id="rect8263-3-0-1-7-2"
+ width="47.530872"
+ height="289.39987"
+ x="45.758213"
+ y="-331.52734"
+ rx="13.71532"
+ ry="18.247942"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <text
+ x="52.96191"
+ y="80.317558"
+ id="text7577-3-6-83-8-7-7-3"
+ xml:space="preserve"
+ style="font-size:33.39971542px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ transform="scale(0.99773355,1.0022716)"><tspan
+ x="52.96191"
+ y="80.317558"
+ id="tspan7579-42-6-29-9-2-5-6">Key/Value Store</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:4.25489283;stroke-linecap:round;stroke-miterlimit:3.9000001;stroke-opacity:1;stroke-dasharray:4.25489263, 4.25489263;stroke-dashoffset:0"
+ id="rect8263-3-0-1-7-2-44-0"
+ width="48.373634"
+ height="211.39693"
+ x="124.91544"
+ y="-213.52437"
+ rx="13.71532"
+ ry="18.247942"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <text
+ x="12.871049"
+ y="160.13617"
+ id="text7577-3-6-83-8-7-7-3-0-9"
+ xml:space="preserve"
+ style="font-size:33.39971542px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ transform="scale(0.99773355,1.0022716)"><tspan
+ x="12.871049"
+ y="160.13617"
+ id="tspan7579-42-6-29-9-2-5-6-0-4">MapReduce</tspan></text>
+ <rect
+ style="fill:none;stroke:#000000;stroke-width:4.25489283;stroke-linecap:round;stroke-miterlimit:3.9000001;stroke-opacity:1;stroke-dasharray:4.25489263, 4.25489263;stroke-dashoffset:0"
+ id="rect8263-3-0-1-7-0"
+ width="47.059109"
+ height="246.88969"
+ x="86.230255"
+ y="-689.01709"
+ rx="13.71532"
+ ry="18.247942"
+ transform="matrix(0,1,-1,0,0,0)" />
+ <text
+ x="453.87054"
+ y="120.22687"
+ id="text7577-3-6-83-8-7-7-35"
+ xml:space="preserve"
+ style="font-size:33.39971542px;font-style:normal;font-weight:normal;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Bitstream Vera Sans"
+ transform="scale(0.99773355,1.0022716)"><tspan
+ x="453.87054"
+ y="120.22687"
+ id="tspan7579-42-6-29-9-2-5-5">File System 2</tspan></text>
+ <rect
+ style="color:#000000;fill:none;stroke:#130081;stroke-width:0.89999998;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:0.9, 0.9;stroke-dashoffset:0;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate"
+ id="rect4998"
+ width="675.67755"
+ height="457.46249"
+ x="8.0528803"
+ y="188.48033"
+ rx="24.116796"
+ ry="25.922289" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 712.84188,440.5 20,0 0,200 -20,0"
+ id="path5002"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 732.84188,520.5 20,0"
+ id="path5004"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 712.84188,200.5 20,0 -1.97115,217.0891 -20,0"
+ id="path5002-4"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 730.87073,297.5891 20,0"
+ id="path5004-0"
+ inkscape:connector-curvature="0" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 712.84188,0.5 20,0 -1.21878,180.9397 -20.00005,0"
+ id="path5002-4-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cccc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:1px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
+ d="m 731.6231,61.4397 20,0"
+ id="path5004-0-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <text
+ xml:space="preserve"
+ style="font-size:7px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="762.64227"
+ y="54.396397"
+ id="text5050"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5052"
+ x="762.64227"
+ y="54.396397"
+ style="font-size:20px;text-align:start;text-anchor:start">Data model</tspan><tspan
+ sodipodi:role="line"
+ x="762.64227"
+ y="79.396393"
+ id="tspan5054"
+ style="font-size:20px;text-align:start;text-anchor:start">instances</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="764.04156"
+ y="510.7587"
+ id="text5050-3"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5052-4"
+ x="764.04156"
+ y="510.7587"
+ style="font-size:20px;text-align:start;text-anchor:start">Storage</tspan><tspan
+ sodipodi:role="line"
+ x="764.04156"
+ y="535.75873"
+ id="tspan5054-2"
+ style="font-size:20px;text-align:start;text-anchor:start">pool</tspan></text>
+ <text
+ xml:space="preserve"
+ style="font-size:7px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-align:start;line-height:125%;letter-spacing:0px;word-spacing:0px;writing-mode:lr-tb;text-anchor:start;fill:#000000;fill-opacity:1;stroke:none;font-family:Sans;-inkscape-font-specification:Sans"
+ x="762.83136"
+ y="293.85831"
+ id="text5050-7"
+ sodipodi:linespacing="125%"><tspan
+ sodipodi:role="line"
+ id="tspan5052-46"
+ x="762.83136"
+ y="293.85831"
+ style="font-size:20px;text-align:start;text-anchor:start">Unified object</tspan><tspan
+ sodipodi:role="line"
+ x="762.83136"
+ y="318.85831"
+ id="tspan5054-6"
+ style="font-size:20px;text-align:start;text-anchor:start">storage system</tspan></text>
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+ d="m 122.41853,172.7057 c 14.46002,22.3473 18.40366,42.0656 18.40366,42.0656"
+ id="path5109"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+ d="m 219.15087,95.7047 c 24.9764,24.9764 32.86368,118.3094 32.86368,118.3094"
+ id="path5109-0"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+ d="m 414.48301,53.1681 c -24.9764,24.9764 -34.17823,159.0604 -34.17823,159.0604"
+ id="path5109-0-1"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+ <path
+ style="fill:none;stroke:#000000;stroke-width:3;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;marker-end:url(#Arrow2Mend)"
+ d="m 522.81138,133.8265 c -28.92006,35.4928 -24.97642,80.1875 -24.97642,80.1875"
+ id="path5109-3"
+ inkscape:connector-curvature="0"
+ sodipodi:nodetypes="cc" />
+</svg>
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index 25dcff0..4116d40 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -33,6 +33,15 @@ Devulapalli07integratingparallel, librados-doc, lustre-web}.
%objects provide more features to encapsulate the computations compared to
%traditional blocks.
+\begin{figure}[h]
+\centering
+\includegraphics[width=.9\columnwidth, keepaspectratio]{figs/asg-example.pdf}
+\caption{Example deployment scenario in which big data, cloud storage, and HPC
+data models share the same storage pool via a unified object storage
+abstraction.}
+\label{fig:asg-example}
+\end{figure}
+
Although several object-based storage models have been implemented and
used as the basis for the popular storage and file systems~\cite{Weil06ceph:a,
Beaver:2010:FNH:1924943.1924947, lustre-web, Welch08scalableperformance},
@@ -42,8 +51,8 @@ them difficult to reuse in other contexts. This situation also makes it
difficult to share a common storage pool for different big data, cloud
storage or HPC storage tasks, increasing management overhead and adding
complexity to the task of storage provisioning for facilities with diverse
-storage needs.\todo{should we have some simple figure showing the various
-data models sharing a unified storage pool?}
+storage needs. Ideally each data model would coexist using a shared object
+storage foundation as shown in Figure~\ref{fig:asg-example}.
In order to address this problem, we first begin by identifying some of the
most popular large-scale data models in use today. The following list
hooks/post-receive
--
1
0
21 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 7327da1be1077342b31590e91f85632b97c33eda (commit)
via 9474a0daa7ba631e6c7c276bc3c89d004d3ffeeb (commit)
via 59e6adb39b420d2eccf3ee8dc3aeced3eee65971 (commit)
via 6f0b310bbd9d641e6d9c1eee892868b3b1a77d13 (commit)
from f62be03640f1fdddf9b76750772cf25fd4d683a8 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 7327da1be1077342b31590e91f85632b97c33eda
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 13:19:55 2013 -0400
remove todo note
commit 9474a0daa7ba631e6c7c276bc3c89d004d3ffeeb
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 13:18:08 2013 -0400
misc fixes
commit 59e6adb39b420d2eccf3ee8dc3aeced3eee65971
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 13:15:20 2013 -0400
remove todo note
commit 6f0b310bbd9d641e6d9c1eee892868b3b1a77d13
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 13:13:13 2013 -0400
draft of expanding table to include common reqs
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/paper.tex | 1 -
papers/asg-osd/sections/abstract.tex | 2 +-
papers/asg-osd/sections/introduction.tex | 68 +++++++++++++++---------------
3 files changed, 35 insertions(+), 36 deletions(-)
Diff of changes:
diff --git a/papers/asg-osd/paper.tex b/papers/asg-osd/paper.tex
index 4a4a652..dee6fa6 100644
--- a/papers/asg-osd/paper.tex
+++ b/papers/asg-osd/paper.tex
@@ -352,7 +352,6 @@
% correct bad hyphenation here
\hyphenation{op-tical net-works semi-conduc-tor}
-
\begin{document}
%
% paper title
diff --git a/papers/asg-osd/sections/abstract.tex b/papers/asg-osd/sections/abstract.tex
index e1d52f5..ed99f63 100644
--- a/papers/asg-osd/sections/abstract.tex
+++ b/papers/asg-osd/sections/abstract.tex
@@ -10,7 +10,7 @@ making it difficult to reuse them in other environments and leading to
unnecessary fragmentation of data center storage facilities. In this paper
we propose a new distributed object-based storage model that seeks to
unify the common underlying primitives for big data, cloud storage
-and HPC storage. We investigate five popular categories of data models
+and HPC storage. We investigate four popular categories of data models
from these environments and determine the unique requirements that
distinguish them. We then identify key features from previous object
storage systems that address these requirements and explore how they can
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index bdf1f52..25dcff0 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -67,52 +67,54 @@ however, as most SQL database implementations are built using customized
internal data models to better support sophisticated read/modify/write
transactions.
+
\begin{table}
+\tiny
\begin{center}
- \resizebox{\columnwidth}{!}{
- \begin{tabular}{c|c|c|c|c|c|} \cline{2-6}
-& \multicolumn{5}{c|}{\textbf{Requirements}} \\\cline{2-6}
+ \begin{tabular}{c|c|c|c|c|c|c|c|c|c|} \cline{2-10}
+& \multicolumn{4}{c|}{\textbf{Shared Requirements}}
+& \multicolumn{5}{c|}{\textbf{Distinguishing Requirements}}
+\\\cline{2-10}
+& \rotatebox{90}{High Performance}
+& \rotatebox{90}{Scalability}
+& \rotatebox{90}{Fault Tolerance}
+& \rotatebox{90}{Concurrent Read Access}
& \rotatebox{90}{Concurrent Write Access} & \rotatebox{90}{Synchronization
Primitives} & \rotatebox{90}{Atomicity} & \rotatebox{90}{Compute/Storage
Locality} & \rotatebox{90}{Record Oriented Access} \\\hline
-\multicolumn{1}{|c|}{Parallel File System} & \cmark & \cmark & \cmark & & \\\hline
-\multicolumn{1}{|c|}{Cloud Object Storage} & & & \cmark & & \\\hline
-\multicolumn{1}{|c|}{Mapreduce} & & & & \cmark & \\\hline
-\multicolumn{1}{|c|}{NOSQL Key/Value Store} & \cmark & \cmark & \cmark & & \cmark \\\hline
- \end{tabular}}
+
+\multicolumn{1}{|c|}{Parallel File System} & \cmark & \cmark & \cmark &
+\cmark & \cmark & \cmark & \cmark & & \\\hline
+\multicolumn{1}{|c|}{Cloud Object Storage} & \cmark & \cmark & \cmark &
+\cmark& & & \cmark & & \\\hline
+\multicolumn{1}{|c|}{Mapreduce} & \cmark & \cmark & \cmark &
+\cmark& & & & \cmark & \\\hline
+\multicolumn{1}{|c|}{NOSQL Key/Value Store} & \cmark & \cmark & \cmark &
+\cmark& \cmark & \cmark & \cmark & & \cmark \\\hline
+ \end{tabular}
\end{center}
- \caption{Distinguishing requirements for popular scalable storage data models}
+ \caption{Requirements for popular scalable storage data models}
\label{tbl:reqs}
+\normalsize
\end{table}
+
Table~\ref{tbl:reqs} breaks down the large-scale storage data models in
-terms of core functionality requirements that differentiate them.
+terms of core functionality requirements. The first four are general
+requirements that are shared across all such data models.
Concurrent write access refers to the ability to have multiple processes
-write to the same file, object, or database simultaneously. Synchronization
-primitives refer to functionality such as file locking or conditional
+write simultaneously to the same file, object, or database. Synchronization
+primitives are features such as file locking or conditional
operations that allow multiple processes to explicitly coordinate
-concurrent writes. Atomicity refers to the ability to modify data such that
+concurrent writes. Atomicity is the ability to modify data such that
the write is applied in its entirety or not at all. The granularity of
-atomicity varies widely across data models. For example, cloud object
+atomicity can vary widely across data models. For example, cloud object
storage systems may need object-granular atomicity, key/value stores may
need per-key granularity, and file systems may not need atomicity at all
except in the directory name space. Locality allows applications to execute
-on server nodes that hold data relevant to computation. Record-oriented
-access is needed for storage systems that operate on opaque keys rather than
-byte ranges.
-
-Note that that all four data models share the following common requirements
-which are not shown in the table:
-\begin{itemize}
-\item scalability
-\item high performance
-\item fault tolerance
-\item concurrent read access
-\end{itemize}
-
-\todo{somewhere note that there are underlying semantic differences
-between these models as well (eg. how you might want replication protocols
-to work), but those can be accomodated below the API we are proposing.}
+on server nodes with local copies of data relevant to computation. Record-oriented
+access is needed for storage systems that refer to units of data in terms of
+opaque keys rather than ranges of bytes.
%\begin{table}
% \begin{center}
@@ -149,11 +151,9 @@ In this work we propose a new object-based storage API, known as the ASG
interface\todo{what does ASG stand for?}, that
seeks to unify features necessary to support the data models outlined
above without compromising usability or limiting implementation flexibility.
-The contributions of this paper are as follows:\todo{we don't have to keep
-an explicit contribution list, just putting here for now to help focus the
-text}
+The contributions of this paper are as follows:
\begin{itemize}
-\item identify the requirements that differentiate five key
+\item identify the requirements that differentiate four key
large-scale data storage models
\item propose a new object storage API that unifies the features necessary
to meet those requirements
hooks/post-receive
--
1
0
21 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via f62be03640f1fdddf9b76750772cf25fd4d683a8 (commit)
from 22830d15bdf6e5aa409088834ed78d528decfc2d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f62be03640f1fdddf9b76750772cf25fd4d683a8
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 12:46:22 2013 -0400
first draft of explaining requirements in table
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/sections/introduction.tex | 31 ++++++++++++++++++++++-------
1 files changed, 23 insertions(+), 8 deletions(-)
Diff of changes:
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index 9a3af9c..bdf1f52 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -87,14 +87,29 @@ Locality} & \rotatebox{90}{Record Oriented Access} \\\hline
Table~\ref{tbl:reqs} breaks down the large-scale storage data models in
terms of core functionality requirements that differentiate them.
-Note that that all five data models share the common requirements of
-scalability, high performance, fault tolerance and concurrent read access,
-which are not shown in the table.
-\todo{Spell out exactly what the requirements mean, some of these are not
-obvious.} \textcolor{red}{Temporary notes on requirements: layout control
-means ability to control or discover where data is placed in order to
-perform computation near the data, while data affinity means ability to
-group related data together to improve spatial locality.}
+Concurrent write access refers to the ability to have multiple processes
+write to the same file, object, or database simultaneously. Synchronization
+primitives refer to functionality such as file locking or conditional
+operations that allow multiple processes to explicitly coordinate
+concurrent writes. Atomicity refers to the ability to modify data such that
+the write is applied in its entirety or not at all. The granularity of
+atomicity varies widely across data models. For example, cloud object
+storage systems may need object-granular atomicity, key/value stores may
+need per-key granularity, and file systems may not need atomicity at all
+except in the directory name space. Locality allows applications to execute
+on server nodes that hold data relevant to computation. Record-oriented
+access is needed for storage systems that operate on opaque keys rather than
+byte ranges.
+
+Note that that all four data models share the following common requirements
+which are not shown in the table:
+\begin{itemize}
+\item scalability
+\item high performance
+\item fault tolerance
+\item concurrent read access
+\end{itemize}
+
\todo{somewhere note that there are underlying semantic differences
between these models as well (eg. how you might want replication protocols
to work), but those can be accomodated below the API we are proposing.}
hooks/post-receive
--
1
0
21 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 22830d15bdf6e5aa409088834ed78d528decfc2d (commit)
from f7aa2ac317059987d65e813436861aa853526918 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 22830d15bdf6e5aa409088834ed78d528decfc2d
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 12:33:42 2013 -0400
experimenting more with categories etc.
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/sections/introduction.tex | 19 ++++++++++---------
1 files changed, 10 insertions(+), 9 deletions(-)
Diff of changes:
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index 0f9a455..9a3af9c 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -54,8 +54,7 @@ divides them into four categories with representative examples:
\item \textbf{Parallel file systems}: Lustre, GPFS, Panasas, PVFS, Ceph
\item \textbf{Cloud object storage}: Amazon S3, Swift, Rados Gateway
\item \textbf{MapReduce}: Google File System (GFS), Hadoop HDFS
-\item \textbf{NOSQL Key/Value stores}: Dynamo, Redis, Hyperdex, Cassandra,
-BigQuery
+\item \textbf{NOSQL key/value stores}: Dynamo, Redis, Hyperdex, Cassandra, HBase, BigQuery
\end{itemize}
Note that these data models aren't necessarily mutually exclusive. For
@@ -71,13 +70,15 @@ transactions.
\begin{table}
\begin{center}
\resizebox{\columnwidth}{!}{
- \begin{tabular}{c|c|c|c|c|c|c|} \cline{2-7}
-& \multicolumn{6}{c|}{\textbf{Requirements}} \\\cline{2-7}
-& \rotatebox{90}{Concurrent Write Access} & \rotatebox{90}{Synchronization Primitives} & \rotatebox{90}{Atomicity} & \rotatebox{90}{Layout Control} & \rotatebox{90}{Record Oriented Access} & \rotatebox{90}{Data Affinity} \\\hline
-\multicolumn{1}{|c|}{Parallel File System} & \cmark & \cmark & \cmark & & & \\\hline
-\multicolumn{1}{|c|}{Cloud Object Storage} & & & \cmark & & & \\\hline
-\multicolumn{1}{|c|}{Mapreduce} & & & & \cmark & & \\\hline
-\multicolumn{1}{|c|}{NOSQL Key-value Store} & \cmark & \cmark & \cmark & & \cmark & \cmark \\\hline
+ \begin{tabular}{c|c|c|c|c|c|} \cline{2-6}
+& \multicolumn{5}{c|}{\textbf{Requirements}} \\\cline{2-6}
+& \rotatebox{90}{Concurrent Write Access} & \rotatebox{90}{Synchronization
+Primitives} & \rotatebox{90}{Atomicity} & \rotatebox{90}{Compute/Storage
+Locality} & \rotatebox{90}{Record Oriented Access} \\\hline
+\multicolumn{1}{|c|}{Parallel File System} & \cmark & \cmark & \cmark & & \\\hline
+\multicolumn{1}{|c|}{Cloud Object Storage} & & & \cmark & & \\\hline
+\multicolumn{1}{|c|}{Mapreduce} & & & & \cmark & \\\hline
+\multicolumn{1}{|c|}{NOSQL Key/Value Store} & \cmark & \cmark & \cmark & & \cmark \\\hline
\end{tabular}}
\end{center}
\caption{Distinguishing requirements for popular scalable storage data models}
hooks/post-receive
--
1
0
21 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via f7aa2ac317059987d65e813436861aa853526918 (commit)
from 9d91c531f890347458ff4a251e0bacb62216a0a9 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f7aa2ac317059987d65e813436861aa853526918
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 12:14:10 2013 -0400
cite panfs as built atop objects too
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/sections/introduction.tex | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
Diff of changes:
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index 6df4ac0..0f9a455 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -35,8 +35,7 @@ Devulapalli07integratingparallel, librados-doc, lustre-web}.
Although several object-based storage models have been implemented and
used as the basis for the popular storage and file systems~\cite{Weil06ceph:a,
-Beaver:2010:FNH:1924943.1924947, lustre-web}\todo{are these the citations we
-want here?},
+Beaver:2010:FNH:1924943.1924947, lustre-web, Welch08scalableperformance},
existing object-based storage
models are typically tailored to a particular use case or data model, making
them difficult to reuse in other contexts. This situation also makes it
hooks/post-receive
--
1
0
21 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, master has been updated
via 9d91c531f890347458ff4a251e0bacb62216a0a9 (commit)
from bd61cc1d2a6766b21646a835033f116f4ffc4ee6 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9d91c531f890347458ff4a251e0bacb62216a0a9
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Fri Jun 21 12:03:55 2013 -0400
clarify data models and use cases
-----------------------------------------------------------------------
Summary of changes:
papers/asg-osd/sections/abstract.tex | 4 ++--
papers/asg-osd/sections/casestudies.tex | 6 +++---
papers/asg-osd/sections/introduction.tex | 25 +++++++++----------------
3 files changed, 14 insertions(+), 21 deletions(-)
Diff of changes:
diff --git a/papers/asg-osd/sections/abstract.tex b/papers/asg-osd/sections/abstract.tex
index 9c1d5db..e1d52f5 100644
--- a/papers/asg-osd/sections/abstract.tex
+++ b/papers/asg-osd/sections/abstract.tex
@@ -17,5 +17,5 @@ storage systems that address these requirements and explore how they can
be unified effectively without sacrificing usability. We validate the
effectiveness of our approach by evaluating how the API could be
used in the construction of three diverse but representative use cases:
-a POSIX file system name space, a column-store NOSQL database and a
-\todo{is this third use case right?} data set with concurrent writers.
+a POSIX file system name space, a column-store key/value database, and
+an HPC application checkpoint.
diff --git a/papers/asg-osd/sections/casestudies.tex b/papers/asg-osd/sections/casestudies.tex
index e19600b..5eaefb3 100644
--- a/papers/asg-osd/sections/casestudies.tex
+++ b/papers/asg-osd/sections/casestudies.tex
@@ -2,14 +2,14 @@ In this section we show how ASG storage model can be used as a basis to
construct a namespace and a column store and to support concurrent write
accesses.
-\subsection{Namespace Implementation}
+\subsection{POSIX file system name space}
\label{namespace}
\input{sections/namespace_usecase}
-\subsection{Column Store}
+\subsection{Column-store key/value database}
\input{sections/columnstore_usecase}
-\subsection{Concurrent Write Access}
+\subsection{HPC application checkpoint}
\input{sections/concurrentwrite_usecase}
diff --git a/papers/asg-osd/sections/introduction.tex b/papers/asg-osd/sections/introduction.tex
index 8353b21..6df4ac0 100644
--- a/papers/asg-osd/sections/introduction.tex
+++ b/papers/asg-osd/sections/introduction.tex
@@ -48,32 +48,26 @@ data models sharing a unified storage pool?}
In order to address this problem, we first begin by identifying some of the
most popular large-scale data models in use today. The following list
-divides them into five categories with representative examples:
+divides them into four categories with representative examples:
\todo{should we add citations for each example?}
\begin{itemize}
\item \textbf{Parallel file systems}: Lustre, GPFS, Panasas, PVFS, Ceph
\item \textbf{Cloud object storage}: Amazon S3, Swift, Rados Gateway
\item \textbf{MapReduce}: Google File System (GFS), Hadoop HDFS
-\item \textbf{Key/Value stores}: Dynamo, Redis, Hyperdex, Cassandra
-\item \textbf{NOSQL}: BigQuery, MongoDB, CouchDB \todo{NOSQL is really broad
-when you get down to it. The things I'm listing here are really
-document-oriented or non-sql column stores. Maybe we should narrow this
-down some or categorize differently. It would be nice to keep column
-oriented non-sql examples in here somewhere though...}
+\item \textbf{NOSQL Key/Value stores}: Dynamo, Redis, Hyperdex, Cassandra,
+BigQuery
\end{itemize}
Note that these data models aren't necessarily mutually exclusive. For
-example, key/value stores are often considered to be a subset of the NOSQL
-storage taxonomy and many parallel file systems have been extended to support
+example, several parallel file systems have been extended to support
MapReduce workloads. We will refer to these classifications in the
remainder of the paper for clarity, however, in order to simplify the discussion
of use cases and requirements that are shared across groups of storage
-systems.
-\todo{Also say something about why we aren't including
-conventional SQL databases? Basically the API and semantics are so well
-established and well defined that those systems have become highly
-specialized already...}
+systems. We do not include SQL databases in our taxonomy of data models,
+however, as most SQL database implementations are built using customized
+internal data models to better support sophisticated read/modify/write
+transactions.
\begin{table}
\begin{center}
@@ -84,8 +78,7 @@ specialized already...}
\multicolumn{1}{|c|}{Parallel File System} & \cmark & \cmark & \cmark & & & \\\hline
\multicolumn{1}{|c|}{Cloud Object Storage} & & & \cmark & & & \\\hline
\multicolumn{1}{|c|}{Mapreduce} & & & & \cmark & & \\\hline
-\multicolumn{1}{|c|}{Key-value Store} & \cmark & \cmark & \cmark & & \cmark & \\\hline
-\multicolumn{1}{|c|}{NOSQL Databases} & & \cmark & \cmark & & \cmark & \cmark \\\hline
+\multicolumn{1}{|c|}{NOSQL Key-value Store} & \cmark & \cmark & \cmark & & \cmark & \cmark \\\hline
\end{tabular}}
\end{center}
\caption{Distinguishing requirements for popular scalable storage data models}
hooks/post-receive
--
1
0
branch, ticket-227, updated. 1d6834bbaec12013f0431b791dc5bca4e376cdd6
by noreply@mcs.anl.gov 20 Jun '13
by noreply@mcs.anl.gov 20 Jun '13
20 Jun '13
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "".
The branch, ticket-227 has been updated
via 1d6834bbaec12013f0431b791dc5bca4e376cdd6 (commit)
from cac2ce49468986a08694ccfa03ac45819a6d109c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1d6834bbaec12013f0431b791dc5bca4e376cdd6
Author: Phil Carns <carns(a)mcs.anl.gov>
Date: Thu Jun 20 16:26:24 2013 -0400
draft summary installation instructions
-----------------------------------------------------------------------
Summary of changes:
code/INSTALL | 26 ++++++++++++++++++++++++++
code/src/aesop/parser/README.txt | 31 -------------------------------
2 files changed, 26 insertions(+), 31 deletions(-)
create mode 100644 code/INSTALL
delete mode 100644 code/src/aesop/parser/README.txt
Diff of changes:
diff --git a/code/INSTALL b/code/INSTALL
new file mode 100644
index 0000000..e8ded7e
--- /dev/null
+++ b/code/INSTALL
@@ -0,0 +1,26 @@
+External prerequisites
+==============================
+
+Please install the following:
+
+* c-utils (git clone git://git.mcs.anl.gov/c-utils)
+* aesop (http://trac.mcs.anl.gov/projects/aesop)
+
+Configuring Triton
+=================
+
+./configure \
+ --with-aesop=<AESOP_INSTALL_PREFIX> \
+ --with-c-utils=<C-UTILS_INSTALL_PREFIX> \
+ --prefix=<TRITON_INSTALL_PREFIX>
+
+Building Triton
+===============
+
+* Build
+ make
+
+* Some test programs can be built by naming them explicitly as in the
+ following example:
+ make src/transactional-osd/tests/tosd1
+
diff --git a/code/src/aesop/parser/README.txt b/code/src/aesop/parser/README.txt
deleted file mode 100644
index e0e9407..0000000
--- a/code/src/aesop/parser/README.txt
+++ /dev/null
@@ -1,31 +0,0 @@
-
-How to install the necessary Haskell libraries for Aesop:
-
-1) Install cabal
-
-a) Install the easy way:
-apt-get install cabal-install
-
-or:
-b) Set up a local cabal installation:
-./maint/hs/setup-cabal-local
-
-2) Set up the required Haskell libraries
-./maint/hs/setup-hs-local
-
-3) Set up Aesop:
-./maint/hs/setup-aesop
-
-On a given workstation OS installation, steps 1) and 2) are applied
-only once. Step 3) is applied for each working directory.
-
-On systems without Haskell binary packages (ghc), you'll need to do:
-
-* Download/Build/Install ghc from http://www.haskell.org/ghc/
-* Download/Build/Install MTL from http://hackage.haskell.org/cgi-bin/hackage-scripts/package/mtl
-* Download/Build/Install happy from http://www.haskell.org/happy/
-* Download/Build/Install alex from http://www.haskell.org/alex/
-
-* Then run: setup-aesop
-
-NOTE: Cabal is the recommended method.
hooks/post-receive
--
1
0