[Proposal] Remove `gpcontrib/gpmapreduce` starting from Cloudberry 3.0
Maintainer thường phản hồi trong vòng 3 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 22/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Lĩnh vực
- build-system, database
Hướng nghiên cứu
Start with the Under Discussion thread and the open question about who still uses gpmapreduce, since the removal is not yet decided. Then read gpcontrib/Makefile, configure.ac, src/include/pg_config.h.in, gpMgmt/doc/Makefile, pom.xml and the build script devops/build/automation/cloudberry/scripts/configure-cloudberry.sh. Done means a build without --enable-mapreduce succeeds and no gpmapreduce binary is installed, but only after maintainers agree to the removal.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
Discussed in https://github.com/apache/cloudberry/discussions/2030
Originally posted by tuhaihe September 18, 2026
Proposers
Dianjin Wang (@tuhaihe)
Proposal Status
Under Discussion
Abstract
This proposal suggests removing gpmapreduce from Apache Cloudberry, starting
with the 3.0 development line.
Concretely, on main (currently 3.0.0-devel) we would delete:
- the
gpcontrib/gpmapreduce/directory (44 files, ~13,500 lines), - the
gpmapreduceclient binary that is currently installed into$GPHOME/bin/, - the
--enable-mapreduceconfigure option and the unusedUSE_MAPREDUCEdefine, - the
gpmapreduce_helpfile shipped bygpMgmt/doc/.
The 2.x line (REL_2_STABLE, currently 2.2.0-incubating) would not change.
gpmapreduce keeps building and shipping there for the entire supported life of
2.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 4d926ede502
Commit 4d926ede502 (2024-09-19) disabled the gpmapreduce regression test in
gpcontrib/Makefile, with the following commit message:
As gpmapreduce is implemented for compatibility of execution of mapreduce,
which is no longer need now, we disable gpmapreduce regress test in this commit.
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), and
gpcontrib/gpmapreduce/Makefile still installs the binary into
$GPHOME/bin/gpmapreduce.
2. Upstream removed it three years ago
Greenplum deleted the same code in 6bc9129c90b (2023-07-13):
It's decided that this functionality will not be provided for GPDB7 and
forward. Hence, deleting the code for the same.
3. The code is effectively frozen
git log gpcontrib/gpmapreduce shows that every commit since the initial
Cloudberry 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:
- Stop building and shipping
gpmapreduce— drop--enable-mapreducefrom
devops/build/automation/cloudberry/scripts/configure-cloudberry.sh(and
update the feature comment at the top of that file), and remove the
mapreducetarget plus theinstall/clean/distcleanbranches from
gpcontrib/Makefile. - Delete
gpcontrib/gpmapreduce/— 44 files, ~13,500 lines. - Remove the configure surface —
--enable-mapreduce,USE_MAPREDUCE, the
libyaml/yaml.hchecks that are specific to mapreduce, and the
mapreduce-specific Perl requirement, inconfigure.ac; regenerate
configure; drop#undef USE_MAPREDUCEfromsrc/include/pg_config.h.in. - Remove the help file —
gpMgmt/doc/gpmapreduce_helpand its entry in
gpMgmt/doc/Makefile. - Drop the RAT exclusion — remove
<exclude>gpcontrib/gpmapreduce/**</exclude>
frompom.xml.
Rollout/Adoption Plan
Version plan
| Line | Behaviour |
|---|---|
2.x (REL_2_STABLE, 2.2.0-incubating and later 2.x releases) |
No change. gpmapreduce continues to be built and shipped. Users who still depend on it stay on 2.x for the supported life of that line. |
3.0 (main, 3.0.0-devel) |
Removed. |
| 3.x | Stays removed; not re-introduced. |
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
- Is anyone still running
gpmapreducein production? If so, on which
Cloudberry version, and what is the migration blocker?
Are you willing to submit a PR?
- Yes I am willing to submit a PR!
- Ngôn ngữ chính
- C
- Star
- 1.4k
- Fork
- 260
- Merge trung bình
- 4 ngày 19 giờ
- Pull request đã merge (30 ngày)
- 54
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của apache/cloudberry
-
[Bug] Expand fails to recognize user-defined tablespacesCó thể đã có người làm @nix-oss đã nhận 58 ngày trước. Đang mởtype: Bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
apache/cloudberry#1885 · 2 reaction ·
Maintainer thường phản hồi trong vòng 3 ngày
-
gpexpand first stage fails: 'SyncPackages' object has no attribute 'ret' (extension sync never runs; regression)Có thể đã có người làm @talmacschen-arch đã nhận 119 ngày trước. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 86/100
apache/cloudberry#1825 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
type: Bug
Độ khó 3/5 Nửa ngày Mức phù hợp với người mới 58/100
apache/cloudberry#2137 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
type: Bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 30/100
apache/cloudberry#2135 ·
Maintainer thường phản hồi trong vòng 3 ngày
-
[Bug] REINDEX DATABASE CONCURRENTLY breaks temporary PAX tables created with ON COMMIT DELETE ROWSĐang mởtype: Bug
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 32/100
apache/cloudberry#2134 ·
Maintainer thường phản hồi trong vòng 3 ngày
Tất cả issue của apache/cloudberry
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Maintainer thường phản hồi trong vòng 2 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 62/100
ChrisTitusTech/dwm-titus#397 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Translate gcc cheat sheet to frĐang mởgood first issue help wanted language:fr translation
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 85/100
mrvi0/cli-cheatsheet#160 ·
-
Test modules use volatile int for cross-thread flags instead of atomicsCó thể đã có người làm @rahimuddin140 đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
valkey-io/valkey#4899 · 1 bình luận ·
Maintainer thường phản hồi trong vòng 2 ngày
-
Profiler (Remotery) leaks a socket for every connection that fails the WebSocket handshakeCó thể đã có người làm @rthery đã nhận hôm nay. Đang mởtriage
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày