RSS

Tag Archives: oracle

Is the JVM a viable release platform?

I have written a number of server applications based on Sun’s JVM and luckily for me I have not had to code anything beyond a few interview questions under Oracle’s stewardship. In the last year or so Oracle has released two versions of it’s JVM with well publicized security holes. Normally this sort of thing would go unnoticed or at least pass quietly so what does it mean?

Back in the day when Sun was touting the benefits of Java it was “rewrite once and run anywhere”, “the network is the computer” and security. Whether “security” is defined by phone home, crypto, private and protected modifiers… or the effects of recent attacks you really have to start thinking about Java a little differently.

So when I watched an interview with Rich Hickey this weekend where he talked about Clojure, and by extension Datomic, just plugging into the JVM on your local machine I could not help but get a little concerned. First of all while Clojure is interesting and probably functional and plenty of first-class implementations of things… the hangers on and other libs still use basic JDK libs thus infecting the pure implementation(see that Lift embeds Jetty). And while Clojure is supposed to implement similar read-only features of erlang and other functional languages… what happens when the JVM is attacked sideways?

I like java for what it is and what it might be again. I categorically disagree with some of the language features that are clearly designed for the proprietary sect of this business. And frankly so many more have accomplished much more with less effort using dynamic languages like Ruby, Perl and Python.

One of my strongest beliefs is that in order to scale you need the following: (a) a reasonable ROI on the initial development. (b) ability to automate administration/deployment of the second wave of hardware. (c) ability to automate the automation of the crazy scaling where the application, infrastructure, and people scale organically. At the end of the day scaling must be achieved by applying the lessons of Henry Ford and the assembly line.

 
Leave a comment

Posted by on 2012/09/03 in architecture

 

Tags: , , , , , ,

NoSQL != NoDBA

For the reader who is not familiar; the title of this article reads: NoSQL not equal NoDBA. And what I mean by it is that while the traditional function of the DBA is different in the NoSQL environment; one still needs a subject matter expert (SME) on the payroll in order to keep the “engine” running smoothly. NoSQL is just another specialty.

Many years ago I was caught-up in SleepyCat’s BDB libraries. They worked, they were fast, and as they promised; you could forgo a DBA. I developed a few proof of concept applications using BDB and they worked great. They included speed, big data, ACID and everything they promised. Luckily for me, at the time, the projects never ran long enough for a disaster to occur. I know now that, at the time, I did not know enough about BDB to recover from even a moderate system failure.

Today we are inundated with NoSQL alternatives. Riak, MongoDB, Redis, Cassandra, Volt, Orient; just to name a few. To my knowledge, none of them actually state that a DBA is not required, however, they all seem to imply that your developers are going to assume the responsibility. At least Riak and MongoDB have enterprise consoles for the NOC (network operations center) suggesting that they realize otherwise.

Let’s start with the schema. Most developers will knock out their first or second iteration of the schema over lunch. And in most cases it’s probably pretty simple. It’s not until you get into production that “you” realize the warts when your perfect parochial schema. I’ve implemented several payment systems. The first holds 12B active accounts and processes 12M sale transactions a day(333TPS). The second had a hard time at 25TPS. The first contained only 5 tables and the second was a beautiful 100 table constraint nightmare.

And then there is “real world” data. For example, when you’re doing 12M transactions a day Oracle it’s still a challenge to export the data so that it can be warehoused and reported upon. ETL is going to take time. That’s when one might consider sharding and other approaches to optimization; even normalization (all functions that should be performed by a DBA). However, in the NoSQL/NoDBA world, this function is going to fall on the developer… who is no longer working on new functions or revenue generating opportunities but is instead sandbagging the dam.

As far as SME’s go. They tend to know vertical markets or applications very well. They tend not to know every last detail about the data store.

For example, there was a time when my DOS based PC would crash and I’ve have to fix my harddisk. There was a time when I could and would repair the filesystem by hand, however, after Norton Utilities performed that function in a fraction of the time I had to turn in my keys. And now, when that type of failure occurs on my Linux machine I simply reinstall. I do not have the time or the inclination to repair the data.

That function was always left to the DBA when it came to traditional RDBMS and the sysadmin when the filesystem went bad. I just cannot imagine that anyone would want to perform that function when there are people who specialize in it.

