Skip to content

Commit

Permalink
Merge pull request #41 from DICL/update-1.8.0
Browse files Browse the repository at this point in the history
Updated VDFS to VeloxDFS 1.8.0
There are several changes:

-RemoteMR/PeerMR is substituted by TaskExecutor and TaskExecutorRouter.
-Mapreduce routines only depends on the DFS client API.
-VeloxDFS and VeloxMR nodes runs in two different process.
-Reducer write its output to its local machine (Vague optimization).
-Removed lots of deprecated source code

It is not solid stable but the most stable we have gotten so far
  • Loading branch information
vicentebolea authored Oct 9, 2017
2 parents edde6c0 + bbb1e0b commit d726257
Show file tree
Hide file tree
Showing 173 changed files with 6,135 additions and 5,981 deletions.
57 changes: 57 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
---
Language: Cpp
# BasedOnStyle: Google
AccessModifierOffset: -1
ConstructorInitializerIndentWidth: 4
AlignEscapedNewlinesLeft: true
AlignTrailingComments: true
AllowAllParametersOfDeclarationOnNextLine: true
AllowShortBlocksOnASingleLine: false
AllowShortIfStatementsOnASingleLine: true
AllowShortLoopsOnASingleLine: true
AllowShortFunctionsOnASingleLine: All
AlwaysBreakTemplateDeclarations: true
AlwaysBreakBeforeMultilineStrings: true
BreakBeforeBinaryOperators: false
BreakBeforeTernaryOperators: true
BreakConstructorInitializersBeforeComma: false
BinPackParameters: true
ColumnLimit: 80
ConstructorInitializerAllOnOneLineOrOnePerLine: true
DerivePointerAlignment: true
ExperimentalAutoDetectBinPacking: false
IndentCaseLabels: true
IndentWrappedFunctionNames: false
IndentFunctionDeclarationAfterType: false
MaxEmptyLinesToKeep: 1
KeepEmptyLinesAtTheStartOfBlocks: false
NamespaceIndentation: None
ObjCSpaceAfterProperty: false
ObjCSpaceBeforeProtocolList: false
PenaltyBreakBeforeFirstCallParameter: 1
PenaltyBreakComment: 300
PenaltyBreakString: 1000
PenaltyBreakFirstLessLess: 120
PenaltyExcessCharacter: 1000000
PenaltyReturnTypeOnItsOwnLine: 200
PointerAlignment: Left
SpacesBeforeTrailingComments: 2
Cpp11BracedListStyle: true
Standard: Auto
IndentWidth: 2
TabWidth: 8
UseTab: Never
BreakBeforeBraces: Attach
SpacesInParentheses: false
SpacesInAngles: false
SpaceInEmptyParentheses: false
SpacesInCStyleCastParentheses: false
SpacesInContainerLiterals: true
SpaceBeforeAssignmentOperators: true
ContinuationIndentWidth: 4
CommentPragmas: '^ IWYU pragma:'
ForEachMacros: [ foreach, Q_FOREACH, BOOST_FOREACH ]
SpaceBeforeParens: ControlStatements
DisableFormat: false
...

17 changes: 14 additions & 3 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,18 @@
This PR Fixes DICL/EclipseMETA#(Which issue?)

Checklist
- [ ] Follows Google Coding Style.
- [ ] At least one reviewer approved (for non-trivial changes).
## BRIEF

## STATUS
- [ ] Its implemented.
- [ ] It compiles.
- [ ] Its tested.
- [ ] Its refactored.

---
Make sure that you squeeze all your commits before merging to master.
You might want to use the following command:

$ git rebase -i #hash key of base commit

---
## EXTRA
8 changes: 4 additions & 4 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
sudo: false
dist: precise
sudo: false
dist: precise
language: cpp

cache:
Expand Down Expand Up @@ -35,5 +35,5 @@ script:
- cd build
- sh ../configure --prefix=`pwd`
- make -j4
- make install
- make -j4 check
- make install
- make -j4 check
75 changes: 45 additions & 30 deletions Makefile.am
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
include tests/Makefile.am

