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


Nim Reaches 1.0
30/09/2019

The Nim Team has announced version 1.0 of the language. Nim is a compiled statically typed language focusing on efficiency, readability and flexibility, and the developers say Version 1.0 marks the be [ ... ]



Coursera Professional Certificates In AI
08/10/2019

Machine Learning, Deep Learning, Neural Networks - not only do we trip over them at every other turn, the message that they are the way of the future is constantly reiterated. Coursera, in partnership [ ... ]


More News

graphics

 



 

Comments




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

Last Updated ( Thursday, 31 December 2015 )