On this episode, I’m with Barry Morris (Founder and CEO at NuoDB) and we talk about:
– An introduction of the company,
– NuoDB architecture,
– Cloud and Enterprise features.
Enjoy the show!
Full transcript of the show
Enrico: Good morning, everyone, and welcome
to another episode of Juku Beats. Today I am here with Barry Morris, the CEO
and co-founder at NuoDB. Hi, Barry.
Barry: Hi, Enrico.
Enrico: Hi, how are you?
Barry: Very well, very well. Very pleased to be on your blog.
Enrico: Thank you very much. And you know
how the blog works. So, this is only five minutes and three questions, so I
will go straight to the questions. First of all, I covered NuoDB a couple of
times in the past few years, but I would like you to introduce the company and
explain what you do with your product.
Barry: Certainly. So, we’re a next-generation database
product. Databases, historically, have been very powerful but they have really
been based on one machine, one big server, and if you wanted to go faster, you
needed a bigger server. And that has been a challenge because the world is
moving to lots of small machines and people want to run databases on lots of
small machines instead. That’s the problem that we’ve solved. So, NuoDB is
uniquely the company that can run traditional sequel transactional database
workloads on lots of small machines. And you can dynamically add machines or
take machines away at one time.
Enrico: Good, very well. So the architecture
is based on any memory code, and that’s real interesting that you can [spring
up 00:01:44] a lot of machine to do your job. But actually, can you go deeper
on the architecture? Because I know that it is a acid compliant, as you said. But
there is much more around this basic feature.
Barry: Absolutely. It’s quite intricate exactly how it works,
but I’ll give you the main points to understand. In order to build a system
like this that is very scalable on a distributed basis, you can’t do it by
starting with a traditional database. So this is not starting with the same
design as SQL server or Aerocall or DB2 or MySQL or something. It’s starting,
actually, with a distributed system. So, you start with a distributed system
and you make it behave like a database, rather than starting with a database
and make it behave like a distributed system.
How do we do that? The database is a memory
first system, so all the work is being done in memory and it has the
performance levels of an in-memory database. However, its’ not limited to
memory, so we have the ability to create backing stores of everything that’s
going on in the database to multiple places for redundant storage of the
database. That means that, for a client program using the database, it behaves
like a traditional sequel database, but it gives you in-memory speed. It also
gives you the stability to scale out.
If I can say a couple of words about how we
do that, again I don’t have time to explain it all, but if you imagine for a
moment it’s an in-memory system. What we also do is, it is essentially an
append-only database. We don’t do network based locking. We use versioning
instead. And because we use versioning, we can do communications that’s
asynchronous. That allows us to have a system where there’s loosely coupled
asynchronous set of machines running an in-memory database. That allows us to
add machines and take machines away. And surprisingly for people, these
machines are not in any kind of master-slave configuration. There’s no primary
machine. There’s no central storage. There’s no central controller or
supervisor. It’s a peer-to-peer system of loosely coupled in-memory nodes.
Enrico: Sounds great. But at the same point,
this look very like a very modern cloud architectures. At the same same point,
I know that you are focusing on also on the enterprise installations. So which
kind of feature have you added in this two-three years. Because I remember from
last year, for example, getting geo-distribution, which is another great feature.
And it helps, again, large installations like cloud providers and similar kind
of stuff. But I know that you are working on something more than that.
Barry: Yes, exactly. When we first shipped the product, what
we talked about a lot was the ability for the product to deliver on-demand
capacity. Which is adding machines, taking machines away, and that’s all …
sometimes you could call that elasticity. It’s a cloud capability. For version
two of the product, we talked about geo-distribution, which is running a single
database in multiple data-centers, with consistent and acid properties. That’s
a unique capability of the product and very important for global applications
and other applications. Disaster recovery, things like that. The [two-dot-two
00:05:45] product which just shipped, really focused on continuous
availability. And by continuous availability, we mean we had a design goal of
building a system that can run for the ten years and never take down. That
means not only can you do any of your system administration and database
administration to the system, you can do rolling upgrades and things like that.
But you can also lose machines, lose networks, and be resilient to failure. The
system keeps going even if machines fail.
Enrico: Wow, impressive. And thank you very
much for this [shelled shot 00:06:25]. How can our listeners find your product
and the company?
Barry: Well, we’re at www.NuoDB.com. That’s N-U-O-D-B dot com.
You can download White Papers, you can download the product, you can take a look
at it. We do run webinars and other communications events. And so, we can do it
that way, but certainly you can take a look at the product yourself.
Enrico: Thank you very much again.
Barry: Thank you very much, Enrico.
Enrico: Okay, bye bye.
Barry: Bye Bye.