3 ms·
A system with SQL interface != a relational database
by mixedbit 12y ago
A system with SQL interface != a relational database
- mixedbit 12y agoI don't know why I'm down-voted for the comment above. Relations have certain semantics that are very hard to preserve without RDBMS controlling the data. For example in a relational system a query like this: `select p0.name, p1.name from processes as p0 join processes as p1 on p1.id = 1 where p0.id = 1;` Should never produce two different values. This is impossible to guarantee in all cases if data is updated asynchronously by OS.
- mads_ravn 12y agoHaven't read the code, but this transactional behaviour should be possible to implement. Just ensure that all bound tables in a query reference the same snapshot.
- mixedbit 12y agoLinux does not expose a consistent snapshot of its state that could be read within a single transaction.
- mads_ravn 12y agoI get what you are alluding to, and you are right that this would require kernel cooperation. But I still think that consistency needs to be defined, before you can make such claim. For instance let's say we're joining a table of processes and open network connections. Now we might have network connections that belong to a processes not listed -is this consistent? What if the implementation filters out the connections that do not belong to a process? I guess my point is that a reasonable definition of consistency could be many things, including a definition that says referenced tables are read only once in the order they are encountered (this should be equivalent to a series of eg. ps and netstat commands stored in variables and then manipulated)
- guipsp 12y agoWhat stops the data from being updated asynchronously by another db connection?
- mixedbit 12y agoRDBMS can guarantee that there are no such updates