HN user

state_machine

1,223 karma

http://davidt.io

Posts69
Comments76
View on HN
www.cockroachlabs.com 3mo ago

Yields Are Up, Latencies Are Down: Goroutine Scheduling in CockroachDB

state_machine
2pts0
www.cockroachlabs.com 3y ago

How we rebuilt bulk operations to preserve a history of changes

state_machine
10pts0
analytics.firstdata.com 7y ago

Real-Time Holiday Consumer Spending Dashboard

state_machine
1pts0
www.fastcoexist.com 9y ago

Wind Energy Without Turbines

state_machine
1pts0
www.fastcoexist.com 9y ago

When Paris Closed a Major Road to Cars, Half Its Traffic Just Disappeared

state_machine
21pts5
golang.org 9y ago

Go 1.7.1 Released

state_machine
144pts27
www.citylab.com 9y ago

Are Cities Too Complicated?

state_machine
109pts69
360.here.com 9y ago

New data visualisation shows the beating heart of London

state_machine
14pts2
www.cnu.org 9y ago

The morbid and mortal toll of sprawl

state_machine
1pts0
www.vox.com 9y ago

California is about to find out what a truly radical climate policy looks like

state_machine
8pts1
fivethirtyeight.com 9y ago

New Yorkers Will Pay $56 a Month to Trim a Minute Off Their Commute

state_machine
13pts3
ohsonline.com 9y ago

NHTSA and FMCSA Propose Speed Limiters

state_machine
2pts0
www.citylab.com 9y ago

Dubai's Hyperloop Dreams Are Shockingly Sensible

state_machine
2pts0
www.citylab.com 9y ago

User Studies: Schools Add Washing Machines, See Attendance Improve

state_machine
1pts0
www.youtube.com 9y ago

The Go Gopher – A Character Study [Renee French at GopherCon 2016]

state_machine
1pts0
www.thedailybeast.com 9y ago

How Marconi Gave Us the Wireless World

state_machine
1pts0
golang.org 9y ago

Go 1.7 Release Notes

state_machine
2pts0
medium.com 9y ago

Tour of Go's encoding Package

state_machine
2pts0
medium.com 9y ago

Go Walkthrough: bytes and strings packages

state_machine
2pts1
medium.com 9y ago

[Go] Standard Package Layout

state_machine
10pts0
jpwright.net 9y ago

Build Your Own NYC Subway System

state_machine
3pts0
www.wnyc.org 9y ago

From Soviet Russia to the Tappan Zee Bridge, a Short History of the E-ZPass

state_machine
1pts0
www.politico.com 9y ago

The art of the interchange

state_machine
1pts0
www.cockroachlabs.com 10y ago

Modesty in Simplicity: CockroachDB's JOIN

state_machine
13pts0
qz.com 10y ago

“Clean-energy” projects contaminating millions of gallons of valuable water

state_machine
2pts0
www.wired.com 10y ago

Google Just Plugged into Japan with Its Own Undersea Cable

state_machine
6pts1
nextcity.org 10y ago

Can Too Much Infrastructure Doom a City?

state_machine
1pts0
www.theguardian.com 10y ago

London Array blows away green energy competition

state_machine
5pts0
www.slate.com 10y ago

High-speed rail between Houston and Dallas has an eminent domain problem

state_machine
1pts2
www.latimes.com 10y ago

California's last nuclear power plant shutting down

state_machine
12pts2

it takes longer to load a train with assigned seating -- that's why say, Amtrak might do it, but commuter rail trains, that at peak run minutes apart and want to minimize dwell-times at highly contended platforms, optimize for loading speed.

I've only done much less hellish Grand Central version, and I think Metro North publishes track assignments much earlier.

That said though, just imagine how much worse it would be if that mass rush was between platforms, fighting opposing traffic, instead of just from a (mostly) open waiting area.

I can see why the MTA wouldn't want you telling people to go to a track before it is actually assigned -- if the train ends up on a different track, now you need to get all those people back up, off that platform an on to the new one, clogging stairs that that people who actually wanted that platform might be trying to use too. Obviously it would be nice to assign tracks earlier, so that people can head straight to the right platform, but sending people to potentially the wrong platform seems even worse.

EDIT: Penn is extremely platform/track constrained -- NJ Transit, LIRR and Amtrak are all sharing a fixed number of platforms, some of which are too short.

To maximize platform utilization, they have to wait until the last minute to finalize track assignments -- if you reserve one too early and the train ends up late, you're wasting an empty platform. Once you send a horde of people to a platform, moving them to a different one is a challenge (stairs/bottlenecks, communication, etc).

