Mark wrote:
On Sunday, 1 January 2017 at 03:24:31 UTC, Adam Wilson wrote:
2. There are so many different types of data storage systems, how do
you design a system generic enough for all of them?
My answer: You don't. Nobody else has bothered trying, and I believe
that our worry over that question is a large part of why we don't have
anything substantive today.
My idea: Split the data storage systems out by category of data-store.
For example:
- SQL: std.database.sql (PostgreSQL, MySQL, MSSQL, etc.)
- Document: std.database.document (Mongo, CouchDB, etc.)
- Key-Value: std.database.keyvalue (Redis, etcd2, etc.)
I think that these can all be seen as special cases of a hypegraph
database. So on the face of it you probably can build some common
interface (apparently the fellows in hypergraphdb.org are trying to do
something in this spirit). You can then have specialized interfaces
inheriting from it. But given how general hypergraph dbs are, I'm not
sure if this is a worthwhile abstraction.
My experience with graph DB's is that the reality has never been
anywhere close to the hype. I don't think it's a worthwhile abstraction.
But that is my opinion. And if it is, we should be able to add it over
the top of this layer if we really want too.
By the way, what about XML? The documentaion on std.xml says that the
module will be replaced at some point in the future. I wonder when and
with what...
I have no idea. It's a great question! That said it's a bit outside the
scope of this topic. :)
--
Adam Wilson
IRC: LightBender
//quiet.dlang.dev