Magazines, Books and Articles

Tuesday, April 8, 2014

Commodity hardware

One of the USP of NoSQL databases is their ability to run on 'commodity hardware/ machines/ servers/ clusters'. So what is commodity hardware?

My desktop PC is powered by an Intel i5 4th gen processor, has 16 GB (initially 8, upgraded later to 16) of RAM and 1 TB HDD. The hardware is reliable and affordable, even though it was built by an assembler. It is easy to upgrade when required - like I did with the RAM. I have no vendor buy in; my first preference for an upgrade would be the current vendor, but it is not necessary for me to buy from him. I am also not too concerned about the make of the components - after all the industry has matured to an extent where there is not much to distinguish between different makes.

The same would be the case with a branded desktop that you may have bought. You may have vendor buy in because of the warranty, but nobody really can stop you from adding memory or storage or a game card, or maybe even replacing the motherboard and the CPU.

This essentially is then a commodity machine:
Affordable, reliable and upgrade-able
No (or limited) vendor buy in

A commodity cluster is made up of commodity machines working in parallel to increase computing power. Serious supercomputers have been built this way; the nitty-gritty of building and maintaining clusters are known. In the NoSQL context, clusters increase performance and provide scalability. Add machines to the cluster if demand increases; maybe even remove a machine if the demand reduces and do these without disrupting services.

A start-up from Bangalore has built a data center using commodity hardware. A case study worth reading.

Wednesday, April 2, 2014

Creating complex business solutions

In spite of the fact that I haven't posted on this blog for 2-2.5 years, there has been an average of 100 page views a month. I assume from this that the content has been helpful to some. Inspiration enough to start again.
Technology has made giant strides in these few years making it possible to create very complex business solutions. Two areas get highlighted:
a. how do we maintain large volumes of structured and unstructured data, query and analyse it
b. how do we build and deploy applications in terms of performance, scalability and mobility.
It is a time when developers are under extreme pressure to learn and understand a lot of new technologies (in addition to the traditional ones) in a very short time - and deliver. .NET developers, IMHO, are at a greater disadvantage, because solutions are more in the Java/ Open Source space and require more effort on their part.
In subsequent posts we will discuss the topics below. This will address some of the areas related to 'a' above.
1. NoSQL databases: the need, different types, performance comparisons, applications
2. Search: the need, different approaches, performance comparisons, applications