[Bucardo-general] Possible areas for Bucardo modernization
Jon Jensen
jon at endpoint.com
Thu Oct 22 05:04:46 UTC 2020
Bucardo developers,
I have been working on adding large object support for Bucardo, and along
the way I made some notes of things we might want to discuss to keep the
project alive and kicking, as a good goat should. 🐐
In no particular order:
Should we boost the minimum required Perl version? It's still at 5.8.3. It
seems crazy not to be able to use the // operator that was introduced in
5.10 almost 13 years ago. The current oldest supported Perl version is
5.30, or in the LTS Linux distros, 5.16.3 in CentOS 7 (after CentOS 6 goes
EOL next month). Not a big deal to work around missing // of course, but
seems like a new major Bucardo release might be as good a time as any.
Should we remove Drizzle support, since the Drizzle project is long dead?
There are some workarounds for DBD::Pg < 2.18.1 that can go away once we
require at least that version. It was released in May 2011, so seems like
that could be done now.
The FAQ still uses the old terminology multi-master, master-slave:
https://bucardo.org/Bucardo/FAQ.html - Any objection to replacing that?
Are there any TODO comments we can get rid of in the code? Some have been
there forever. If they should stay, that's fine, just looking for the case
where time has made some no longer needed.
A little code question: Around line 7081 of Bucardo.pm this "binarycols"
array seems unused, and bytea data is converted to base64, so is this
needed?
> ## This is used to bind_param these as binary during inserts and updates
> push @{$g->{binarycols}}, $colinfo->{$colname}{order};
Finally, old Postgres version support:
I was going to suggest we consider increasing the minimum Postgres version
supported, but perhaps this is an area where we should be very
conservative because a major use case for Bucardo is for upgrades, and old
database that have been neglected is where it really shines and the latest
Postgres features are not available.
But for the sake of discussion I saw:
* workaround for clock_timestamp() not existing until 8.2
* array_agg reimplemented for < 8.4
* a few checks for 8.3, 9.0, 9.2
Yet maybe we should leave most of those alone.
Please let me know if any of this resonates!
Thanks,
Jon
--
Jon Jensen
End Point Corporation
https://www.endpoint.com/
More information about the Bucardo-general
mailing list