Skip to content

Cloudberry Database - Next generation unified database for Analytics and AI

License

Notifications You must be signed in to change notification settings

MisterRaindrop/cloudberrydb

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Next Generation Unified Database for Analytics and AI

Slack Twitter Follow Website GitHub Discussions GitHub commit activity(branch) GitHub contributors GitHub License FOSSA Status cbdb pipeline


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.

Features

Cloudberry Database is 100% 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.

Code layout

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.

  • hd-ci/ : Contains configuration files for the CBDB continuous integration system.

  • 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.

Building Cloudberry Database

You can follow these guides to build the Cloudberry Database on Linux OS(including CentOS, RHEL, and Ubuntu) and macOS.

Documentation

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.

Contribution

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".

Community & Support

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.

Acknowledgment

Thanks to PostgreSQL, Greenplum Database and other great open source projects to make Cloudberry Database has a sound foundation.

License

Cloudberry Database is released under the Apache License, Version 2.0.

About

Cloudberry Database - Next generation unified database for Analytics and AI

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C 61.4%
  • PLpgSQL 15.0%
  • C++ 14.4%
  • Python 3.8%
  • Perl 1.8%
  • Yacc 0.9%
  • Other 2.7%