Repository navigation
Replies: 1 comment
|
I agree with this proposal. From our perspective, More importantly, the data ecosystem has changed considerably since Compared with these newer approaches, I also think this is an important part of keeping Apache Cloudberry moving forward. As an actively evolving open-source project, we need to not only continuously add support for new technologies and emerging use cases, but also periodically remove legacy components that no longer provide sufficient value. Otherwise, the codebase will inevitably become more complex and the maintenance burden will continue to grow. This is a common pattern in mature open-source infrastructure projects. For example, Linux continues to add support for new hardware architectures and platforms while also removing support for obsolete hardware and platforms when they are no longer widely used. This allows the project to evolve without carrying unnecessary legacy code indefinitely. In that sense, removing Therefore, I support removing Lirong |
Uh oh!
There was an error while loading. Please reload this page.
Proposers
Dianjin Wang (@tuhaihe)
Proposal Status
Under Discussion
Abstract
This proposal suggests removing
gpmapreducefrom Apache Cloudberry, startingwith the 3.0 development line.
Concretely, on
main(currently3.0.0-devel) we would delete:gpcontrib/gpmapreduce/directory (44 files, ~13,500 lines),gpmapreduceclient binary that is currently installed into$GPHOME/bin/,--enable-mapreduceconfigure option and the unusedUSE_MAPREDUCEdefine,gpmapreduce_helpfile shipped bygpMgmt/doc/.The 2.x line (
REL_2_STABLE, currently2.2.0-incubating) would not change.gpmapreducekeeps building and shipping there for the entire supported life of2.x, so users who still depend on it have a supported place to stay. The removal
takes effect in 3.0 and remains in effect for 3.x.
Motivation
1. This functionality is no longer needed according to the commit
4d926ede502Commit
4d926ede502(2024-09-19) disabled the gpmapreduce regression test ingpcontrib/Makefile, with the following commit message:However, only the test was turned off. The build was not. Our release build
script still passes
--enable-mapreduce(
devops/build/automation/cloudberry/scripts/configure-cloudberry.sh), andgpcontrib/gpmapreduce/Makefilestill installs the binary into$GPHOME/bin/gpmapreduce.2. Upstream removed it three years ago
Greenplum deleted the same code in
6bc9129c90b(2023-07-13):3. The code is effectively frozen
git log gpcontrib/gpmapreduceshows that every commit since the initialCloudberry code dump has been mechanical: rebranding, typo fixes, Python 3
migration, and PostgreSQL merge fallout. The last functional change dates back
to the Greenplum era.
4. Users have better alternatives today
The workloads gpmapreduce was designed for in 2008 are well covered by plain SQL
plus UDFs (PL/pgSQL, PL/Python, PL/Perl, PL/Container), external tables /
gpfdist, and FDWs. We are not aware of active users of the YAML job-spec
interface, and this proposal is partly a call for such users to speak up.
Implementation
The change is confined to build glue and one self-contained directory. Proposed
as a single PR with atomic commits:
gpmapreduce— drop--enable-mapreducefromdevops/build/automation/cloudberry/scripts/configure-cloudberry.sh(andupdate the feature comment at the top of that file), and remove the
mapreducetarget plus theinstall/clean/distcleanbranches fromgpcontrib/Makefile.gpcontrib/gpmapreduce/— 44 files, ~13,500 lines.--enable-mapreduce,USE_MAPREDUCE, thelibyaml/yaml.hchecks that are specific to mapreduce, and themapreduce-specific Perl requirement, in
configure.ac; regenerateconfigure; drop#undef USE_MAPREDUCEfromsrc/include/pg_config.h.in.gpMgmt/doc/gpmapreduce_helpand its entry ingpMgmt/doc/Makefile.<exclude>gpcontrib/gpmapreduce/**</exclude>from
pom.xml.Rollout/Adoption Plan
Version plan
REL_2_STABLE,2.2.0-incubatingand later 2.x releases)gpmapreducecontinues to be built and shipped. Users who still depend on it stay on 2.x for the supported life of that line.main,3.0.0-devel)This gives users an explicit, supported landing spot rather than an abrupt
removal, while keeping the 3.x tree clean from the start of the line.
Open questions for the community
gpmapreducein production? If so, on whichCloudberry version, and what is the migration blocker?
Are you willing to submit a PR?
All reactions