A story about Google losing a patent lawsuit against Bedrock, an East Texas "patent troll" has been making the media rounds, but I haven't yet seen an analysis of the patent. All I see is talk about Linux being at risk. If Linux is at risk, so is Windows, and so are the Apple OSs, because there's very little novel about the patent.
What it describes is a special instance of expiring and removing old data from a system.
What's described in patent #5,893,120 doesn't seem like anything new to me. Moreover, in the patent, there's a reference to patent #5,121,495, and says that applying the technique, which was used on an array, to a hash table's chains, is substantially different.
But, in my reading, both patents apply primarily to hashes. The linearity part of the IBM patent just doesn't seem to be there. Is scanning the whole linked list the difference?
Instead of describing it as computer science, which is mind-numbing to most people, I'll describe the patent as an office chore.
Suppose you were searching your files for a bank statement. Your filing system is sorted alphabetically by account, and in each folder are bank statements and other dated material. When you're searching for a specific bank statement, you look through all the statements in a folder. When you notice there's very old paperwork, you remove it, and throw it out (or archive it). This frees up space in the filing cabinet for new, more relevant data.
What's nice about doing this disposal when you're searching for information is that you avoid setting aside an afternoon to go through the files to throw out old information!
This is sounding like a blog post from Lifehacker.
Clever people do this every single day. (I, not being so clever, end up with a fat filing system and a big mess, because I fail to dispose of obsolete information.)
Here's the sick part. The first patent was granted to someone at Bell Labs, who basically took this obvious concept and applied it to computer storage. The second patent was granted to someone who applied that patent to a different style of computer storage which has existed since the 1960s.
So this second patent is a copycat patent. Not only that, it's not as clever as the first one, which does a lot of weird stuff to improve performance.
And the worst part is that the US Patent and Trademark office approved both patents! Who is working there approving software patents? Have they ever written software?
Prior Art?
Now, here's something else to consider: The patent, as described, doesn't describe caching... but a lot of caching is about creating a hash, storing data, and during searches for data, deleting expired data. That's almost the definition of a cache.
How could the original patent be issued in 1992, when caches were commonplace? They existed in CPUs, hard disks, and all larger computers. There were millions of caches being sold each year. Today, there are billions of caches in operation - several in your computer.
Also, there were hundreds of computers that were busy expiring old Usenet News articles through the 1980s. As new messages were downloaded, the old messages were expired. The variation with that is that the message keys were stored in linear lists (arrays, more or less), and the actual storage was on a disk. Old articles were expired, and deleted from disk, freeing up space for new articles.
The original patent should never have been issued, and Bedrock should never have gotten the second one either.
I hope Google gets an appeal and demolishes both patents. Neither are novel, and the first gets cred from me only because it was complex and clever.
An old Ars Technica thread bashing this patent.
Another good bash thread at Techdirt.
An excellent thread at Slashdot.