Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Nice examples and graphs. What really confuses me is the definition of "low-latency" nowadays. The meaning suffers a slippery slope in recent years. It used to refer to a scale of microseconds at HFT shops, then it came to web request latency at a scale of milliseconds. Now every GC-based language claims they are "low-latency" because 90%/95%/99% GC stop is within 16.67ms/50ms/whatever. Therefore today some HFT developers invented words like "ultra-low latency"[0] to name their work.

[0]: https://en.wikipedia.org/wiki/Ultra-low_latency_direct_marke...



On the flip side, I've also heard "low-latency" (or even "instant") to mean "within 30 seconds", as an upgrade from "the mainframe runs a batch job every hour (or day)".

I don't think there's any way to consider a phrase like "low latency" without considering what you're talking about.


Good point, the word "low" itself is relevant.


> What really confuses me is the definition of "low-latency" nowadays

There has never been a strict definition of “low latency”. It is heavily context-dependent. Something which is not “low latency” enough for live audio or a car’s steering controller might be plenty fast for an internet text chat service.


A better term is soft or hard real-time.


While not completely orthogonal, I feel like real-time (soft or hard) is distinct from low latency; real-time can be still relatively high-latency as long as the latency is bounded/controlled/predictable. Of course generally in practice real-time systems strive to have low latency too.


Absolutely. Think about turning a super tanker or something other huge. It must happen on time. It doesn't matter if it takes one or two seconds to initiate.


Not exactly. Hard Real-Time = Missing a deadline is a major system fault. Hard read-time would be anti-lock breaks on your car: Did the cylinder not actuate within a given deadline? If so, disable the ABS feature system since its no longer deterministic, set an error code on the car's computer, and make some error light on the dashboard go on.

Soft real time is video decoding: We need to render 1 frame every 1/30th-ish per second. If we miss our deadline, we either need to skip that frame and move onto the next, or pause to fill a buffer.

You can have a hard real time system where the latency required is measured in seconds and a soft realtime system where the deadline is in nanoseconds.


Its related, but not equivalent.

real-time == "bounded latency" (to a soft or hard degree).

low-latency implies no threshold, just low relative to something else.


I thought the difference between soft vs hard realtime wasn't one of magnitude, but context.

Soft: After X time, usability of the data degrades with age.

Hard: After X time, the data is useless (example: realtime car control systems; if you take too long the car has already crashed)


Oh, sorry, I mean that low latency is a synonym of real-time, either hard or soft depending on the application.


Someone at Google once told me they worked on “real-time” search. Having come from graphics and video rendering I asked what that meant and she said it was how search may or may not respond to key presses.

Whatever it was, it certainly wasn’t real-time.


That's been the case for operating systems and it's quite effective


Prior to HFT shops, embedded use cases might consider 100s of us to be the threshold for low-latency (40 instructions on a typical 8-bit micro running in single-digit MHz is under 100us, with no cache-misses to muck up timings).


In HFT shops, we usually categorise stuff as “hardware” (fpga) and “software” these days. Low-latency typically means sub-microsecond.


Do HFT shops use open-source code for FPGA dev?


I’d say typically not, there’s not much to use as most of the FPGA code would be know-how and optimised down to cycle-level for each particular exchange.


How about basic frameworks like high-speed PCIe communication with the operating system, including an open-source driver for Windows and Linux? That should be algo independent.


I’m not an fpga engineer myself in my firm, so I can’t answer that with certainty, but one thing I know for sure is how strong the “not invented here” syndrome is in this kind of shops, so you can guess...


A bit of competition is always fun, you can point them at the code/papers linked from https://forums.xilinx.com/t5/Xcell-Daily-Blog-Archived/Need-...


Context is king. When you're working on the timescale of days, low latency can be within minutes. By the same measure, when you expect to get a new event every microsecond, then nanoseconds matter.

In this case, Gambit (the outfit who sponsored this work) are a stat arb shop doing HFT. So I'd say the label fits.


HFT shops refer to things on nanosecond and sometimes even picosecond scale if you want to talk seriously about it.

Source: software engineer who's worked (or still works) for electronic trading firms for the last 10ish years.


I'd really like to know the context in which the time for light to travel ~1 inch or (generously) 1/200 of 1 cpu operation or 1/100 of a cache read is relevant to anything.


The more accurate data captures are, the more accurate models of the data can become. Also, for things like pure arbitrage (which virtually doesn't exist anymore due to the efficiency of markets with computers trading), those trades are Taladega Nights style "you're first or you're last" winner take all.

As another poster commented about, it is not uncommon in RF. Fiber optics along with Microwave radios are common in the space. The goal is to get to the limit of what physics allows ultimately.


For RF work it's common to have to send a signal at a nanosecond resolution to be received properly due to time sharing.




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

Search: