tl;dr: A collection of tools to make VoltDB dev work easier – available here
VoltDB is great and it’s stored procedures are even better. But distributed systems can be hard. VPT is a collection of tools that will hopefully make working with VoltDB just that little bit easier.
Right now, it’s only one tool, and really just the initial version of that: console-runner-builder. This walks your code-base, lints your stored procedures and generates runner classes that let you execute your stored procedures with type safety. The goal? Elimination of a pernicious species of bugs which usually lie invisible until your production system folds in on itself in a pile of burning silicon. See the issues and road map for some early thoughts on other tools and improvements to come.
The ultimate goal is a rich ecosystem of tools that make using and developing for VoltDB safer, faster, easier and more productive. In short? Distributed systems are complex, but they don’t have to be difficult.
Feedback and comments very welcome – comment here or raise issues on github 🙂
VoltDB stored procedures are Java classes. You add some SQL statements, pass them to magic functions and Wingardium Leviosa – a high-performance DB that’s all nice and Java-like. Right? Right?
Not quite. Writing correct, performant VoltDB stored procedures can be a little bit fiddly. I’ve written about this before. Here’s a listicle that tries to catch it all in one convenient checklist.
Capturing these instructions here, just in my case my laptop fries its own graphics drivers (damn you
sudo update-mime-database /usr/share/mime) and I decide it’s easier to reinstall Ubuntu than fix them…
Some handy news: If you aren’t using a CDN and are using a paid dyno, Heroku can do LetsEncrypt SSL setup and renewal automatically. See here and here for instructions.
Any modern website worth its salt enforces HTTPS. The first critical step in this is to get a certificate whose root is trusted by modern browsers. Until recently, that meant paying a lot of money, but now it can be done for free with LetsEncrypt and a minima of technical nous. This blog post is how I did it for a Heroku-hosted web app. It’s a step-by-step reference so I can save my future thinking for other things and maybe it’ll be useful for other people too.
To put a VoltDB instance into admin mode you can use the
@Pause stored procedure or the
voltadmin pause CLI command. Likewise, to take a DB out of admin mode, you use
voltadmin resume. But how to check if your DB is paused or not?
Over the last 20 years or so, programming has changed radically. The internet gets the credit and is to blame. The two worlds look as different to the coder as modern Boston would to the New England settler of yore…
Now? It’s all going to change again…
At Socrates Germany I heard a couple of dev’s tell me distributed systems weren’t needed, and many more say that they were too hard and too scary…
So here are some slides from my LSCC talk: a gentle introduction for devs to distributed systems and why we need them, with (almost) no maths or theory required:
And since I can’t be bothered writing any more words, here are images from some of the slides…