Week One
(June 6th - June 12)

This week, I researched ways of protecting critical data from being lost during power failures. We looked into ways of protecting critical data from sudden power loss. Checkpointing and the switch to machines with more power were the two solutions considered.

Because some computations are time and energy consuming, and renewable energies are precious joules, there is need to save the state of such computation when power goes off. Checkpointing does this process of saving state and enabling the application to resume its computation from where it left off rather than from the beginning. Because checkpointing also consume some energy, we considered the various times during which this could be done and the advantages/disadvantages of performing checkpointing at these times. The times came up with were as follows:
  • At a defined time interval
  • When power is about to go below a set minimum
  • When power goes down
  • When a quantitative amount of work have been completed since the start of the application or since the last checkpointing.
I ended by writing a java program that search a file for a particular string and does checkpointing.

The second solution that attempts to protect the critical data from power failures was the switch to machines with more energy. Here, server clustering was an option. Various ways of clustering servers for better efficiency for the given situation were considered: symmetric clustering, asymmetric clustering, geographical clustering, etc…

The rest of the time was spent adjusting to the new environment. I met with my landlord and the other people in my building. They all help me get information on how to apply for internet services during my stay and where to find my way around the city. I did a lot of exploration by myself though, since most of them went to work during the day.