"The Global Data Plane provides a data-centric glue for swarm applications. The basic primitive is that of a multi-input, multi-output, time-aware secure log. Data inputs are timestamped and rearranged by timestamp. Data can be securely commited to the log in a variety of ways, including via a external consistent transactional model. Data within the log can be randomly read, thereby permitting a variety of data models, including (eventually) a SQL query model. Further, data within a log can be preserved for the long term." (source: https://swarmlab.eecs.berkeley.edu/projects/4814/global-data-plane)
As of October, 2014, the GDP was not yet released. See GDP Java Interface in the TerraSwarm wiki, which is only accessible by people associated with TerraSwarm.
This package consists of a Java interface to the GDP.
Most of the java files were created using JNAerator.
The file GdpUtilities.java contains utilities that were written by hand. These utilities are useful for dealing with the return values of the GDP, which are unsigned longs and thus difficult to use with Java before JDK 1.8.
The apps/
directory contains GDP applications ported from the c-based gdp/apps/
directory.
When the GDP Version number in ../../gdp/gdp_version.h
changes, then make the following changes:
makefile
and change GDPLIBMAJVER
, GDPLIBMINVER
and GDP_PATCH_VERSION
make clean; make
, which will may fail
if GDPLIBMAJVER
is updated.make
command fails, then edit org/terraswarm/gdp/GDP*.java
files and update GdpNMLibrary
to the new version.make
and edit files until the make successfully completes.make install
.$PTII/lib
:
bash-3.2$ svn delete --force $PTII/lib/gdp*.jar D /Users/cxh/ptII/lib/gdp-0.7-0.jar bash-3.2$ cp gdp*.jar $PTII/lib bash-3.2$ svn add $PTII/lib/gdp-0.7-2.jar A (bin) /Users/cxh/ptII/lib/gdp-0.7-2.jar bash-3.2$
GDPLIBMAJVER@
changed, then update the GDP
shared library for the current platform:bash-3.2$ svn delete --force $PTII/lib/libgdp.0.6.dylib D /Users/cxh/ptII/lib/libgdp.0.6.dylib bash-3.2$ cp ../../libs/libgdp.0.7.dylib $PTII/lib bash-3.2$ svn add $PTII/lib/libgdp.0.7.dylib A (bin) /Users/cxh/ptII/lib/libgdp.0.7.dylib bash-3.2$
gdp-N.M-P
string to the new version
in $PTII/configure.in
, $PTII/.classpath.default
and $PTII/build.default.xml
(cd $PTII;autoconf;./configure)
and verify that $PTII/mk/ptII.mk
refers to the new jar file(cd $PTII; svn commit -m "Updated the gdp to 0.7-2." configure.in build.default.xml lib)The above commands are for Mac OS X, which uses .dylib. We delete the .so, which is used by Linux here anyway. The gdp shared library must be updated on the build machine so that the nightly build will successfully run the GDP tests under Linux.
$PTII/configure
:(cd $PTII; autoconf; svn commit -m "configure.in changed." configure)
$PTII/bin/vergil $PTII/ptolemy/actor/lib/jjs/modules/gdp/test/auto/GDPLogCreateAppendReadJS.xml
git add makefile org/terraswarm/gdp/GDP{,_DATUM,_GCL,_GCLMD,_NAME}.java
git commit -m "Updated GDP Java interface to 0.6-1." git push
@since Ptolemy II 10.0