Computer Scientist

Thursday, 13 May 2010

Hard working on Compilation

How to extract tar file in Linux with additional appendix.

tar -jxvf ***.tar.bz2

tar -zxvf ***.tar.gz

Today, I have to change my work to Fedora Linux due to the stuck on my Mac.

Firstly, I am using gmp 4.3.2 instead of 5.0.1.

Secondly, I am going to install sfslite. Let's try 0.8.17 firstly. and then 1.0.0.
    0.8.17 still does not work like the situation in my Mac.
  

Tuesday, 11 May 2010

<--Complete!!-->Concret Working Day

There are two works to do today:
    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) ---> GMP

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.

Monday, 10 May 2010

Agenda on 10/05/2010 meeting

What I next need to do is to plan an experiment to approve that
    1. the hotspots emergence and
    2. the consistent hashing's vulnerability
on load balancing.

This is for Chord. This step is used to find out the disadvantages of Chord. Because it is out of date, there must be a lot of problems.

Then evolved into Kademlia, how Kademlia solved these problems. How effectively Kademlia solved these problems? And then to prove them.

Also find some problems of Kademlia. Then to propose some methods to solve them.

Using this evolution method, to expend to BitTorrent and eDonkey.

Wednesday, 28 April 2010

Working in the midnight

A general P2P website is found today.

http://torrentfreak.com/

Monday, 26 April 2010

A rainy day with fresh air. Perfect for working. ^^

Today's work to do:
1. COMP 70100's paper, need to be complete by the end of today.
2. Refine the slides for presentation.
      i. Insert the bland sections
      ii. Refine the rest sections, experiment insertion
3. What is the problem with consistent hashing?
      i. The relationship between consistent hashing and normal hashing
      ii. The relationship between consistent hashing and Chord, Peer-to-Peer.

Thursday, 22 April 2010

Today's Work

 state-of-the-art

n.
    1. 艺术级的
adj.
    1. (科技、机电等产品)最先进的,最高级的


1. Completing the Slides of Presentation on 6th of May.
       Following each application of Peer-to-Peer approach.

2. Modifying the First Year Report for COMP70100.

Wednesday, 21 April 2010

An idea that is worth to think further

Today, when I writing my presentation slides. An idea comes into my mind, which is that how people to keep their contacts update? Because when some of their friends contacts information is not valid anymore there must be some actions to update if they desired to do so. This is quite similar with the stale routing information existing in the routing table of Peer-to-Peer system.

Futher thinking: what kind of situations can be identified to associated with the contacts out of date in social life, such as the node is failed or changed its IP address.

............