Tag Archives: twitter bootstrap

GSoC 2014 Update: Caching Plugin – Week 10

This week(end) I was working on getting the cache statistics and live displays to work. I have accomplished part of the work. Part of it still remains and I hope to complete it by tomorrow.

Cache Statistics :

It has to be determined how much of requests each thread is handling. The new functions added are :

  1. cache_process_init – to initialize the cache statistics when the cache plugin is running and when the user interface is started.
  2. cache_thread_init – to initialize the cache statistics for each thread of the server that is running.
  3. cache_update – to update the statistics of the plugin, adding up the request per second that are currently running.
  4. cache_stats_new – each time a new request is assigned to a thread, the number of requests handled by the specific thread is incremented.

Finding mime type of requested file :

Making use of mime type module of Monkey server, I also wrote code to pass the mime type of the requested file to the response header (something that I had not done before). The way to obtain the mimetype of the file requested, is to find out the extension of the file from the url of the request. This is then set to the mime type of the request header in the cache.c file. This is exactly how the server has found the content type of the requested file. This could be used in the cache plugin too. Using the mimetype_find () function present in the server’s source code file – mimetype.c, the mime type is found, by passing the file name.

User interface development

I spent most of my time on figuring out how to include graphs in the user interface and make them display live information. This link : http://stackoverflow.com/questions/22685743/how-to-populate-real-time-data-into-a-twitter-bootstrap-admin-dashboard-theme was useful. I tried to use Flot charts in the user interface. I also had to include jquery.flot.js and jquery.js files to in the dependencies. I figured how to do that.

Adherence to timeline : 

According to the timeline, I need to finish the user interface and start testing from the next day. I hope to complete this task by tomorrow and start testing from the next day or at least by Wednesday.

Code : https://github.com/tssavita/cache-plugin-implementation

Advertisements

GSoC 2014 Update: Caching Plugin for Monkey server – Week 7

This blog post is regarding what I did during the week 7 of my GSoC internship. Due to unexpected emergencies, I could not access my laptop during the past few days because of which I could not send the update for the week on time.
I got some errors while integrating, such as :

bin/monkey: symbol lookup error: <path to monkey source code> /plugins/cache/monkey-cache.so: undefined symbol: je_malloc

I had to enable the –malloc-libc to get it fixed. But with no result. I used PLUGIN_TRACE to find out location of errors. I then tried to play around with the header files in the dependencies folder by including them in the necessary files this seemed to workout for me !
The next issue that I faced was that of a segmentation fault.  I again used PLUGIN_TRACE to debug and find out the location and it turned out that it was being caused due to a null point exception.
These were a few among a list of  other errors that I got.
I then did a basic integration of the caching plugin with the server – just an extra feature to look up files from the cache. I tried testing the performance of the server with and without the caching plugin, with the help of weighttp (a lightweight web server performance benchmarking tool) and found that I have done some grave error because of which the performance of the server deteriorates even more, when I run the server with the caching plugin (which is not supposed to happen !). I am looking into it right now.
Parallely I also tried out some basic tutorials for creation of GUI using Twitter bootstrap and Angular JS. This was the easiest part. But since as of now, the caching plugin is not yet ready, I will be concentrating on it till I get it fixed.
I hope to get it ready and working soon !

Link to code repo : https://github.com/tssavita/cache-plugin-implementation