In short, code-on-demand enables scaling across across users by moving the code (logic) to the consumer, instead of requiring the consumer to make a remote request to the code.
It follows logically that any successful approach to scaling across big data requires inverting REST and executing the code as close to the data as possible, rather than trying to move big data to the code.
Likewise, the web architecture scales across users by utilizing caching to provide data locality for shared data. Scaling across big data also requires data locality for reference data. We must move our small data close to our big data to scale efficiently.
The major flaw designed into many current big data applications involves the failure to utilize the inverse of REST: SOA and integration vendors sell customers on the idea that big data problems can be solved by moving all data through a layer of middle-ware: whether this be a J2EE application server, a service bus, or an integration tool. I have literally spent years of my career trying to tune and optimize middle-ware solutions for big data. That’s why I can say definitively that the middle-ware concept does very well at selling a lot of consulting hours, software licenses, and hardware. What it does not do is scale to big data.
You could code all the big data logic in stored procedures, assuming willingness to embed business logic into a closed system, and assuming that a database will scale to your data volumes. Database vendors are only beginning to utilize Inverse REST: evaluating filters , transformations, and lookups in the storage pipeline is a new (or non-existent) feature in most DBMS systems. Yet another opportunity for vendor lock-in.
Hadoop Map Reduce follows an open system implementation of inverse REST.
Regardless of who wins that battle between RDBMS and Map/Reduce one thing is certain: anyone not leveraging the principles of Inverse REST will be left in the dust.
Google, Yahoo, Facebook, StumbleUpon, and others have already hit the wall, and it’s only a matter of time before we all do.