1. Complete the experimental plan at least the single machine experiments on Chord as mentioned in yesterday's meeting.
2. Begin the experiment of Chord by construct the experimental environment.
A little reversal according to the above descriptions is that I am beginning with the experimental environment construction. I will record the whole process for future usage:
I am constructing the environment on my Mac laptop, this means that there are some risks that some problems might emerge when I working on the Fedora Linux where is the practice environment. Just keep this in mind is fine.
Source files are settled in ~/src/
Each package has its own build directory in ~/build/
From the very beginning, I have nothing installed on my mac. I have to CMM(configure-make-make_install) everything. There is a dependency across the serials of packages which is considered to be required and necessary.
Chord ---> sfslite (SFS)
Chord ---> Berkeley DB
Chord visualisation ---> vis ---> GTK+ (for Mac, Maybe not necessary for Linux)
Here I list the corresponding websites of these toolkits:
Chord: http://pdos.csail.mit.edu/chord/howto.html
sfslite: http://www.okws.org/doku.php?id=sfslite
GMP: http://gmplib.org/
vis: (build-in on Mac, so not sure if GTK+is necessary The build-in vis is totally different. Need to install the vis provided by Chord separately.)
GTK+ (for Mac): http://gtk-osx.sourceforge.net/
CMM process:
1. Build GMP:
no special, just CMM. make sure using "make check" to check the compile results after "make" it.
In the later build, I added a "--enable-cxx" options when I configure it.
2. Build sfslite:
need to append the "--with-sfsmisc" after "configure". "make check" is also available but nothing to check.
The version is changed from 1.2.7 to 0.8.16 because some problems emerging when configure chord.
There is a long story here. Choosing the right version is the most crucial step.
3. Build Berkeley DB 4.8.26
Not sure whether my settings are right or not. Just test it later on.
Configure process:
/dist/configure --enable-compat185 --enable-cxx
when I was trying to add --enable-java there is something wrong. a file can not be founded. So I "make realclean" to wipe out every thing.
Make process:
When I neglected --enable-java, everything worked smoothly.
Install process;
It is much less than I supposed. So I successfully installed berkeley DB.
3. Build Berkeley DB 4.4.20
It works much more smoothly than 4.8.26. One thing that I noticed is that 4.4.20 is released by sleepycat, while 4.8.26 is released by Oracle.
I used the quite same options that I used in 4.8.26 including --enable-java. It works good this time.
Maybe 4.8.26 require a rather newer version of JDK, because the Java in Mac is not be updated for ages.
After checking the configure.in file of Chord source, I found the accepted sfslite version is up to 4.6 from 3. <<CAUTION:>> So I changed the sfslite from version 4.4.20 to version 4.6.20 in experiments after 26/05/2013.
Dramatically, the error moved to SFSlite side. the configure tool require a latest version of SFSlite!!!
大哥!!source 文件不能乱考好不好??!!再试试,全部重装。
4. Build Chord 1.0
Quite normal process. Follow the instructions on the website where the detailed description is stated.
Something should be noticed:
1. Choose the right version for each tool:
GMP 5.0.1
sfslite 0.8.17 (obtain from svn)
Berkeley DB 4.4.20
Chord 0.1 (lastest version)
When retrieve the source, do use CVS, SVN or Mercurial (this kind of tools) because the tar ball of sfslite 0.8.17 in the snapshot is not complete without "svc" directory.
2. Get ride of "cred" error when build sfslite.
Change ./async/sysconf.h according to the latest version of the file in sfslite 1.2.7. This problem is because the latest version of Linux has no "creb" definition.