SD West 3

by Tim Cull

Back in the beanbag chair waiting for Citrix. Yesterday I went to a session about the internals of the Java Virtual Machine, which was pretty interesting. Really, it was about the JVM from the perspective of someone who want to tweak the performance of their application; I would have preferred just a description of the nuts and bolts of a JVM.

Marc and I are trying to write an article about how most of the nifty performance tweaks and wiggles you see at these kinds of things are red herrings. In my career so far, I’ve dealt with a lot of severe performance problems in systems and none of them have to do with using ‘ints’ or Integers, squeezing a microsecond out of efficient byte code, or whatever. Most of them have been much more fundamental: table scanning a million row table every 5 minutes, making several hundred calls to a database when it could have been one, having too finely grained remote interfaces on a distributed object so you end up making 50,000 network operations when it should be 1,000. That’s the kind of stuff I’d like to see pointed out at a conference.

The biggest “I’ve never thought of that” idea I’ve seen so far was from Michael Rosen in his Service Oriented Architectures session. He was advocating the concept of having several layers of servicess:
Integration bus–just deals with connecting the application to the rest of the environment and converting it’s data schema to a more enterprise standard one
Business bus–starts to add division-level functionality. Built largely on top of the integration bus
Enterprise bus–Really adds together business functionality to achieve lots of useful enterprise wide workflows.
The obvious drawback is performance. But that’s probably solvable if you think about it long enough. Or maybe just make them logically seperate and not necessarily physically seperate.

Bookmark and Share


Comments are closed.