PostgreSQL 9.4's secret weapon? YES, IT'S A NEW FILE FORMAT!
Beta version of the tech not JSONing around with new Binary JSON format.
Judging by the latest beta version of the open source PostgreSQL database, the differences between SQL and NoSQL approaches are fading over time.
With the beta release of the open source PostgreSQL 9.4 database on Thursday, administrators have been given more of the features typically associated with NoSQL systems like MongoDB.
The main new feature is the JSONB ("binary JSON") storage format, which lets the database better deal with JSON-formatted data.
Usage of the JSON file format is one of the things that distinguishes typical NoSQL systems, like MongoDB, from their relational counterparts. By supporting the format from version 9.2 onwards, PostgreSQL lets admins use a format that is easily parsed by interpreters to store their data, giving them some of the flexibility typically associated with document databases.
So, what's all the fuss about writing it into a binary format? By writing JSON objects into binary, admins can manipulate them more efficiently.
"JSONB uses an internal storage format that is not exposed to clients; JSONB values are sent and received using the JSON text representation.," explained the chief architect at PostgreSQL company EnterpriseDB, Robert Haas, in an email with The Register.
MongoDB's "BSON" format is unable to represent an integer or floating-point number with greater than 64 bits of precision, whereas JSONB can, he explained.
"JSONB can represent arbitrary JSON values. The PostgreSQL community believes that limitations of this type are unacceptable, and wants to provide the full power of JSON to our users," he explained.
Though this may seem a bit trivial, it's worth remembering that the capabilities of JSONB will have a huge effect on the efficiency and remit of JSON-based systems, especially as they grow. Given that a lot of younger developers have grown up writing data into this format, it's commendable to see the PostgreSQL take an opinionated view on it, we reckon.
With JSONB and other enhancements in 9.4 "we now have full document storage and awesome performance with little effort," explained Craig Kerstiens, a developer at Salesforce-backed Heroku, in a personal blog post.
Besides JSONB, the tech also includes the "Data Change Streaming API" which relies on advances in changeset extraction, among numerous other features which are described in the release notes.
With this release the PostgreSQL community appears to feel confident that as systems like MongoDB grow in popularity, relational systems will keep on advancing as well.
"We definitely see PostgreSQL evolving with new capabilities popularized by NoSQL," Haas said. "PostgreSQL is a relational database, so is very flexible and extensible, and as new formats like JSON emerge and become popular, it's natural for us to introduce support for those in PostgreSQL... And with the HSTORE contrib module, PostgreSQL has had the capacity to support key/value stores since 2006, pre-dating many of the NoSQL advances."
Haas even lobbed in a bit of a competitive come on to the fine people that work on MongoDB, Riak, Cassandra, and other newer systems.
"The implication for NoSQL solutions is that innovation around the format in which you store your data is not enough; you've got to come up with truly novel capabilities for working with the data, which is much harder." ®