Typical for 70s and 80s.
Honestly, designing a 21st century database is a different thing if compared to back then.
You can use 128 bit integers, provided that you really want to use integers. And maybe you put a timestamp along.
and maybe put a 32bit timestamp along and pretend it can somehow store more than a 32bit integer can.
You can shard them between 2 tables. Then migrate them to a single one later.
And then I pulled apart PT-OSC to make it more... less incredibly stupid about resource use, so it wouldn't cause too much load while it backfilled. And let it run for about 6 weeks.
Good luck! It's a fun problem to have - excess success, and a light puzzle to solve :)
That's much more of a "kick the can down the road" solution to only double your usable range, but if all positive the values in the rows shouldn't actually have to change, just the column metadata, so it could theoretically be more or less instantaneous. I guess in practice this doesn't happen; the server would rather use its generic "rebuild the table" alter method for changing a column type.
But it seems like you could reasonably do it if it's a signed-to-unsigned change and there's no negative values and there's an index on the column to make checking that fact fast. Or one of those third-party/lower-level type tools could let you do it without any checking.
schoen•2h ago
https://arstechnica.com/information-technology/2014/12/gangn...
wging•1h ago