InfoQ Homepage Presentations Evolving the Key/Value Programming Model to a Higher Level
Evolving the Key/Value Programming Model to a Higher Level
Summary
In this presentation from QCon San Francisco 2009, Billy Newport discusses the ways that developers interact with key/value (KV) stores such as memcached and WebSphere eXtreme Scale, entity vs column-oriented approaches, synchronous and asynchronous operations, large data sets, using a DBMS as a column store, collocating closures and data, and features that could be added to increase scalability.
Bio
Billy Newport is a Distinguished Engineer working on WebSphere eXtreme Scale (ObjectGrid) and on WebSphere high availability, and has worked at IBM since Sept 2001. Besides his current activities, he helped add advanced APIs like the WorkManager APIs (JSR 236/237) and worked on the staff plugin architecture of WPS.
About the conference
QCon is a conference that is organized by the community, for the community.The result is a high quality conference experience where a tremendous amount of attention and investment has gone into having the best content on the most important topics presented by the leaders in our community. QCon is designed with the technical depth and enterprise focus of interest to technical team leads, architects, and project managers.
Community comments
Uninformed IBM
by Emil Vladev,
Re: Uninformed IBM
by Emil Vladev,
Source code is online now
by Billy Newport,
Only works for twitter-liked apps
by Steve Tirtha,
Re: Only works for twitter-liked apps
by Billy Newport,
Using Closures
by Aayush Puri,
Uninformed IBM
by Emil Vladev,
Your message is awaiting moderation. Thank you for participating in the discussion.
I'm sorry to correct Billy here, but he misses a point in just 2 minutes of his presentation. Redis does not use thrift and never has. Also, it supports an append-only log, so no data is lost (this was probably added after the presentation).
Re: Uninformed IBM
by Emil Vladev,
Your message is awaiting moderation. Thank you for participating in the discussion.
Oh, forgot to mention that Redis DOES support replication: code.google.com/p/redis/wiki/ReplicationHowto
Source code is online now
by Billy Newport,
Your message is awaiting moderation. Thank you for participating in the discussion.
The source code for the prototype implementation is online now at github. www.github.com/bnewport
Only works for twitter-liked apps
by Steve Tirtha,
Your message is awaiting moderation. Thank you for participating in the discussion.
Hi,
I think this kind of approach using key-value without transaction and locking only works for twitter-liked apps, where users do not accessing and updating one information in the same time.
Even in twitter-liked apps, user do not change data from other user.
How can this approach can be applied to business app like CRM, where 100-1000 user access and update information in the same time?
Regards,
Steve
Re: Only works for twitter-liked apps
by Billy Newport,
Your message is awaiting moderation. Thank you for participating in the discussion.
This approach implements atomic operations on the supported primitives like numbers, lists or sets but without transactions then you can't atomically work with multiple entries. If you want that kind of control then just using WebSphere eXtreme Scale directly with our normal APIs gives you that kind of model. Full atomic transactions, locking, serialization of changes and so on.
Using Closures
by Aayush Puri,
Your message is awaiting moderation. Thank you for participating in the discussion.
I actually found the proposal to use closures to run code on different nodes pretty neat. Looking forward to the prototype!