AM_CPPFLAGS = -I@srcdir@/src/common -I@srcdir@/src -include ./config.h $(BOOST_CPPFLAGS)
AM_CPPFLAGS = $(CPPFLAGS) -I@srcdir@/src/common -I@srcdir@/src -include ./config.h $(BOOST_CPPFLAGS)
AM_CXXFLAGS = $(CXXFLAGS) -Wall

bin_PROGRAMS = eclipse_node dfs __velox_mapreduce
bin_PROGRAMS = eclipse_node veloxdfs __velox_mapreduce
bin_SCRIPTS = src/client/veloxmr src/client/veloxmr_lib.py

messages_files = src/messages/boundaries.cc \
Expand All @@ -18,7 +18,6 @@ messages_files = src/messages/boundaries.cc \
src/messages/fileupdate.cc \
src/messages/blockinfo.cc \
src/messages/blockupdate.cc \
src/messages/task.cc \
src/messages/reply.cc \
src/messages/filerequest.cc \
src/messages/blockrequest.cc \
Expand All @@ -30,6 +29,11 @@ messages_files = src/messages/boundaries.cc \
src/messages/formatrequest.cc \
src/messages/fileexist.cc \
src/messages/metadata.cc \
src/messages/blockstatus.cc \
src/messages/IOoperation.cc

mr_messages_files= src/mapreduce/messages/task.cc \
src/mapreduce/messages/boost_impl.cc \
src/mapreduce/messages/idatainsert.cc \
src/mapreduce/messages/igroupinsert.cc \
src/mapreduce/messages/iblockinsert.cc \
Expand All @@ -42,30 +46,32 @@ messages_files = src/messages/boundaries.cc \
src/mapreduce/messages/iblockinfo.cc \
src/mapreduce/messages/key_value_shuffle.cc \
src/mapreduce/messages/finish_shuffle.cc \
src/messages/taskstatus.cc \
src/messages/job.cc \
src/messages/jobstatus.cc \
src/messages/subjob.cc \
src/messages/subjobstatus.cc \
src/messages/idatakeys.cc \
src/messages/finishmap.cc \
src/messages/nodes_shuffling.cc
src/mapreduce/messages/taskstatus.cc \
src/mapreduce/messages/job.cc \
src/mapreduce/messages/jobstatus.cc \
src/mapreduce/messages/idatakeys.cc \
src/mapreduce/messages/finishmap.cc \
src/mapreduce/messages/nodes_shuffling.cc

# libs -----
lib_LTLIBRARIES = libvdfs.la
lib_LTLIBRARIES = libvdfs.la libvmr.la
libvdfs_la_SOURCES = $(messages_files) \
src/client/dfs.cc \
src/client/vdfs.cc \
src/common/hash.cc src/common/settings.cc \
src/common/logger.cc src/common/histogram.cc \
src/common/context.cc src/common/dl_loader.cc \
src/common/context_singleton.cc \
src/client/vmr.cc \
src/mapreduce/output_collection.cc
src/common/context_singleton.cc

libvdfs_la_LDFLAGS = $(BOOST_LDFLAGS) -version-info 0:0:0
libvdfs_la_LIBADD = -lboost_system -lboost_serialization -lboost_coroutine -lboost_thread -lboost_context -ldl

libvmr_la_LDFLAGS = $(BOOST_LDFLAGS) -version-info 0:0:0
libvmr_la_LIBADD = -lboost_system -lboost_serialization -lboost_coroutine -lboost_thread -lboost_context -ldl
libvmr_la_SOURCES = $(mr_messages_files) \
src/client/vmr.cc \
src/mapreduce/output_collection.cc

# Binaries ----
if BOOST_STATIC
AM_LDFLAGS = -static $(BOOST_LDFLAGS) -Wl,--start-group -Wl,-Bstatic,-lboost_system,-lboost_serialization,-lboost_coroutine,-lboost_thread,-lboost_context,-Bdynamic
Expand All @@ -76,37 +82,46 @@ LDADD = libvdfs.la -lboost_system -lboost_serialization -lboost_co
endif

