Sunday, December 28, 2014

Why No SQL

Internet applications have changed since I started my career. The following are the trends:
1. The number of concurrent users have been increased with the increase in population.
2. The amount of data has increased,People have started collected data per second, from various embedded devices(Big Data).
3. The data that is collected is not always structured.
With the above reasons, Relational Database is no more a choice. Also we are moving to the Reactive Platforms with the introduction of Dual core and other processors.

Apple,Twitter,facebook and LinkedIn have realized this and start moving away from Relational Databases. There is no single choice for them to adapt.So they came up with their own solutions for timebeing. Later Open Source NoSQL Database projects have started coming into the picture.Today, Everybody have started using the NoSQL Technology. Its clear that it is the right alternative for RDBMS. It is clearly the solution for BigData also.

Also for MNC, Where the number of users are increasing,scaling up has become a mandate. Also Schema-less data model is required to ramp up the data quickly.

The following are the trends:
1. Increase in Global Online population.
2. Increasing in Internet Usage
3. Increase in Smart Phones Users
Earlier Desktop applications used to be there, where users used to download the swing application and access the internet.
After that, Enterprises have migrated to web applications. The browsers have become more competent. We have seen the quick releases of Internet Explorer.Firefox has also come up with the many releases recently. People have started downloading chrome and started using as a fast browser.

Enterprises have started selling their products online with the sucess of Dell. Now almost every enterprise has their own online store.

Especially e-commerce portals should be able to accomodate the scalability of the applications. Scalability here means dynamically supporting growing number of concurrent users.
The following are the drivers:
. Dasari and Diwali offers by the company like Flipkart and Amazon.
. Releases of New Version into the product like Samsung Galaxy and iPhone.
. Growing number of users staying online like online availability on facebook.
. Heavy use of online apps like whats app.

The above are driving the enterprises these days. With Relational Technologies, Architects are finding difficult to reduce the time taken for the application.
Reducing performance time from 200 milliseconds to less have become very difficult. So changing the relation Database layer has become eminent as lot of data processing happens in the backend. so NoSQL is the only alternative.

IOT


 We have been hearing about this term from the Engineering Team, which is working on Embedded Systems. Also Remote Monitoring of the devices have become mandatory for all engineering companies.
So collecting the data of the machine every second. Storing the huge data in the database has become important factor in considering the storage systems for database.
The data is coming from the cars. The Data is coming from the Gas Engines. The Data is coming from the Machines. Huge Data will be pushed from Mobile, Tablets. We see the data published from Java and Android devices is as follows:
1. Java is now run on 3 billion devices.
2. Android is having around 1 billion active users.

Every Customer have realized this and started investing in the projects. Till now the only operational data is available real time. Datawarehouse data is available as reports to only some executive. These data is not available immediately.Now Datawarehouse data need to be available immediately.
The data coming from the embedded systems is continuous. Its a challenge for relational database that require a fixed schema and structured data. The new file systems like hdfs are available to support the unstructured data formats. The customers have started realizing this and started Poc projects on NoSQL Technology.

Big Data:


Sensor Generated Data is huge. As Sensors generate every millisecond. The Data becomes huge if its a day data. Moving these data to the Datawarehouse is fine. Making them available realtime is the need of the hour.
The capturing and using of the data creates the need for a very different database. Much of the new data is unstructured and semi-structured, so developers need a database that efficiently stores the data. Unfortunately oracle data is rigid, schema based
and makes it impossible to quickly incorporate new types of data, its a poor fit for unstructured data.
Finally, We have been seeing ORM tools trying to fix the object oriented and relational databases issues. NoSQL provides a data model that maps better to the application and the database. It is very productive as java clients and javascript client required is very less.
Less code is good for maintaining the projects for long time.

 

Cloud:

During our college days, We used to develop Client/Server applications with Oracle Forms and Oracle Database. Later we shifted to MVC based application using HTML, Servlets\EJB and Database. Later We started the middle ware services exposed through Axis. Later we have started adding one more view layer for mobiles.

Also we have moved from Desktop applications like C# Windows based application to browser based UI applications. Mostly these applications are used internally in the organizations like Agents of the company download the application and use. With the multi-national companies becoming more and more large, and with the increase in the number of employees, browser based applications are eminent.
At the database layer, Relational Databases were very popular. Especially Oracle has become a monopoly by providing stable database. Oracle has also provided many administrative capabilities. But Its mostly a centralized database. So when the need to improve the performance of the database comes into the picture, DBA face lot of nightmares. Here we can suggest the following improvements:
1. To increase the processor cores.
2. To increase the RAM Size
Overall We want to have a bigger hardware like Exadata. But when the users scale up only for a day in the year like Diwali. Its expensive to buy and maintain these servers.


Developer Friendly:


Big Data, IOT and Cloud are changing the way the applications are developed. Oracle has dominated the industry for many decades. Now Architects are turning to NoSQL Databases for the following reasons:
1. Support for Unstructured Data.
2. Support for more users
3. Vendors investing a lot in NoSQL Technology.