On my recent trip to California, neither I nor my clients at Northscale covered ourselves in meeting-arranging glory. Still, from the rushed 30 minute meeting we did wind up having, I finally came away feeling good about Membase’s product direction.
To review, Membase is a reasonably elastic persistent data store, sporting the memcached API, making memcached/Membase an attractive alternative to memcached/sharded MySQL. As of now, Membase is a pure key-value store.
Northscale defends pure key-value stores by arguing, in effect:
- You can do a lot with entity-attribute-value triples.
- If your key looks like an entity-attribute concatenation, then your entity-attribute-value triple can be transformed into a key-value pair.
Northscale has a point. Still, I think that in most use cases you’ll want a data model and/or data access methods that are at least a little richer than pure entity-attribute-value.
Fortunately, that’s the direction Northscale is taking Membase. I don’t get the impression that the details have been worked out yet, but the general idea is:
- Northscale is putting a publish-subscribe interface into Membase it calls “tap,” useful for replication, node rebalancing, etc.
- Tap will also serve to connect Membase data to a Membase feature Northscale calls “Node Code,” which will be code that runs in a separate process on each Membase node.
- Node Code will include things like:
- Language run-times
- Standard libraries for things like index-building
Will Membase Node Code be a close substitute for relational DBMS functionality, or even the Cassandra architecture? I doubt it, especially at first. But at least it will keep Membase developers from getting locked in to a very simple and restrictive data management paradigm.