News for hackers. Stuff that matters.
Re:Consistency is Consistently Undervalued by socmag on Saturday September 17, 2016 @07:08AM (#12520036)
A database is an abstract concept, and ACID transactions on databases have nothing to do with the interface semantics used to interact with the shared state being managed.

You can have non-ACIDic SQL databases and ACID NoSQL databases.

While it is true that many KV stores do not present a fully consistent view over distributed data, there are some that do.

It is very important that people shed this idea that only SQL databases can have strong consistency, that's for sure.

Re:Consistency is Consistently Undervalued by brandur on Saturday September 17, 2016 @07:16AM (#12520061)
> It is very important that people shed this idea that only SQL databases can have strong consistency, that's for sure.

Why? In practice, people are going to be building things using the same common paths: Postgres, Mongo, MySQL, Redis, etc., and from a purely pragmatic standpoint, the SQL databases that you're likely to use come with strong ACID guarantees while the NoSQL databases don't.

If you can point me to a NoSQL data store that provides high availability, similar atomicity, consistency, and isolation properties provided by a strong isolation level in Postgres/MySQL/Oracle/SQL Server, and has a good track record of production use, I'm all ears.

Re:Consistency is Consistently Undervalued by Negitivefrags on Saturday September 17, 2016 @08:19AM (#12520200)
Berkeley DB.

I use it in production for a game that supports over 100,000 concurrent users and it's been around for a very long time.

It's fully ACID by default but you get the ability to drop elements of ACID in exchange for greater performance in a per table or transaction level. It also supports two different isolation approaches on a per table level. Locking or MVCC (like postgres).

It's a really great NoSQL database from the days before the term NoSQL existed.

Re:Consistency is Consistently Undervalued by amalcon on Saturday September 17, 2016 @10:06AM (#12520528)
BerkeleyDB is great. I'm honestly surprised it doesn't see more use. It's right in the sweet spot for software that doesn't quite need a relational model, and that seems to be a lot of software.
Re:Consistency is Consistently Undervalued by ddorian43 on Saturday September 17, 2016 @10:27AM (#12520600)
Check out lmdb for a better alternative to it.
Re:Consistency is Consistently Undervalued by nickpsecurity on Saturday September 17, 2016 @01:30PM (#12521432)
How did I not know about this awesome-looking tool? Thanks for the mention! Wikipedia link for others:

https://en.wikipedia.org/wiki/Lightning_Memory-Mapped_Databa...

Re:Consistency is Consistently Undervalued by socmag on Saturday September 17, 2016 @11:20AM (#12520840)
Yup, and we used to have FoundationDB, sadly not any more, but don't get me started on that.

Still there are plenty of highly distributed stores to go around, and it's good to know that people are actively using them with great success.

It's very nice to have fine control over consistency vs performance even if you do have to think about it as a developer, but then that's our job :-)

Re:Consistency is Consistently Undervalued by hyc_symas on Saturday September 17, 2016 @01:34PM (#12521461)
Berkeley DB was great, but Oracle killed it by changing the license to AGPL. That change meant many projects that use it couldn't update to the latest version without violating the license.

LMDB has taken its place in a lot of projects that used to use Berkeley.

Re:Consistency is Consistently Undervalued by mesmerizingsnow on Saturday September 17, 2016 @11:02AM (#12520749)
https://github.com/cockroachdb/cockroach

which was inspired by this paper:

http://research.google.com/archive/spanner.html

which google made available for all in form of it's cloud datastore:

https://cloud.google.com/datastore/

"We believe it is better to have application programmers deal with performance problems due to overuse of transactions as bottlenecks arise, rather than always coding around the lack of transactions." [1]

[1] http://highscalability.com/blog/2012/9/24/google-spanners-mo...

Re:Consistency is Consistently Undervalued by jinjin2 on Saturday September 17, 2016 @11:50AM (#12520979)
A bit out of the scope, since it is an embedded database designed to run on mobile devices, but Realm[1] is a NoSQL database (in this case Object Database) with full ACID transactions, and is running on millions of devices.

[1] http://realm.io

Re:Consistency is Consistently Undervalued by rubber_duck on Saturday September 17, 2016 @07:43AM (#12520119)
https://cloud.google.com/datastore/

I haven't used it in a few years, but from what I remember you could have ACID like operations on grouped entries because grouping them makes their physical storage the same so ACID transaction becomes a localized operation.

Re:Consistency is Consistently Undervalued by platform on Saturday September 17, 2016 @08:20AM (#12520203)
Re:Consistency is Consistently Undervalued by catnaroek on Saturday September 17, 2016 @09:32AM (#12520409)
> While it is true that many KV stores do not present a fully consistent view over distributed data, there are some that do.

Consistency is always relative to what the DBMS can enforce, which is in turn always relative to what the the DBMS's schema language can express. A KV store can be trivially consistent in that, between writes, it always presents the same view of the data. But it won't be consistent in the sense of presenting a view of the data that's guaranteed not to contradict your business rules. The latter is what users of relational databases expect.