Skip to main content

Slowness, Unreliability, and Errors are Pervasive to Facebook

Facebook (FB) is already part of life for millions of individuals across the globe. It's already among the Internet giants like Google, Yahoo, YouTube, Amazon, & e-Bay. It has evolved as both a social interaction tool & a real-time communication tool (many Yahoo & MSN messenger users have switched to FB because of the chat feature). Unfortunately, most users will agree that FB is nowhere close the standards set by Google, YouTube, & Amazon when it comes to responsiveness, reliability, & availability. Personally, I have experienced extremely slow page loading, many error messages, not allowing me to login or post messages, and show only subset of postings by others. Hence, I don’t depend on FB to contact others & have a low appreciation as a useful service.
FB seems to be relying on extensive JavaScript & extended variants of MySQL, PHP, & Memcached. It's understandable that FB has to handle so much data, users, & their relationships. Unfortunately, heir underlying architecture seems to be not scalable. MySQL & PHP may be extended only to a certain extent. May be FB needs to look into completely new approaches like what Google (MapReduce, GFS) & Amazon (Dynamo) have done. Alternatively, many poorly written 3rd partly applications are breaking FB than making it. I don't have a solution for these problems, but I feel this is a good opportunity for research in handling large-scale data objects in a multi-user interaction based distributed environment.


Popular posts from this blog

1. Building P2P Simulators with OverSim - Where to Begin

This could be a series of blog posts about extending or developing your own OverSim applications & overlay networks. OverSim has a minimal tutorial on writing your own application & overlay network; however, it doesn't show the big picture. So, I'm wasting lots of time playing with code & trying to understand the rest. Good thing is, I like it more & more as I understand. You need to change/develop only a few things, but finding out which ones is a hell of a task. I hope this will not only make my life easy but also will be useful to new comers. Here's what you need to do: You need some background on OMNeT++ OverSim extend OMNeT++. But sometime it has its own way of doing things (to make your task even simple) so understand the differences.Develop several OMNeT++ simulators. TicToc is a good one to start with. Extend it as you imagine.Read Towards a Common API for Structured Peer-to-Peer Overlays, which is the basis for OvseSim's API. Here'…

Python Code to Calculate Gini index/coefficient, Robin Hood index, & Lorenz curve

Following Python code can be used to calculate Gini index, Gini coefficient, Robin Hood index, and points of Lorenz curve. Lorenz curve can be also plot if matplotlib is installed.
It's based on the steps given by Peter Rosenmai.


Other online tools:

Describing Experimental/Simulation Setup

Sometimes the results of a performance analysis may depend on the computers used and/or specific features of software/libraries. In such cases it is extremely important to describe the experimental/simulation set up in details. It enables others to repeat those experiments as well as check whether the results are rigorous, statistically sound, and unbiased. Unfortunately, "Simulation Setup" is the shortest section in many research papers where authors try to save space by cutting down as much as details. Here are some tips on what to include (in addition to describing the experimental/simulation setup) based on my experiences:
Type of Simulation Are the results based on Experimentation, Emulation, or Simulation? If simulations also mention further details like whether it is Discrete Event, Montacarlo, Stochastic, or Deterministic simulation. Are the results for Steady, Dynamic, Starting/ramp-up, or Terminating state(s)?Number of Experiments/Simulations No of sampl…