eclipse_node_SOURCES = src/targets/node_main_mr.cc \
src/network/channel.cc \
src/network/asyncchannel.cc \
src/network/p2p.cc \
src/network/server.cc \
src/network/acceptor.cc \
src/network/connector.cc \
src/network/client_handler.cc \
src/network/server_handler.cc \
src/network/simple_router.cc \
src/network/router_decorator.cc \
src/nodes/machine.cc \
src/nodes/peerdfs.cc \
src/nodes/local_io.cc \
src/nodes/remotedfs.cc \
src/nodes/router.cc \
src/nodes/directory.cc \
src/nodes/node.cc \
src/mapreduce/nodes/peermr.cc \
src/mapreduce/nodes/remotemr.cc \
src/blocknode/local_io.cc \
src/blocknode/block_node.cc \
src/blocknode/block_node_router.cc \
src/fileleader/directory.cc \
src/fileleader/file_leader.cc \
src/fileleader/file_leader_router.cc \
src/mapreduce/task_executor.cc \
src/mapreduce/task_executor_router.cc \
src/mapreduce/fs/directorymr.cc \
src/mapreduce/fs/iwriter.cc \
src/mapreduce/fs/ireader.cc \
src/mapreduce/executor.cc \
src/mapreduce/py_executor.cc
src/mapreduce/task_handler.cc \
src/mapreduce/task_cxx.cc \
src/mapreduce/task_python.cc

eclipse_node_LDADD = $(LDADD) -lpython2.7
__velox_mapreduce_SOURCES = src/targets/veloxmr_mapreduce.cc
eclipse_node_LDADD = libvmr.la $(LDADD) -lpython2.7

dfs_SOURCES = src/client/client.cc
veloxdfs_SOURCES = src/targets/client.cc \
src/client/cli_driver.cc

__velox_mapreduce_SOURCES = src/targets/veloxmr_mapreduce.cc
__velox_mapreduce_LDADD = libvmr.la $(LDADD) libvdfs.la

pkginclude_HEADERS = src/client/vdfs.hh \
src/client/dfs.hh \
src/client/vmr.hh \
src/mapreduce/output_collection.hh

modelincludedir = $(pkgincludedir)/model
modelinclude_HEADERS = src/client/model/metadata.hh

