Next Generation Unified Database for Analytics and AI
Cloudberry Database (CBDB) is shipped with PostgreSQL 14.4 as its kernel and is forked from Greenplum Database 7, which serves as our code base.
Cloudberry Database is compatible with Greenplum, and provides all the Greenplum features you need. In addition, Cloudberry Database possesses some features that Greenplum currently lacks or does not support. Visit this feature comparison doc for details.
The directory layout of the repository follows the same general layout as upstream PostgreSQL. There are changes compared to PostgreSQL throughout the codebase, but a few larger additions worth noting:
-
gpMgmt/ : Contains CloudberryDB-specific command-line tools for managing the cluster. Scripts like gpinit, gpstart, and gpstop live here. They are mostly written in Python.
-
gpAux/ : Contains CloudberryDB-specific release management scripts, and vendored dependencies. Some additional directories are submodules and will be made available over time.
-
gpcontrib/ : Much like the PostgreSQL contrib/ directory, this directory contains extensions such as gpfdist, PXF and gpmapreduce which are CloudberryDB-specific.
-
doc/ : In PostgreSQL, the user manual lives here. In Cloudberry Database, the user manual is maintained separately at Cloudberry Database Website Repo.
-
src/
-
src/backend/cdb/ : Contains larger CloudberryDB-specific backend modules. For example, communication between segments, turning plans into parallelizable plans, mirroring, distributed transaction and snapshot management, etc. cdb stands for Cluster Database - it was a workname used in the early days. That name is no longer used, but the cdb prefix remains.
-
src/backend/gpopt/ : Contains the so-called translator library, for using the GPORCA optimizer with Cloudberry Database. The translator library is written in C++ code, and contains glue code for translating plans and queries between the DXL format used by GPORCA, and the PostgreSQL internal representation.
-
src/backend/gporca/ : Contains the GPORCA optimizer code and tests. This is written in C++. See README.md for more information and how to unit-test GPORCA.
-
src/backend/fts/ : FTS is a process that runs in the coordinator node, and periodically polls the segments to maintain the status of each segment.
-
You can follow these guides to build the Cloudberry Database on Linux OS(including CentOS, RHEL, and Ubuntu) and macOS.
For Cloudberry Database documentation, please check the documentation website. Our documents are still in construction, welcome to help. If you're interested in document contribution, you can submit the pull request here.
We also recommend you take PostgreSQL Documentation and Greenplum Documentation as quick references.
This is the main repository for Cloudberry Database. Alongside this, there are several ecosystem repositories for the Cloudberry Database, including the website, extensions, connectors, adapters, and other utilities.
- cloudberrydb/cloudberrydb-site: website sources.
- bootcamp: help you quickly try out Cloudberry Database via one Docker-based Sandbox.
- gpbackup: backup utility for Cloudberry Database.
- gp-common-go-libs: gp-common-go-libs for Cloudberry Database.
- More is coming...
Cloudberry Database is maintained actively by a group of community database experts by individuals and companies. We believe in the Apache Way "Community Over Code" and we want to make Cloudberry Database a community-driven project.
Contributions can be diverse, such as code enhancements, bug fixes, feature proposals, documents, marketing, and so on. No contribution is too small, we encourage all types of contributions. Cloudberry Database community welcomes contributions from anyone, new and experienced! Our contribution guide will help you get started with the contribution.
Type | Description |
---|---|
Code contribution | Learn how to contribute code to the Cloudberry Database, including coding preparation, conventions, workflow, review, and checklist following the code contribution guide. |
Submit the proposal | Proposing major changes to Cloudberry Database through proposal guide. |
Doc contribution | We need you to join us to help us improve the documentation, see the doc contribution guide. |
For better collaboration, it's important for developers to learn how to work well with Git and GitHub, see the guide "Working with Git & GitHub".
We have many channels for community members to discuss, ask for help, feedback, and chat:
Type | Description |
---|---|
Slack | Click to Join the real-time chat on Slack for QA, Dev, Events, and more. Don't miss out! Check out the Slack guide to learn more. |
Q&A | Ask for help when running/developing Cloudberry Database, visit GitHub Discussions - QA. |
New ideas / Feature Requests | Share ideas for new features, visit GitHub Discussions - Ideas. |
Report bugs | Problems and issues in Cloudberry Database core. If you find bugs, welcome to submit them here. |
Report a security vulnerability | View our security policy to learn how to report and contact us. |
Community events | Including meetups, webinars, conferences, and more events, visit the Events page and subscribe events calendar. |
Documentation | Official documentation for Cloudberry Database. You can explore it to discover more details about us. |
When you are involved, please follow our community Code of Conduct to help create a safe space for everyone.
Thanks to PostgreSQL, Greenplum Database and other great open source projects to make Cloudberry Database has a sound foundation.
Cloudberry Database is released under the Apache License, Version 2.0.