Friday, June 17, 2011
Buidling consumer analytics - google way
Thursday, June 9, 2011
Better know your NoSQL before leaving SQL
1. Is NoSQL is the replacement for SQL
Yes, if you say "YES" to following :
a.Is my data is unstructured ?
b.Do my data access patterns lend themselves to demoralization ?
c.Do I expect lot of schema change in my app ?
d.Can I Drop ACID properties ?
e.Do I have more complex joins ?
2. Is NoSQL means Map Reduce ?
NoSQL is an implementation of a specific type of Data storage Model. Map reduce is programmatic models to process large data sets. Most of the NoSQL databases offer some kind Map Reduce feature/implementation. That does not mean that we need to necessarily use map reduce to store data. Map reduce is used to extract and aggregate data at large scale from underlined data stores. So NoSQL is purely a Data Storage platform in other hand Map Reduce is a way to process data.
3. Can I have both SQL and NoSql living and breathing together ?
We can have both SQL based Data Store and NoSQL based data store living together. In most of the cases they will be complementary to each other as they try to solve different problems.
4. Is NoSQL only for BigData
Truly NoSQL is not merely meant to solve the BigData issue. NoSQL is more popular in BigData use cases as many vendors solved their large scale data problems implementing NoSQL databases. NoSQL architecture naturally lends itself to solve today’s Big Data problem. There are lot of vendors still use Relational data store for their apps. Face Book uses MySql as part of their data base layer. Most of the future apps will be built on polyglot persistency where the same app is built on multiple data models one could be relational and another could be a key and value based NoSQL database.
5. Which is better performer SQL or NoSQL
The performance of app depends on many factors. We cannot be thinking using NoSQL data store can bring magic and solve all our pains over night. NoSQL is good for some kind of apps which are described above and SQL is good for different kind of apps. Use the data store which is best for solving a specific kind if issue. If I have large no of atom feeds with different schemas and would not like to store in relational database would be a big pain. Select write data store for a specific problem. Do not follow the hype of NoSQL use your analytics. NoSQL definitely cannot solve all kinds of problems. For more to understand Horizontal Partition versus Vertical Partitioning go thru (http://venkat-sp.blogspot.com/2009/12/scale-up-versus-scale-out-scale-up-this.html )
6. Is NoSQL means more CPUs with large scale projects
Not really. I can run MongoDB, Cassandra , Redis in single system. But All these data stores architectures allows data to be partitioned and scale horizontally. In other terms we can have many shards as data grows. This is one of the important feature of any NoSQL databases available in the market and precisely this is the reason why NoSQL DBs are making in roads in big way for scale out problems and majorly seen in Scalable Apps.
7. Is NoSQL means cloud DB
Most of the cloud vendors store data using some form key values or document kind of data store which helps them to scale out easily. That should not necessarily conclude NoSQL means cloud DBs. Amazon provides Mysql instances ( http://aws.amazon.com/rds/ ) for its customers. Very recently Amazon also support Oracle instances ( http://aws.amazon.com/rds/oracle/ ). These all are Relational databases.
Please add you comments. Thanks.
Wednesday, June 8, 2011
Does JavaFX2 has life ahead which has released recently with a complete overhaul ?
Wednesday, April 27, 2011
Greenplum : The MPP ( Massively Parllel Processing ) architecture explained
Orginal Post :
http://patodirahul.blogspot.com/2011/04/understanding-greenplum.html
Thursday, April 21, 2011
Embedding flex apps with in PDF documents ( Portable RIA )
http://www.jamesward.com/2008/11/05/portable-rias-flex-apps-in-pdfs/
Tuesday, April 19, 2011
Document Databases Compared: MongoDB, CouchDB, and RavenDB
Monday, April 11, 2011
Choosing the right PAAS vendor for your application
The entire cloud ecosystem is getting too hot and crowded with various language and tool support to enable the common application to be ported easily to the cloud . If you search thru google then you find many PAAS player and they claim they are the best with lot of testimonies. Almost all popular languages are supported by most of the cloud vendors.
Notably the most popular PAAS platforms are
- Force.com from Sales force
- Windows Azure from Microsoft.
- App engine from GOOGLE.
- vFabric from VMWare
The factors influence during selection of PAAS platforms are following:
- Application type and complexity.
- Project Type ( Is it a brand new project or old project want to migrate to cloud )
- Preferred Technology Stack
- Allocated Budget
- Business goals
- . Project time line
- Developers competency
- Vendor lock in
Force.com is the leading PAAS offering for building business application from Sales force which is kind of ready to use recipe from Sales force. Simple business applications can be created with no time using Force platform.
It has a visual platform, in which the users can drag and drop different objects to construct the entire business work flow. This work flow can be readily deployed over cloud using the Force platform. There are thousands of applications using this platform. To write complex logics Force provides apex scripting for writing business logic.
Very recently Sales force upgraded the whole force platform and offers different products targeted on Force platform.
1. Appforce : For building enterprise Apps
2. Siteforce : For building data-rich web sites
3. VMforce : Building java apps
Force.com platform initially targeted towards the business users and who are not really keen on learning new languages and the most of the application built are business applications. It is easy to build and easy to host and hence attracted lot of users.
We might see some momentum in enterprise applications hosted on Force.com platform as sales force is heavily investing on this platform and continuously enriching the platform to support multiple customer’s needs.
Windows Azure is a full stack PAAS platform tries to provide end to end cloud deployment. Being it is product from Microsoft very much entitled for “Enterprise Ready Platform”.
Microsoft has tried its best to provide rich tool set for building cloud application using .Net framework. So it is very natural fit for vendors who have been already developing application using .Net.
Azure is one of the most rich and mature PAAS platform available for the developers for different type applications.
1. Azure offers two different kinds of application models: Web Roles and Worker Roles. Web roles are typical request/response HTTP model where as worker role is a generalized development model which can run in back ground.
2. Developers can use array of languages like C#, VB.Net, PHP ,Java for developing applications on .Net framework.
3. Visual studio IDE is available for building and deploying applications with ease. Most of the complex tasks like build to deploy to cloud can be done easily using simple clicks.
4. It has support for Relational database using conventional ADO.NET service and also NoSql database.
5. Azure Appfabric service bus provides secure messaging and connectivity capabilities that enable building distributed and disconnected applications in the cloud.
The above features makes it as a natural fit for existing .Net applications looking for migrating to cloud.
Google App engine ( GAE ): Google also offers all the major features provided in other PAAS platforms. Google supports very few languages like Java and python. For java developers there is very limited support on server side java but the support is pretty stable and mature.
On storage side it provides key value based no sql storage type on its proprietary Big Table database with auto-partitioning. When you consider the scalability factor, GAE is the winner as it scales automatically depends the need.
GAE platform offers one stop solutions for python users. It supports python with DJango popular web frame work. Pretty soon Google will definitely offer the entire java enterprise stack as that will be the future for GAE. There are lot of other vendors provide different tooling and web frame works on GAE to accelerate and minimize the pain involved in cloud migration.
Google also provides necessary tools for building cloud application using GAE on existing eclipsed IDE which is again favors GAE adaption.
vFabric : VFrabic is from VMWare and is a late entrant to cloud offering. Traditionally VMWare has its origin from Virtualization and virtualization is at the heart of cloud computing. Hence it is very natural for VMWare to have cloud offering. After it acquired Spring source has built the entire cloud ecosystem around it’s technology needed to push the much needed cloud envelope.
vFabric supports only java as vFabric is for purely 100% Spring Java development framework. Spring tool suite provides the best eclipsed powered development environment for building spring base applications. vFabric also supports groovy and grails as part of its offering. This is a good value proposition for vendors already using J2EE and spring frameworks for their enterprise applications. They can move their application to cloud very easily using vFabric Enterprise ready server.
