Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask HN: Get in touch with low latency people from Sun, IBM or RedHat?
7 points by HockeyPlayer on Jan 6, 2010 | hide | past | favorite | 23 comments
We have a Java application that trades in the financial markets. Latency is important to us; we are continually trying to improve latency, increase throughput and reduce jitter.

We are currently running our application in production on Windows using the Sun JVM. We have test cases to test how our system responds to market data generated in a test environment. We want to figure out the best JVM and OS for our application.

Several people have told me that vendors like to compete on benchmarks like ours, but I can't get through to the right people.

I'm trying to get in touch with IBM and Sun to start such a comparison. IBM's realtime page suggests writing to rtteam@us.ibm.com, but that address bounces.

Sun's Global Financial Services page has no way to get in touch with them and their chat rep could not help.

Can anyone refer me to an appropriate contact?



Have you ever tried running your low-latency stuff on an environment more real-time oriented ?

C on QnX would come to mind a long time before I would start to make anything with those requirements in Java on top of a JVM on a 'regular' (non-hard real time) unix.

There are simply too many layers on top of each other to be able to make any hard predictions about worst case latency.

I think you picked the wrong tool for the job, and no expert outsider is going to be able to undo the consequences of that decision. You are looking at a fundamental flaw here.

On a side note, I do hope that you have at least configured your garbage collector to work incrementally, that will decrease overall performance but it will significantly improve your worst case.


We have a Java application that trades in the financial markets. Latency is important to us; we are continually trying to improve latency, increase throughput and reduce jitter.

Seriously? You want low latency but you're using Java?

If you want low latency, you really want to avoid anything which does garbage collection.


Well, that depends on the periods they're talking about. If it's in the 10 ms plus or minus range, yeah, a conventional JVM is an issue, but there are hard real time GCs and a demand for this in Java. Then again, satisfying hard real time may cut against throughput.

Wikipedia's list of JVM implementations points out these ones for the embedded market:

This one claims to do hard real time: http://en.wikipedia.org/wiki/JamaicaVM

And this is for "real time" but they do too much dancing around for me to believe they have a hard real time JVM, they mostly claim very fast and "5-9s": http://www.aonix.com

What are your latency and jitter requirements and desires?


If it's in the 10 ms plus or minus range

High frequency financial trading requirements are closer to 10 microseconds than 10 milliseconds.


I don't know about the JVM, but Gen0 and Gen1 garbage collections on .NET are generally under that. Gen0 is fast enough to even be in the 10's of ns range.

Also, remember that he's trading over an internet connection, and there's going to be some non-zero latency there that will overshadow all but the slowest garbage collections.


Your last point is an "it depends": a lot of companies set up stuff next to the computers of the exchange(s) they're interested in, so that latency is very low and largely bounded.


REALLY??? Could you provide some pointers? What I've been reading in the last year or so wasn't to my memory less than 2-3.5 ms.

10 us would be a whole different ball game!


Depends. 10us is a target for the entire messaging stack. See for instance zeromq.org. Other things, with calculations have different time targets. So determining timing requirements from something as vague as "Low latency trading app" is a bit difficult. I have a friend working for a company that does this, and his job is essentially "shaving microseconds" to quote him.


Wow. 13.4 us "end-to-end latencies and up to 4,100,000 messages a second today", but then again, it was something attractive enough that iMatix (for whom I have a lot of respect) bought the company, so the only surprise is that they were able to get it that fast.

Thanks for the info and pointer!


Agreed; anyone serious is sub-ms



There are times during the app's runtime that it is perfectly safe to collect all generations, and times when we would rather not do a GC.


My name is Mike Fulton and I am the lead architect for WebSphere Real Time, which is a real-time Java runtime environment for use on Linux and AIX. We provide real-time technology in our JVM, including Metronome (already mentioned) for improved determinism, improvements to our JIT compiler to reduce jitter, support for ahead-of-time compilation, if you want to completely eliminate the variability of a runtime java compiler, as well as full support for RTSJ - the real-time specification for java (and a bunch more stuff that I'd be happy to talk about)

My id is fultonm@ca.ibm.com


It may be that they don't want to tell you that jvm is not adequate for the task. For something that is true low latency, you will be competing against outfits that hack the OS, tune their carefully hand-crafted C code, rewrite libraries for performance, possibly diving into assembler at some point, and measure the length of the network cables.

Pick a target latency for a round trip, then figure out what your budget is for network travel, decoding the message, performing your logic, and sending the response.

There are different categories of "real-time", and even different degrees of hard real time. You are in competition with folk who understand all the nuances of what that means.


It is hard to pick a "target latency", you don't know how fast you have to be. I haven't seen any fast buy side firms announcing their speed.


HockeyPlayer, I lead the Real-Time Linux development team at IBM. Feel free to contact me directly dvhltc at us.ibm.com, I've shared this link with the Real-Time Java people so they can get you the appropriate contacts there.


Consider looking at Red Hat MRG's realtime offering. Red Hat have done work with both IBM's and Sun's realtime JVMs.

http://www.redhat.com/mrg/realtime/ http://www.redhat.com/mrg/faq/

It's geared towards low latency. Let me know if I can help more.


Thanks. Can you reccomend a contact at Red Hat?


Me! :) Not sure I want to post my contact info here though. My name is William Henry.


Regarding Sun, join Sun Startup Essentials in your area and talk to them. Access to technical help, for free, is one of the "selling points" of the scheme.

http://www.sun.com/startupessentials/

Get in there before Oracle cancel it. :-)


I don't find rtteam@us.ibm.com on either IBM internal or external sites - what page did you get that id from?I can try to see if I can lookup somebody's relevant id


I'm sorry, I can't find that page anymore. I found it twice in the past, but I can't get back there.


I've gotten good IBM contacts, thanks all!

Anyone from Sun here?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: