HN user

mattashii

1,604 karma

PostgreSQL hacker / contributor since 2020, with a focus on indexes, and general performance improvements in subsystems.

Building storage backends @ Databricks (previously Neon) since 2021

Posts28
Comments387
View on HN
www.youtube.com 2mo ago

Wagering on War – How Insider Trading Destroys Armies [video]

mattashii
5pts0
www.bitsoffreedom.nl 9mo ago

NL Judge: Meta must respect user's choice of recommendation system

mattashii
327pts239
nos.nl 1y ago

Russian former ASML employee suspected of theft of trade secrets

mattashii
3pts0
www.reuters.com 1y ago

Boeing lines up $35B in funds as strike hammers finances

mattashii
2pts0
www.cnil.fr 1y ago

Uber fined €290M for data transfers outside the EU

mattashii
6pts1
blog.chriszacharias.com 1y ago

Page Weight Matters (2012)

mattashii
1pts0
www.depesz.com 2y ago

Waiting for PostgreSQL 17 – Invent Serialize Option for Explain

mattashii
3pts0
www.pinaraf.info 2y ago

I wrote a new JIT compiler for PostgreSQL

mattashii
290pts35
qntm.org 2y ago

The Frame-by-Frame

mattashii
2pts0
blogs.oracle.com 2y ago

MySQL Innovation and Long-Term Support (LTS) Versions

mattashii
3pts1
www.youtube.com 3y ago

Reverse emulating the NES to give it super powers (2018) [video]

mattashii
1pts0
aws.amazon.com 3y ago

Amazon Aurora I/O-Optimized Cluster Configuration

mattashii
3pts2
securityriskahead.eu 4y ago

EU legislation eIDAS article 45.2 may force inclusion of insecure QWAC root CAs

mattashii
44pts36
www.consilium.europa.eu 4y ago

RU's aggression against UA: EU bans certain Russian banks from SWIFT system

mattashii
2pts0
blogs.nasa.gov 4y ago

Boeing Starliner OFT-2 service module replaced with CFT service module

mattashii
2pts0
www.wiffa.aq 4y ago

Wiffa: Winter International Film Festival of Antarctica

mattashii
2pts0
www.mersenne.org 4y ago

M(57885161) verified as 48th Mersenne Prime

mattashii
163pts116
www.depesz.com 4y ago

PostgreSQL 15: default permissions for everyone is now restricted to db owner

mattashii
120pts18
about.gitlab.com 5y ago

Gitlab 14.0 Released

mattashii
26pts1
docs.gitlab.com 5y ago

Gitlab usage ping config file did not disable usage ping

mattashii
3pts1
www.depesz.com 5y ago

PostgreSLQ explain output visualiser explain.depesz.com hits 1MM plans milestone

mattashii
3pts0
everydayastronaut.com 5y ago

Starship and Its Belly Flop Maneuver

mattashii
5pts0
about.gitlab.com 5y ago

Gitlab licences its product, brand to independent Chinese org for China market

mattashii
14pts0
www.postgresql.org 5y ago

PostgreSQL 13.2 released with over 80 bugfixes, including 2 security issues

mattashii
4pts0
groups.google.com 5y ago

Mozilla to remove Camerfirma from TLS trust store by FF 88, disables email trust

mattashii
5pts0
groups.google.com 5y ago

Google to Distrust AC Camerfirma SA (CA) Starting Chrome 90

mattashii
11pts2
aws.amazon.com 5y ago

AWS r5b instances, with 3x higher EBS bandwidth and support for EBS gp3 volumes

mattashii
1pts2
aws.amazon.com 6y ago

AWS announces AMD Rome-powered c5a instances

mattashii
2pts0

Whilst they may provide a strong signal, I wouldn't call it a guarantee. If I wanted to avoid vibe-coded contributions I might add such files, but with instructions for the agents that they're not allowed to read or touch any of the files in the repository.

