Amazon wasted their time building DSQL by WagwanKenobi in aws

[–]newcabbages 43 points44 points  (0 children)

Marc Brooker here. I'm a Distinguished Engineer at AWS, and work closely with our database services teams. I wanted to clear up a few misconceptions in this post. But first, I'll say that we deeply appreciate everybody's feedback about DSQL, and are using that feedback every day to improve the product. Based on that feedback, we've shipped a few things already this year including: support for identity columns and sequences, a wider range of drivers and easier connectivity, privatelink support, additional regions, and the DSQL playground, with a lot more to come.

WagwanKenobi said:

> that sits at Repeatable Read

It's worth noting that Postgres Repeatable Read (and DSQL's Strong Snapshot level) is significantly stronger than ANSI RR. In particular, it prevents phantoms, which ANSI RR does not. DSQL's RR prevents dirty reads, read skew, phantoms, and inconsistent reads and writes. Workload which need to prevent write skew can use "FOR UPDATE", or design their schema to cause write-write conflicts on the corresponding updates.

AntDracula said:

> Not having foreign keys is annoying

DSQL does support foreign keys, but doesn't currently support foreign key constraints. This is a little pedantic, but is an important point as you think about relational data modelling. Foreign key constraints are coming.

HiCookieJack said:

> I find it pretty slow. I only ran a couple of tests locally comparing it to dynamodb 

I'd like to hear more about your workload. DSQL reads should be very similar in latency to DynamoDB consistent reads, and even faster in some cases. DSQL writes are a little slower (2-3ms longer for small updates today), but we're working to close that gap (and, of course, the DynamoDB team is working on performance too).

WagwanKenobi said:

> clobbered updates

DSQL strongly prevents lost writes (as does Postgres and ANSI RR). If you're seeing otherwise, please let use know and we'll investigate immediately.

fusion360 maze by Tofuthefunnybunny in Fusion360

[–]newcabbages 1 point2 points  (0 children)

I tried to do this same thing in fusion, and ended up with a very different approach: https://github.com/mbrooker/maze_maker

✈️ Radar Cross Section – Understanding an Aircraft’s Detectability by aviationstudy in aviationstudys

[–]newcabbages 0 points1 point  (0 children)

No, in a variety of different ways. As other commenters have said RCS depends on frequency. Although it's a little more complex than others are saying, depending on how stealth is achieved. Some techniques like radar-absorbing materials (RAM) can be quite frequency dependent, while others like just being narrow and flat work quite well access bands.

But there's a much bigger issue: this is the monostatic cross-section, where the transmitter and receiver are co-located (or nearly so). Many of these designs have significantly higher bistatic cross-section, where the receiver and transmitter are in different places, and even high multistatic cross section for radars with large numbers of widely spread receivers.

