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.
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...