So just because you have read the docs for the client libraries and maybe the source code. None of that makes you a SME. And there is nothing that is going to replace the SME. Just because you’re not calling him/her a DBA does not mean that the function is not being performed.

 
1 Comment

Posted by on 2011/08/23 in database

 

Tags: , , , , , ,

BerkeleyDB in Payments

BerkeleyDB is awesome… but I liked it better when it was a part of SleepyCat and not Oracle. I hope that Oracle does not bury the product and that it gets the attention it richly deserves.

A number of years ago, while I was working for WildCard Systems, I was designing an authorization system that had a few constraints. The first was that everything was deployed on Windows and second that the DB was going to be MS SQL Server and as a side effect of moving requirements from the sales team I was forced to implement the business rules as stored procedures. At the time SQL Server did not have a replication system and we were still running on souped up PCs pretending to be servers.

So I built my own replication engine. That failed. And then I tweaked it… it was OK for a while… until the transactions started to show up. Over the years we tried several, including Microsoft’s version too. They all failed one way or another. But I digress.

At some point everything was moved to enterprise class DELL hardware including a SAN from EMC. And we had some new/serious execs running the show. So now we were doing things like performance testing and peak season preparation and so on. And then the sad news arrived. We were only able to perform 25TPS, sustained. I was dejected. In later years I read about SAN broundouts on EMC hardware. And then there was the in-house replication. I was completely dejected as the system I built for First Data was doing over 100TPS; but then First Data was running on Sun hardware and Oracle and we did not have the budget to compete yet.

Some time shortly after an “Oracle vs SQL Server” meeting and Oracle was buried. I left WildCard. But the idea of developing an authorization system that could perform had captivated me. So I started reading. Finally I read an article from the CEO of SleepyCat. It so inspired me to implement some test programs using BerkeleyDB. In the end I was able to perform 1700TPS on very modest hardware doing almost a complete simulation of a transaction including reads and writes. Granted I had not included replication but I was able to test the basic premis.

I left the experiment with the feeling that BDB could do the job… and now that BDB is part of the NoSQL revolution, willing or not, it seems that maybe it deserves some more attention. So I’ve been thinking about them again… but now I don;t think that it’s a contender. Replication is left to the programmer to implement and if you ask me that sort of programming is highly specialized and demands that experts implement it. So I do not think BDB is a good match at all.

 
Leave a comment

Posted by on 2011/06/21 in database

 

Tags: , , , , , ,

Cassandra; a game changer?

I’m not certain that Cassandra is a NoSQL contender. It may be part of a solution but a solution unto itself. Upon first reading the apache group tells you all these wonderful things that Cassandra does but it feels like is it not enough. The glaring omission is a MapReduce function and the closest your going to get is using Cassandra as the storage engine for a Hadoop NoSQL framework.

Hadoop is a beast of a different color. It seems to support different storage engines… HBase is their traditional storage engine and it also also supports Cassandra. Their may be others but Hadoop is not the focus here. The last word on Hadoop is that is seems that Google has given the Hadoop license a waiver from it patent on parallel queries.

There is a product named Brisk from Datastax. This is Hadoop+Cassandra+some DataStax sugar. I’m just not buying this setup. The website suggests to me that it’s more about the DataStax (commercial) dashdoard than it is about the integration of Hadoop and Cassandra.

Finally, one last note about Cassandra. Cassandra is written in Java and as my peers may or may not finally attest, since I have been pushing Java since 1.02, Java is living up it’s performance promise. However now that Oracle has purchase Sun and all of the pain that Java community is going through it’s anybody’s guess what’s going to happen next. (Think of Java as Cobol for the modern age) Oracle is the half-whited red headed blathering step-child of the Java community. This can be seen in the Java/Hudson debacle.

While I like the passion that the Cassandra mailing list has and the strength has. I’m not sure that it’s a NoSQL database and that it will continue to thrive as it has although I really like these enhancements. They are worthy.

PS: I have no interest in learning thrift.

 

 
Leave a comment

Posted by on 2011/06/08 in Uncategorized

 

Tags: , , , , , , ,

 
One Page Docs

Creating a library one page at a time.

One Page Bugs

Reducing the friction of writing and fixing bugs or features.

Follow

Get every new post delivered to your Inbox.

Join 223 other followers