One of the big news items today is that NuoDB has patented its approach to distributed databases. Jim Starkey and friends have always been prone to make grandiose claims, so it’s not too surprising to hear “clean sheet re-invention of the relational database” and such. It’s a bit more surprising that GigaOm’s Barb Darrow saw fit to repeat such claims uncritically, and throw in the “superstar” bit in what amounts to a far more valuable bit of PR than NuoDB could ever purchase above the table. Just check the Twitter stream for “nuodb patent” to see how valuable that phrasing must be to them. But that’s not what I’m really here to talk about.
At first I had trouble finding the text of the patent, but that must have been the result of my own searching error because when Justin Sheehy pointed me at the number for the granted patent (other sources had only given the application number) I was able to pull it up right away. That number is 8,224,860 by the way, but Google shows the wrong thing and and USPTO is link-unfriendly. Part of my reaction was also amazement that such a thing could be granted. You see, the idea of a patent is that the author is given protection from copycats in return for a public description that will allow the invention to be recreated by someone else after the patent expires, so that the idea is not lost in the trade-secret dustbin of history. The standard for this description is usually expressed as detail sufficient for one of “ordinary skill in the art” to implement it. That’s vague as hell, but it defines an interesting boundary. If even someone with below ordinary skill can implement an idea, then it’s probably too obvious to be patented. If more than ordinary skill is required to fill in the gaps left in the description, then the description is inadequate to fulfill the grantee’s side of the patent bargain.
The thing about the NuoDB patent is that such broad claims should be backed up by a proportionally comprehensive description, but the actual description is way over on the sketchy side. Some people have already said that the patent shouldn’t be allowed on the basis of its obviousness, but that misses the point about the difference between claims and descriptions in a patent. Many people will tell you that it’s the claims that matter, and that you can mostly ignore the description. I’ve told people that myself. However, it’s not entirely accurate. A more precise way to put it is that the claims are the enforceable part. As the thing that the applicant seeks to protect, the claims are the part that matter once the patent is granted. The description, as the thing the applicant offers in return, is supposed to affect whether the patent office should accept the deal. It’s payment, in the sense that not providing it is like failing to pay the filing fee. You don’t pay the price, you don’t get the product. So what are we to make of something like this?
This invention generally relates to database management systems. More specifically this invention relates a method and apparatus for implementing a multi-user, elastic, on-demand, distributed relational database management system characterized atomicity, performance and scalability.
Databases are now judged by a standard that defines ACID properties, namely: atomicity, consistency, isolation and durability. Atomicity guarantees that all transaction tasks will be completed in their entireties. Consistency assures is that only valid data is written to the database. Isolation assures that other operations cannot access or “see” data in an intermediate state during a transaction. Durability assures that once a transaction has been processed successfully, it cannot be undone.
So far, so good. Now, how does the described “method and apparatus” actually achieve these goals? Remember, patents are supposed to describe methods, not just outcomes. For example, how does the described system provide consistency for a transaction that spans many objects – i.e. a complex join? They don’t say. No, really. Search for “join” in the document and you’ll find lots of stuff about nodes joining the cluster, but nothing about joins as the term is used in the database world. There is some description of consistency issues (search for the unexplained term “atom skew” – at least the terminology is novel) and even some boilerplate about replication messages being exchanged, but there’s no description e.g. of how the complex ordering relationships among these messages are retained. Likewise there’s nothing in there about how to prevent or ameliorate the storms of update traffic that certain requests can generate with this approach, or what happens when there’s a failure in the middle, etc. You can repeat the same exercise with respect to durability, or other well known problems, and find all sorts of huge gaps in such a description.
Now, I don’t expect the description in a patent to be a full-blown spec describing the software in just-short-of-code detail (though that has been done in some of my applications and I gather that it’s commonplace). For all I know Jim and Co. might actually have made some breakthroughs, and might legitimately have something worth protecting, but none of that innovation is actually reflected in the patent as written. I’m criticizing the document, not the underlying work. The problem is that the omissions in that document represent the actual mechanisms that are supposed to be described. The gaps that I’ve mentioned are the actual hard problems, the things where truly patentable ideas might actually exist. Nobody could implement what NuoDB is claiming without recreating – or improving upon – the innovations that the accompanying description should explain. The patent is supposed to be for a novel “method and apparatus” but what we actually have is a laundry list of standard approaches and standard problems. The bragging about how quickly the patent was approved and how no prior art was found is, in reality, almost an admission that the examiner couldn’t find anything concrete or specific enough to search for. How do you search without terms? That should have stopped the application right there, with a demand for more information, before the government agreed to enclose so much of the intellectual commons for practically nothing in return.
That brings me back to the title. This isn’t a bad patent. The system has been set up with rules that allow bad patents. What I’m saying is that this particular patent doesn’t even conform to those rules. It doesn’t even meet the usual standard for becoming a bad patent, so “not even bad” fits rather well.