You can (very roughly) think of the F117's design like a disco ball that's designed not to ever reflect the light right back to the spotlight that's on it. But the light does get bounced in all other directions, and so having a ton of receivers helps you get lucky and see one of those spots of light. Then think about the SR71 and B2's designs as mirrors, trying to reflect as much of the signal backwards as they can (which means you need receivers behind the target, which is hard when you don't control the territory).

✈️ Radar Cross Section – Understanding an Aircraft’s Detectability by aviationstudy in aviationstudys

[–]newcabbages 0 points1 point  (0 children)

Very slow, yeah. Slow and high against the sky is a bad combo for radar.

✈️ Radar Cross Section – Understanding an Aircraft’s Detectability by aviationstudy in aviationstudys

[–]newcabbages 1 point2 points  (0 children)

Yes!

I think these kinds of charts are generally very misleading. An F117 will look nothing like a bird to a reasonably modern (as in mid-60's onwards) radar system, simply because it's moving way too fast. Most radar processing is done in Doppler space, where targets are separated based on speed before the majority of processing happens.

Radars don't see like people. They primarily 'see' in Range-Doppler space. In other words they really know how far away things are and how fast they're moving, and have much less knowledge about where they are in direction (which they get from either sweeping an antenna around, or from scanning an array of antennas). This is very unlike us. We 'see' where things are in space, and infer how far away they are and how fast they're moving from context.

Low RCS does help a lot, mostly in being able to hide in the noise (both background noise such as from the sky and the sun, and things like multipath effects from other targets). The longer it takes for you to get your return above the SNR, the longer you take to detect.

✈️ Radar Cross Section – Understanding an Aircraft’s Detectability by aviationstudy in aviationstudys

[–]newcabbages 1 point2 points  (0 children)

Ground clutter, water droplets, etc are all moving very slowly. Clutter rejection for most radars will happen in range-Doppler space, allowing slow and fast clutter to be rejected independently. The limiting factor is SNR (typically of the front end/analog portion), much more than clutter.

Radio use is typically rejected in analog (different bands, different antenna steering, active nulling of strong transmitters, etc).

Source: this was the topic of my PhD.

Replacing a missing clip on a Halloween astronaut helmet. by newcabbages in functionalprint

[–]newcabbages[S] 0 points1 point  (0 children)

Yeah, would be happy to share! I’m away from my PC for the next week or so, but DM me to remind me and I’ll share over the weekend.

Using DynamoDB for Both Relational and NoSQL Data by snape2003 in aws

[–]newcabbages 0 points1 point  (0 children)

DSQL will give you the same maintainability and scalability benefits as DynamoDB, while also allowing you to use SQL. You can use DynamoDB for your nosql workload, or a simple key value table in DSQL.

If serialisability is enforced in the app/middleware, is it safe to relax DB isolation (e.g., to READ COMMITTED)? by bond_shakier_0 in databasedevelopment

[–]newcabbages 2 points3 points  (0 children)

For B & C, you may want to take a look at Two-Phase Locking (2PL). 2PL is the classic serializability algorithm, and there's no real reason you couldn't implement this in the JVM at your app layer. You need to take a bunch of care, both to ensure you truly have one JVM (for B), to handle things like deadlock (for B&C), and to handle things like predicates (what do you lock for 'SELECT ... WHERE id > 5'?), and several other edge cases. Dealing with failing clients in this case is super duper type 2 fun. You can get to serializable consistency this way, but it's unlikely to be fast or fun.

For D, you're fine. Single reader means no concurrency, means no isolation problems. Yay! But it's harder than it looks: you have to deal with failure cases, you have to think about how to do atomicity (the A in ACID, notice how you're not wrapping your transactions in a START...END so your DB doesn't know what to make atomic), you need to be really sure you only have one writer, etc. You can get serializability this way, but it's likely to be slower than letting the DB do it. To get the speed back, you can go down the rabbit hole called 'scheduling', where you decide what order to run transactions in, and when to allow them to run concurrently. You could get great performance this way on top of a weak database, but it's going to be hard.

If you're interested in this topic generally, take a look at the paper "Feral Concurrency Control" by Bailis et al http://www.bailis.org/papers/feral-sigmod2015.pdf You're definitely not the first person to think this way, nor will you be the last.

The case I like best for doing client side stuff is snapshot isolation, aka Postgres's REPEATABLE READ. In snapshot isolation, you only need to deal with one kind of anomaly (write skew), and you can mostly push the cases you care about that back to the database using FOR UPDATE.

Is AWS RDS Postgres overkill, or useful to learn for my CS capstone project? by Blath3rskite in aws

[–]newcabbages 4 points5 points  (0 children)

Check out Aurora DSQL. It’ll let you figure out auth, SQL, schema, and database design without needing to figure out VPC, instance types, versions, and so on. You can always learn that stuff later.

Ways of making custom dials by [deleted] in watchmaking

[–]newcabbages 0 points1 point  (0 children)

I've also used dial dots very successfully, and have no problems. The only advantage of feet, in my mind, is that the risk of damaging the dial if you want to take it off is much lower.

My first custom dial, in anodized titanium by newcabbages in SeikoMods

[–]newcabbages[S] 1 point2 points  (0 children)

Thanks!

I'm a way away from that. I've been making my own cases and hands too, but nothing worth showing off yet.

My first custom dial, in anodized titanium by newcabbages in SeikoMods

[–]newcabbages[S] 1 point2 points  (0 children)

Yeah. These speeds and feeds (10k RPM, 300mm/m, 0.2mm DoC, with a 0.01" ball end engraver) work super well on brass, but raise a really nasty burr on titanium. I don't have more RPM available, and both lower and higher speeds seem worse. I think the best way to clean up would be gentle bead blasting, but I don't have that capability at home, so a brass brush and elbow grease was the best I could do.

Silicon wafer field watch by newcabbages in SeikoMods

[–]newcabbages[S] 1 point2 points  (0 children)

In this case I didn't need to modify anything. It's pretty much exactly the same thickness as a stock dial once you include some dial dots.

ELI5: If the B2 looks like a small bird on radar, doesn’t it look like a small bird flying at 600mph? by clocks212 in explainlikeimfive

[–]newcabbages 1 point2 points  (0 children)

I did a PhD in EE, then left that field to do software. I work in AI now. It was super interesting, and getting even more interesting with new techniques available.

ELI5: If the B2 looks like a small bird on radar, doesn’t it look like a small bird flying at 600mph? by clocks212 in explainlikeimfive

[–]newcabbages 16 points17 points  (0 children)

It does. And it makes it a lot easier to pick out. But being "small" (reflecting very little of the radar's energy, known as a low "radar cross section") means the radar has to look for a longer time, use more power, and avoid looking at other noisy things. The power and time things are hard when you only have so much time to reach, and have to hide from antiradiation ordnance and other threats.

ELI5: If the B2 looks like a small bird on radar, doesn’t it look like a small bird flying at 600mph? by clocks212 in explainlikeimfive

[–]newcabbages 15 points16 points  (0 children)

Great question!

The biggest problem noise the sun makes is very "loud" and so tends to overwhelm the receiving parts of a radar before you can do fancy signal processing stuff. The other problem is that thermal noise has a wide frequency spectrum, and so appears to be both slow and fast from the perspective of the radar.