[PATCH] SortSupport for macaddr type

From: Brandur <brandur(at)mutelight(dot)org>
To: pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: [PATCH] SortSupport for macaddr type
Date: 2016-08-26 17:44:22
Message-ID: 20160826174422.GA61899@st-brandur1.local
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers


I've attached a patch to add SortSupport for Postgres' macaddr which has the
effect of improving the performance of sorting operations for the type. The
strategy that I employ is very similar to that for UUID, which is to create
abbreviated keys by packing as many bytes from the MAC address as possible into
Datums, and then performing fast unsigned integer comparisons while sorting.

I ran some informal local benchmarks, and for cardinality greater than 100k
rows, I see a speed up on `CREATE INDEX` of roughly 25% to 65%. (For those
interested, I put a few more numbers into a small report here [2].)

Admittedly, this is not quite as useful as speeding up sorting on a more common
data type like TEXT or UUID, but the change still seems like a useful
performance improvement. I largely wrote it as an exercise to familiarize
myself with the Postgres codebase.

I'll add an entry into the current commitfest as suggested by the Postgres Wiki
and follow up here with a link.

Thanks, and if anyone has feedback or other thoughts, let me know!


[1] https://www.postgresql.org/message-id/CAM3SWZR4avsTwwNVUzRNbHk8v36W-QBqpoKg=OGkWWy0dKtWBA@mail.gmail.com
[2] https://docs.google.com/spreadsheets/d/1cUqbg9RTgSo16WrrfJJwDP1eDaWL3TNOxnIOFNpfwgA/edit?usp=sharing

Attachment Content-Type Size
0001-Implement-SortSupport-for-macaddr-data-type.patch text/plain 9.8 KB


Browse pgsql-hackers by date

  From Date Subject
Next Message Brandur 2016-08-26 17:54:52 Re: [PATCH] SortSupport for macaddr type
Previous Message Tom Lane 2016-08-26 17:15:50 Re: PG_DIAG_SEVERITY and a possible bug in pq_parse_errornotice()