If the status column changes, and an index depends on the contents of that status column (be it by referencing it in its columns, or in the index's WHERE filter) then an update of the status column will prevent the HOT optimization from being applied.

Possibly, ballot sheet size?

The national elections in NLD have a single ballot in the whole country, with 10+ parties who each get a column of their candidates on the ballot, and with one box for each of the candidates. In these elections for the 150 seats of parliament, often there are 200+ candidates listed total. As a result, the ballot sheets need to be quite large and so are quite far into the 'unwieldy' part of the handling spectrum.

This size issue also complicates verification and counting, because you have to verify that of all checkboxes, exactly one is filled in, and sorting/counting needs to do this for practically every ballot.

There has been some experimenting with changing the ballot to a 'party' and 'list number' ballot, where you fill in the party of your chosen candidate together with their number on the party list, but AFAIK that has not (yet?) been approved for wider use.

The order returned from the Index Scan is not the ordering requested by the user, so there would still have to be a full (or topk) Sort over the dataset returned from the index scan, which could negate the gains you get from using an Index Scan; PostgreSQL itself does not produce merge join plans that merge a spread of index scans to get suffix-ordered data out of an index.

There is also a lot of money, there is also good management, and there are also lots of incentives.

But management depends on your manager; at scale it becomes likely there are bad apples in every management tree. Incentives may not align with what you want or need, with work From Home policies getting shrunk. Even money sometimes is a point of contention.

Facebook Nederland B.V. is just one of the defendants; the other defendants are Meta Platforms Ireland (based in Ireland), and Meta Platforms Inc. (the main company, based in the USA)

The Dutch subsidiary has been acquitted, as it only managed advertisement income, not the app design.

Meta Platforms Inc. has been acquitted, as it itself doesn't directly provide apps or services in Europe (nor the Netherlands) - legally that's managed by Meta Platforms Ireland and so not Inc.'s responsibility.

Meta Platforms Ireland has been ordered to implement these changes, enforced by the up to 5 million euro fine (see pages 20 and 21 in the verdict)

They do handle minor versions upgrade so the code handling upgrading is there but devs seems to be quite adamant against adding major version upgrade

Minor versions of PostgreSQL have constraints that major versions don't have; in that minor versions in principle don't see new features added. This allows minor versions of the same major release to run against the same data directory without modifications.

However.

Major versions add those new features, at the cost of changes to internals that show up in things like catalog layout. This causes changes in how on-disk data is interpreted, and thus this is incompatible, and unlike minor releases this requires specialized upgrade handling.

Those are some great features. More than I remembered, and it's only been a year.

Personally, I'm very happy to see parallel builds for GIN indexes get released - (re)index time for those indexes is always a pain. I'm looking forward to further improvements on that front, as there are still some relatively low-hanging fruits that could improve build times even more.

(Opinions are my own, not of my employer)

I think that "under review" claim is doing some very heavy lifting, especially when it relates to their changes to index tuple lifecycle management. The patches that have been submitted are unlikely to get committed in full anytime soon, even after substantial changes to the patches' designs.

PostgreSQL just has not been designed for what OrioleDB is doing, and forcing OrioleDB's designs into PostgreSQL upstream would a lot of (very) sharp edges that the community can't properly test without at least a baseline implementation - which critically hasn't been submitted to upstream. Examples of these sharp edges are varsized TIDs, MVCC-owning indexes, and table AM signalled index inserts.

There are certainly ideas in OrioleDB's designs that PostgreSQL can benefit from (retail index tuple deletion! self-clustering tables!), but these will need careful consideration in how this can be brought into the project without duplicating implementations at nearly every level. A wholesale graft of a downstream fork and then hoping it'll work out well enough is just not how the PostgreSQL project works.

Trade in War 11 months ago

I think what they refer to is that while the interests of the individual and the country almost never align, the government can work to align these interests; e.g. through tariffs on trading with that other country. By doing so, a country can reduce/remove the incentive to trade with that other country's individuals, thus aligning the interests.

I hope that ZeroSSL has improved their policies and procedures in the past years so they're more safe and robust. Four and a half years ago, there were some significant oversights in certificate lifecycle management, TOS, and handling of key material, which needed external parties to notify them of those issues before they fixed them. To me that was an indication of limited awareness of WebPKI and security principles.

See e.g. https://bugzilla.mozilla.org/show_bug.cgi?id=1698936, https://bugzilla.mozilla.org/show_bug.cgi?id=1699756

The Core of Rust 11 months ago

The clearest difference is that in rust these things are explicit rather than implicit. To do this in rust you'd have to use 'static, etc.

You could use 'static, or you can move (partial) ownership of an object into itself with Rc/Arc and locking, causing the underlying counter to never return to 0. It's still very possible to accidentally hold on to a forest.

Long Term Support 12 months ago

The percentage of comments in line counts doesn't measure the quality of the comments, nor the quality of the codebase.

It's rather easy to get over 50% by putting a comment above each line of code, containing the output of an LLM that's asked "what does this line do" and supplied with exactly that line of code. It's much harder to make sure the comments make sense and actually add value.

The mass of a star was at some point a nebula, which collapsed into the star.

That collapse reduced the gravitational potential energy of the mass of that nebula, which through accelleration, friction, and pressure, was turned into heat energy.

That heated mass will emit black-body emissions, and so the gravitational energy is now being radiated as light.

Wouldn't it be possible to float teflon balloons (without ever descending to the surface), and use those to carry a launch platform? Samples do not need to be surface samples, the atmosphere itself seems quite interesting already.

And note that you may be able to "fish" for samples from an atmospheric floating platform; there is no specific need to get all the way down to the rocks with your rocket.

Apple vs the Law 1 year ago

Yet emerging markets move incredibly fast, and the goal is to discover those trenches and occupy them.

Well, only if you make it a goal to occupy all the trenches. The EU has realized that it does not want all possible trenches occupied. For example: There is a lot of market share to be had in waste disposal by dumping it in the rivers and oceans. Regulation generally prohibits this, because we don't want our rivers and oceans full of waste.

Capitalist market self-regulation wouldn't have done this without external pressure (regulation, litigation, etc.) because the capitalist market would externalize all costs if it would increase profits.

It's more than just one mapping index, though.

The CMU paper indicates the logical keys are either TupleID or Primary Key, while the bridged index is actually a TupleID that resolves to a Primary Key, which resolves to the actual tuple - one more level than indicated by 6.1's explanation of logical pointers.

It's not entirely clear but this isn't an issue in multi instance upstream Postgres clusters?

No, it isn't an issue with single-instance PostgreSQL clusters. Multi-instance PostgreSQL clusters (single primary, plus streaming/physical replicas) are affected.

What they -too- discovered is that PostgreSQL currently doesn't have consistent snapshot behaviour between the primary and replicas. Presumably, read-only transaction T2 was executed on a secondary (replica) node, while T1, T3, and T4 (all modifying transactions) were executed on the primary.

Some background:

Snapshots on secondary PostgreSQL nodes rely on transaction persistence order (location of commit record in WAL) to determine which transactions are visible, while the visibility order on the primary is determined by when the backend that authorized the transaction first got notice that the transaction was completely committed (and then got to marking the transaction as committed). On each of these (primary and secondary) the commit order is consistent across backends that connect to that system, but the commit order may be somewhat different between the primary and the secondary.

There is some work ongoing to improve this, but that's still very much WIP.