If this tech turns out to be too expensive (for normal people) we could still use it on a pay-per-use basis, like with a "video conferencing booth". You'd schedule your call and reserve a local booth for both participants through an app. And most companies should be able to afford having one of these in the office.
Hi there, Hopper engineer here. The blog post is pretty accurate from my experience (lowest prices ~3 months out) but if you apply any of this logic to the past year then you're going to have a bad time. The pandemic caused the entire industry to lower their average flight prices and now that things are starting to return to normal, so are prices. Because of that, predicting price trends based on historic data is a bit tougher.
If you use iOS (not sure if we have it on Android just yet) then I'd recommend looking for something called "auto-buy" when you search for a flight. It's basically a limit order for flights and it'll allow you to set a price that you would be comfortable buying at. If the fare dips to that price then it'll book for you. We've seen some insane deals get booked through this product. Just looking at some of them from yesterday there was a round-trip flight from NFO (Norfolk, Virgina) to MCO (Orlando, Florida) that we originally price quoted at $284 for the user and it was booked at $166.
I used to work on the DynamoDB team. Throwaway account because my normal account can be tied back to my real name.
> Each hash key resolves to a number of possible servers the data can be on. Data is replicated across several of these servers. For redundancy. The hash key determines which shard to use.
> On individual machines, each set of data is stored by a compound key of hash key and sort key (if there is a sort key). The data is probably stored on disk sequentially by sort key or close to it.
This is pretty much exactly correct. The hash key maps to a quorum group of 3 servers (the key is hashed, with each quorum group owning a range of the hash space). One of those 3 is the master and coordinates writes as well as answering strongly consistent queries; eventually consistent queries can be answered by any of the 3 replicas.
> They possibly use something like LevelDB for this.[1]
Sigh...if only. I don't remember the exact timeline but LevelDB either didn't exist when we started development or wasn't stable enough to be on our radar.
DynamoDB is this very elegant system of highly-available replication, millisecond latencies, Paxos distributed state machines, etc. Then at the very bottom of it all there's a big pile of MySQL instances. Plus some ugly JNI/C++ code allowing the Java parts to come in through a side door of the MySQL interface, bypassing most of the query optimizer (since none of the queries are complex) and hitting InnoDB almost directly.
There was a push to implement WiredTiger as an alternative storage engine, and migrate data transparently over time as it proved to be more performant. However, 10gen bought WiredTiger and their incentive to work with us vanished, as MongoDB was and is one of Dynamo's biggest competitors.
If this tech turns out to be too expensive (for normal people) we could still use it on a pay-per-use basis, like with a "video conferencing booth". You'd schedule your call and reserve a local booth for both participants through an app. And most companies should be able to afford having one of these in the office.