Thursday, December 17, 2009

Tuesday, December 08, 2009

I Can Feel the Happiness of a Farmer

To me November happened to be the harvesting season. I have harvested what I have cultivated few months back with many sleepless nights and long stressful days at work. In the month of November I became a proud farmer in the field of computing.

Last month we won an award for Dcache at e-Swabhimani - 2009 and my paper on Dcache (which was a work in progress) was accepted to be presented at eAsia - 2009 which I see as the harvest of my hard work at Lanka Software Foundation. In few days we will be releasing dcache-1.0.0-rc1 release candidate (getting ready to sell the harvest). At the same time I'm excited about the revival of my pet project Bassa (which I did for Google Summer of Code in 2007 as one of my own ideas). As of this writing I'm helping a group of 3rd year students at UCSC to complete the front-end of WS enabled Bassa server. I hope in few weeks it will be ready and running again at UCSC network taking care of everyone's large file download utilising the bandwidth effectively. I'm now thinking about releasing bassa-2.0.0-rc1 in January.

I have few ideas in distributed/parallel computing brewing in my mind for the next year. 2010 will be a time for expanding my field with 3 or 4 projects running parallel (including my MS project and a very very personal project which may lead to a social event). I will be blogging about these new projects and status of bassa/dcache and a possible integration of bassa and dcache in the coming days.

Thursday, June 11, 2009

Dalesa - Cache (Dcache) a Distributed Web Cache Based on Libdalesa

At LSF we have developed a P2P web cache which has the potential to replace any centralized web cache like Squid. This is the project which I have lead, designed and coded so far with two other guys named Nuwan and Nishshanka. At the moment code which is still being developed is available here. You can get it's full functionality at the moment though it is not ready for a release yet due to some missing pieces like admin web UI component and win32 port. The software comes in two components. The core of the system is libdalesa, it is the core library we have developed as a group communication framework. The other component is dcache which is the web cache that uses libdalesa for remote cache object lookups. libdalesa is a generic framework for group communication which currently supports IP multicasting. However in the future we will make it an abstract layer which will encapsulate numerous group communication protocols like Pastry/Scribe. Once it is completed there will be more innovations based on libdalesa group communication framework apart from dcache. The architectural diagram is illustrated in Figure 1.



The dcache has to be installed in all nodes that are willing to take the advantage of the content mesh. Once installed, the browser or any user agent should start using it's local dcache as a proxy. dcache can then find nodes with cached URLs with appropriate freshness and promote them from peer proxy status to parent proxy state on the fly and on a per request basis. The Figure 2 illustrates how dcache operates in a networked environment. dcache supports following HTTP features as well.


  1. Persistent connections

  2. HTTP pipe-lining

  3. HTTP tunneling

  4. Caching based on Expire, ETag, Last-Modified-Date, Cache-Control headers






We have tested this system on IEEE 802.11a/b/g networks in both infrastructure and ad-hoc mode and also in IEEE 802.11s mesh networks. Performance in those networks were fine and up to the expectations. Right now we are busy porting the system to Windows platform, in next couple of weeks we will hopefully complete the Windows port and the Admin UI driving the project towards it's first release.

Friday, January 23, 2009

Got LSF Fellowship

After two years from graduation I joined Lanka Software Foundation on January 05th 2009. At LSF I will be a senior software engineer and a team lead. This year LSF is planning to develop some P2P applications and a framework for P2P communication based on Multicasting/DHT etc. Initially we will work on a simple P2P substrate and a P2P web cache on top of it. We are also focused on deploying this application on XO laptops developed by OLPC project, and we believe it's mesh technology (IEEE 802.11s) will get utilized fully as mesh networks seems to be ideal for P2P.