Sunday, March 04, 2012

jSuneido Immudb Progress

I've made good progress on the changes to the append-only database storage engine for jSuneido. The new version now passes all the built-in tests, although I have a few things left to do to improve performance.

I'm pretty happy with how it went. No big surprises and the code turned out quite simple for the most part. It's nice that there's less shared mutable state and therefore less potential locking issues.

Previously, updating the shared state and persisting to disk were a combined process. It was a little tricky teasing this apart so they were independent. For example, the semi-immutable data structures were flipping to immutable when they were stored. Now they have to be flipped to immutable before they go into the shared state, separately from being stored.

Of course, the reason I did all these changes was to try to address some "production scale" issues, and I still haven't got to the point where I can really tell if I've solved them or not. So far, the signs are good.

As usual, the code is in Mercurial on SourceForge

Related: Immudb Progress

2 comments:

Coder said...

I am taking a serious look at cSuneido(which i find really fascinating), but it looks like you are going to focus only on jSuneido. Do you intend to continue developing cSuneido? . Wild horses wont drag me to Java and I would hate to abandon such an interesting platform.

CoderNwo

Andrew McKinlay said...

We will continue to support cSuneido. jSuneido currently only supports the server side - we still use cSuneido for the client. And jSuneido is aimed at larger scale - cSuneido uses less resources for smaller scale.

Using jSuneido does not require writing Java - applications are still written in the Suneido language. Just like using cSuneido does not require C++ programming.