I did not realize the physiological effects would be as severe:

The fraction of carbon dioxide is growing: It just crossed 400 parts per million, and high-end estimates extrapolating from current trends suggest it will hit 1,000 ppm by 2100. At that concentration, compared to the air we breathe now, human cognitive ability declines by 21 percent.

CockroachDB 1.0 9 years ago

One of the challenges for us in implementing something like LISTEN/NOTIFY comes from our distributed nature: since a table is likely broken up across many nodes, you somehow need to aggregate changes from all of them back into a single change feed wherever the listener is, and in such a way that it doesn't create a single point of failure.

CockroachDB 1.0 9 years ago

Yes, change feeds (and triggers) are on the roadmap (though not yet in active development).

CockroachDB 1.0 9 years ago

[cockroachdb employee]

Short answer: no.

Long answer: at their closest earth and mars are about 54m km apart, at the furthest it's over 400, with an average of around 225m km, so theoretical latency is varies between 4 and 24 minutes.

CockroachDB uses synchronous replication via raft, and that latency would cause problems as would some other setting like our window sizes and their interaction with timeouts.

Go 1.7.1 Released 10 years ago

The 14 issues tagged 1.7.1:

  net: retry DNS lookups before failure?
  io: endless loop in MultiReader in Go 1.7
  path/filepath: EvalSymlinks is broken for relative paths on Windows
  net/http/httputil: Proxy terminates HTTP/2 stream before reading response body.
  hash/crc32: wrong output for unaligned input on s390x
  cmd/compile: incorrect assignment to uint64 via pointer converted to *uint16 (new in 1.7)
  doc: deprecation message for Transport.CancelRequest is not correct Documentation
  compress/zlib: Writer appears to ignore underlying writer errors at times.
  net: NATs client can't connect to server when client built with go1.7: "dial tcp: no suitable address found"
  doc: go1.7 release notes include typo for TLSConfig.NextProtos Documentation
  reflect: ChanOf makes "han" types instead of "chan" types
  x/mobile: Binding go mobile framework on iOS 9 with golang1.7rc6 crash when call debug.FreeOSMemory()
  net/http: nil pointer dereference in closeConnIfStillIdle
  website: retina favicon Suggested

Personally I value (lack of) variance much more than absolute duration: I can easily plan around a either a 19 or 22 minute commute as long as that's consistent -- it's the needing to allow for 20-40 (looking at you, MUNI) that made planning hard, and that I'll pay a premium to avoid.

[engineer at cockroach]

How high you can set it depends on your access patterns -- there is some overhead to iterating though MVCC revisions during reads, in addition to the on-disk space you mention.

If your workload involves frequent writes to the same rows, GCing some of those revisions sooner would have a greater impact, whereas if you have a write-light workload, or if your writes are spread over rows such that a given row doesn't doesn't see frequent repeated updates, then you could probably use much a higher GC threshold with minimal overhead.

[engineer at cockroach]

Basically, yes, all keys the KV, including the index entries, include a timestamp suffix.

Repeated edits to the same value will accumulate MVCC revisions until they are GCed, and those will be iterated over during access, so, as you point out, a use-case like yours would likely benefit from shorter a GC cutoff and GC _is_ configurable in cockroach.

Some highlights from the FAQ: "Instead of charging the device from pc with electricity you will charge our device ( WiFiEX) with internet from your home-wifi."

also: "And yes , we will also try to cover the whole planet with satellites for sure"

Sure, the context of the thread is that ruby-core is reluctant to start changing OpenSSL defaults because Security is Hard, the ruby team is volunteers who might not have expert-level crypto understanding, and and you risk doing more harm than good if you mess with crypto when you do not know what you're doing, so they'd rather leave OpenSSL's defaults alone, and let OpenSSL, written and reviewed by security focused people, fix any issues (I think this is a fair summary?).

While these are valid concerns, you can't wholly pass the buck to OpenSSL and to people installing a new version of OpenSSL and re-linking ruby against that -- ruby project should should always ship the most secure ruby possible, all the time.

Newer OpenSSL has already changed these defaults, smart people who know what they are doing have already agreed and documented that this is a good idea, and ruby is only hurting their users by dodging responsibility.

edit: spelling.

As one of OP's direct reports, I can attest to this system working really well and, at least for me, being a much faster and more comfortable experience than doing a written peer review.

Protecting the OS does protect you: stealing my data/cookies today is different than installing OS level backdoor / keylogger and stealing my bank password, tax prep, etc next month/year/etc.