Ask HN: Why “database as a service” didn't succeed?
Even the database services from cloud providers, like Amazon RDS or GCE, are effectively thin wrappers over traditional database components. "Instances", "nodes", "hosts" are still present and not abstracted.
It looks like a database as a black-boxed CRUD API, with abstracted node/replication/failover handling, should be the obvious solution. I think there were tries to do it (Amazon SimpleDB, Google AppEngine's datastore?) but they are not widely used. Why?
10 comments
[ 4.0 ms ] story [ 7.5 ms ] threadDatabase as a service works just like any other managed service today.
And I'm not sure all the mentioned products are fully abstracted, for example BigTable docs mention "nodes".
Many old projects, due to costing some amount of time/labor to switch, will likely never move to these database services.
Also, just because documentation mentions something that happens beneath the hood, or companies give you finer control over your service configuration, that doesn't mean it's not "fully abstracted". You'd probably want your database in a datacenter close to your target market, for example.
That's really only possible if the DBaaS is a "thin wrapper" as you describe.
But, other than that, I think ronreiter is right -- there are DBaaS that have big user bases.
I think the "obvious solution" is just not super easy to implement. If you want ACID compliance as with traditional RDBMSs but in a auto-scaling, distributed setting, it's not going to happen. Early RDMSs were built with a single node in mind, and any database-as-a-service will have to make some compromises. DynamoDB gives you the flexibility of not having to worry about scaling, and even offer strongly consistent reads, but without support for transactions, for example.
IBM Cloudant can scale-out to many servers that are all handled by IBM. I'm sure a lot of other cloud based documentdatabases can do this too.
Regarding why it hasn't become really popular yet organizations are generally very slow to change their data storage solutions. Changing to nosql from a relational database also requires a large rewrite of the system and it is not only upsides of going in this direction (some says that it is almost only downsides). It is for exmaple usually harder to get acid guarantees from a distributed db and it may be harder to create (secondary) indices.
Once you do that, things like instances/nodes/hosts become important because you cannot abstract certain consistency requirements away from them.
But if you host your frontend, it doesn't make sense to talk to a database in a different datacenter when you could instead put it in the same rack.