Excellent read on ACID

I was reading AWS white paper on Database migration. The following excerpt covered clean and concise description on Database Atomicity and ACID properties. Worthy read!

Amazon Web Services – Best Practices for Migrating from RDBMS to DynamoDB August 2014

The growth of “internet scale” web applications, such as e-commerce and social media, the explosion of connected devices like smart phones and tablets, and the rise of big data have resulted in new workloads that traditional relational databases are not well suited to handle. As a system designed for transaction processing, the fundamental properties that all RDBMS must support are defined by the acronym ACID: Atomicity,
Consistency, Isolation, and Durability. Atomicity means “all or nothing” – a transaction executes completely or not at all. Consistency means that the execution of a transaction causes a valid state transition. Once the transaction has been committed, the state of the resulting data must conform to the constraints imposed by the database schema. Isolation requires that concurrent transactions execute separately from one another. The isolation property guarantees that if concurrent transactions were executed in serial, the end state of the data would be the same. Durability requires that the state of the data once a transaction executes be preserved. In the event of power or system failure, the database should be able to recover to the last known state. These ACID properties are all desirable, but support for all four requires an architecture that poses some challenges for today’s data intensive workloads. For example, consistency requires a well-defined schema and that all data stored in a database conform to that schema. This is great for ad-hoc queries and read heavy workloads.
For a workload consisting almost entirely of writes, such as the saving of a player’s state in a gaming application, this enforcement of schema is expensive from a storage and compute standpoint. The game developer benefits little by forcing this data into rows and tables that relate to one another through a well-defined set of keys. Consistency also requires locking some portion of the data until the transaction modifying it completes and then making the change immediately visible. For a bank
transaction, which debits one account and credits another, this is required. This type of transaction is called “strongly consistent.” For a social media application, on the other hand, there really is no requirement that all users see an update to a data feed at precisely the same time. In this latter case, the transaction is “eventually consistent.” It is far more important that the social media application scale to handle potentially millions of Simultaneous users even if those users see changes to the data at different times. Scaling an RDBMS to handle this level of concurrency while maintaining strong consistency requires upgrading to more powerful (and often proprietary) hardware. This is called “scaling up” or “vertical scaling” and it usually carries an extremely high cost. The more cost effective way to scale a database to support this level of concurrency is to add server instances running on commodity hardware. This is called “scaling out” or
“horizontal scaling” and it is typically far more cost effective than vertical scaling.

NoSQL databases, like Amazon DynamoDB, address the scaling and performance challenges found with RDBMS. The term “NoSQL” simply means that the database doesn’t follow the relational model espoused by E.F Codd in his 1970 paper A Relational Model of Data for Large Shared Data Banks, 1 which would become the basis for all modern RDBMS. As a result, NoSQL databases vary much more widely in features and
functionality than a traditional RDBMS. There is no common query language analogous to SQL, and query flexibility is generally replaced by high I/O performance and horizontal scalability. NoSQL databases don’t enforce the notion of schema in the same way as an RDBMS. Some may store semi-structured data, like JSON. Others may store related
values as column sets. Still others may simply store key/value pairs.
The net result is that NoSQL databases trade some of the query capabilities and ACID properties of an RDBMS for a much more flexible data model that scales horizontally.
These characteristics make NoSQL databases an excellent choice in situations where use of an RDBMS for non-relational workloads (like the aforementioned game state example) is resulting in some combination of performance bottlenecks, operational complexity, and rising costs. DynamoDB offers solutions to all these problems, and is
an excellent platform for migrating these workloads off of an RDBMS.


CD to Mp3 converter

If you have quite a lot of old Audio CD collections and wanted to listen those songs in mobile, iPod or iPad. Then you need a tool to rip the audio files from CD to mp3. There are quite a lot of free tools available.

Do you know that the same thing can be achieved using windows? Yes, Windows Media Player that comes with windows operating system can very much rip your Audio CD songs to mp3.

I stumbled upon this post/guide on how to convert to mp3 from Audio CD. Hope it helps



Remove java 8 and install java 7 in Ubuntu

There are times when you need a specific version of Java to be installed instead of the latest version. The following post will brief on the steps required to remove Java 8 and install Java 7 in Ubuntu 16.04

Always use the latest version of Java as there are quite a lot of bug fixes and security vulnerability has been fixed.

Removing Java 8
Open Terminal and enter the following commands.

sudo update-alternatives –remove-all java
sudo update-alternatives –remove-all javac
sudo update-alternatives –remove-all javaws
sudo rm -rf /usr/lib/jvm/jdk1.8.0

Install Java 7
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update

Since Java 7 is no longer available in their repository, you need to manually download it from Oracle site.

Once the JDK 7 tar (jdk-7u80-linux-x64.tar.gz) is downloaded. Paste it in the below location

Now run the following command
sudo apt-get install oracle-java7-installer

After installation you also need to update alternatives by running the following command.

sudo update-alternatives –install “/usr/bin/java” “java” “/usr/lib/jvm/java-7-oracle/jdk1.7.0_80/bin/java” 1
sudo update-alternatives –install “/usr/bin/javac” “javac” “/usr/lib/jvm/java-7-oracle/jdk1.7.0_80/bin/javac” 1
sudo update-alternatives –install “/usr/bin/javaws” “javaws” “/usr/lib/jvm/java-7-oracle/jdk1.7.0_80/bin/javaws” 1

Once the above steps are completed. Check the java version from terminal
javac -version
java -version

It should display jdk 1.7

Tech, Developer conference that one should not miss!

Working as a developer, tech lead or an architect, one thing that you should continue pursue is learning. Either it could be new technologies &  framework or any new disruptive ideas or tools.

Some of the key developer conferences that you need to block your calendar are:

  • Apple WWDC
  • Google I/O
  • Facebook Developer conference
  • Open source summit.

If you are not able to attend one, you can still watch those couple of weeks later as part of their youtube channel.

I stumbled upon this blog which has the list of all the dev conference that happens throughout the world.


if you are looking for a list of the events for the year, the following site covers exhaustive list.



Quick Calculation using Windows Calculator App

If you are looking for an application for calculating the difference between 2 dates, or to find the mortgage, vehicle lease, fuel economy. Then you do not have to go to google.com or download MS Office spreadsheets. Some of the basic calculation needs are available in the calculator application as part of Windows Operating System.


The windows Operating system that i use is Windows 7 Ultimate.

Windows update not working..

If you are facing issues on windows 7 not updating the patches after the first install. There could be issues specific to few pre-requisite installed not updated properly. After a long search on the internet finally able to find the list of updates required to fix this issue.

    For 64 bit









    for 32 bit









The following link has the full details.

[Fix] Windows 7 Keeps Checking for Updates for Hours