if COPY_SAMPLES
sysconf_DATA = doc/eclipse.json
endif
Expand Down
75 changes: 43 additions & 32 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
[![Build Status](https://travis-ci.org/DICL/VeloxMR.svg?branch=mapreduce)](https://travis-ci.org/DICL/VeloxMR)
[![Slack room](https://img.shields.io/badge/slack-join-pink.svg)](https://dicl.slack.com/messages/general/)
<a href="https://zenhub.com"><img src="https://raw.githubusercontent.com/ZenHubIO/support/master/zenhub-badge.png"></a>
[![ZenHub](https://raw.githubusercontent.com/ZenHubIO/support/master/zenhub-badge.png)](https://zenhub.com)
[![Analytics](https://ga-beacon.appspot.com/UA-87474237-1/veloxmr)](https://github.com/DICL/VeloxMR)
BRIEFING
---
VeloxMR {#mainpage}
========

VeloxMR is a MapReduce framework implemented in C++ on the top of VeloxDF
Expand All @@ -16,17 +17,19 @@ USAGE
=====
VeloxMR default launcher is not included in this repository, if you want to use it you can find it [here][eclipsed].

The reason to not to include the launcher inside the package is to let the user to chose any launcher, options are:
The reason not to include the launcher inside the package is to let the user to choose any launcher or service managers such as:
- systemd/init.d
- puppet/chef/salt

Once the system is running, you can interact with EclipseDFS with the following commands:
Once the system is up and running, you can interact with VeloxDFS with the following commands:
```
$ dfs ls|put|get|rm|format|show
$ dfs put|get|cat|ls|rm|format|pget|update|append
```

COMPILING & INSTALLING
=====================
======================

_Detailed information can be found in the wiki of this repository_

Compiling requirements
----------------------
Expand All @@ -41,11 +44,11 @@ For single user installation for developers

$ mkdir -p local_eclipse/{tmp,sandbox} # Create a sandbox directories
$ cd local_eclipse # enter in the directory
$ git clone [email protected]:DICL/EclipseDFS.git # Clone the project from github
$ cd EclipseDFS
$ git clone [email protected]:DICL/VeloxDFS.git # Clone the project from github
$ cd VeloxDFS
$ sh autogen.sh # Generate configure script
$ cd ../tmp # Go to building folder
$ sh ../EclipseDFS/configure --prefix=`pwd`/../sandbox # Check requirements and generate the Makefile
$ sh ../VeloxDFS/configure --prefix=`pwd`/../sandbox # Check requirements and generate the Makefile

# If you get a boost error go the FAQ section of the README

Expand All @@ -57,11 +60,28 @@ Now edit in your **~/.bashrc** or **~/.profile**:
export PATH="/home/*..PATH/To/eclipse/..*/sandbox/bin":$PATH
export LIBRARY_PATH="/home/*..PATH/To/eclipse/..*/sandbox/lib"
export C_INCLUDE_PATH="/home/*..PATH/To/eclipse/..*/sandbox/include"
export MANPATH=`manpath`:/home*..PATH/To/eclipse/..*/sandbox/share/man

For the configuration refer to the manpage:

$ man eclipsefs
Default settings for VELOXDFS
-----------------------------

"log" : {
"type" : "LOG_LOCAL6"
"name" : "ECLIPSE"
"mask" : "DEBUG"
},

"cache" : {
"numbin" : 100,
"size" : 200000,
"concurrency" : 1
},

"filesystem" : {
"block" : 137438953,
"buffer" : 512,
"replica" : 1
}

FAQ
---
Expand All @@ -70,27 +90,18 @@ FAQ
- _Answer_ : It probably means that you do not have boost library installed in
the default location, in such case you should specify the boost library location.
```
sh ../EclipseDFS/configure --prefix ~/sandbox --with-boost=/usr/local --with-boost-libdir=/usr/local/lib
sh ../VeloxDFS/configure --prefix ~/sandbox --with-boost=/usr/local --with-boost-libdir=/usr/local/lib
```
In this example we assume that the boost headers are in `/usr/local/include` while the library files
are inside `/usr/local/lib`.

AUTHOR
======

- __AUTHOR:__ [Vicente Adolfo Bolea Sanchez] [vicente]
- __AUTHOR:__ [MooHyeon Nam] [mh]
- __AUTHOR:__ [WonBae Kim] [wb]
- __AUTHOR:__ [KiBeom Jin] [kb]
- __AUTHOR:__ [Prof. Nam Beomseok] [nb]
- __INSTITUTION:__ [DICL laboratory] [dicl] at [UNIST]

<!-- Links -->
[vicente]: https://github.com/vicentebolea
[ym]: https://github.com/youngmoon01
[dicl]: http://dicl.unist.ac.kr
[mh]: https://github.com/nammh
[wb]: https://github.com/zwigul
[kb]: https://github.com/kbjin
[eclipsed]: https://github.com/DICL/eclipsed
[nb]: http://dicl.unist.ac.kr
AUTHORS
=======

- __AUTHOR:__ [Vicente Adolfo Bolea Sanchez](http://vicentebolea.me)
- __AUTHOR:__ [MooHyeon Nam](https://github.com/nammh)
- __AUTHOR:__ [WonBae Kim](https://github.com/zwigul)
- __AUTHOR:__ [KiBeom Jin](https://github.com/kbjin)
- __AUTHOR:__ [Deukyeon Hwang](https://github.com/deukyeon)
- __AUTHOR:__ [Prof. Nam Beomseok](http://dicl.unist.ac.kr)
- __INSTITUTION:__ [DICL laboratory](http://dicl.unist.ac.kr) at _UNIST_
3 changes: 0 additions & 3 deletions configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,8 @@ AM_INIT_AUTOMAKE([foreign subdir-objects])
AM_SILENT_RULES([yes])
LT_INIT([dlopen])

#AC_CONFIG_MACRO_DIR([./m4/])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([Makefile ])
AC_CONFIG_FILES([tests/nodes_executor], [chmod +x tests/nodes_executor])
AC_CONFIG_FILES([tests/eclipse_debug], [chmod +x tests/eclipse_debug])
AC_CONFIG_FILES([src/client/veloxmr], [chmod +x src/client/veloxmr])

AM_CONDITIONAL([DEFAULT_CXXFLAGS], [test -z "$CXXFLAGS"])
Expand Down
Loading

0 comments on commit d726257

Please sign in to comment.