GoshawkDB
Written by Kay Ewbank   
Thursday, 31 December 2015

A new database that's a distributed, transactional, fault-tolerant object store has been released. GoshawkDB stores data as persistent objects, and its creator avoids the term database to describe it.

 

goshawk

The big attraction is the promise that GoshawkDB supports full multi-object transactions which are atomic and isolated no matter how many objects the transaction touches or where the objects are stored. GoshawkDB clients also support nested transactions, and features such as Retry are supported.

Transactions with strong-serializability isolation levels are the only ones supported. Writing about the transaction support on the GoshawkDB website, developer Matthew Sackman said that while many data stores offer eventual consistency, they present problems if failures occur. Sackman says that GoshawkDB is different:

"it supports full transactions which are atomic no matter how many objects they touch. Transactions have many nice properties and using full transactions makes your code simpler and easier to write and maintain. GoshawkDB's transactions are also durable: the client is not informed of the result of the transaction until after the result has been written and flushed to disk."

GoshawkDB also makes clear guarantees about how it will behave in the presence of failures. Specifically, you can set a failure parameter (F), which sets the number of failures you want GoshawkDB to tolerate. So long as the minimum cluster size is 2*F + 1, and no more than F nodes of the cluster are unreachable, the cluster will continue working as normal. If more than F nodes become unreachable, a transaction may block, unable to complete, or may be rejected, but there will be no divergence between nodes.

Sackman says GoshawkDB is a CP-system, using the CAP theorem's terminology for a database that will be able to recover from failures (including network partitions) and will not violate consistency. The data store only orders transactions where necessary, so avoiding imposing a global total order of transactions to improve performance. The claim is that for an unchanging workload, GoshawkDB's performance will not decrease as you add more nodes, and can increase.

GoshawkDB doesn't make you use schemas. It treats object values as plain byte arrays, and the only requirement is that you declare pointers to other objects explicitly. Overall, it looks a useful addition to the object store options such as Cassandra, Riak and CockroachDB, and it will be interesting to see whether it achieves popularity.

 

 goshawk

 

More Information

GoshawkDB

Related Articles

Cassandra 2.0 Available

CockroachDB Released

RocksDB On Steroids

Asterix DB - Big Data Management System

To be informed about new articles on I Programmer, sign up for our weekly newsletter,subscribe to the RSS feed and follow us on, Twitter, FacebookGoogle+ or Linkedin

Banner


Pico 2W Announced But There Is A Surprise!
25/11/2024

Raspberry Pi released the Pico 2 a few months ago and we have been waiting for the Pico 2W since then. But Pimoroni beat them to the draw with the Pico Plus 2W based on the RM2 radio module and hinted [ ... ]



Prompt Engineering Techniques To Make You An Expert
18/11/2024

Introducing a GitHub repository full of hot tips and instructions on how to build the perfect prompt presented in a collection of Jupiter Notebooks.


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Thursday, 31 December 2015 )