PolarDB for PostgreSQL (PolarDB for short) is an open source database system based on PostgreSQL.

Overview

PolarDB Banner

What is PolarDB for PostgreSQL?

PolarDB for PostgreSQL (PolarDB for short) is an open source database system based on PostgreSQL. It extends PostgreSQL to become a share-nothing distributed database, which supports global data consistency and ACID across database nodes, distributed SQL processing, and data redundancy and high availability through Paxos based replication. PolarDB is designed to add values and new features to PostgreSQL in dimensions of high performance, scalability, high availability, and elasticity. At the same time, PolarDB remains SQL compatibility to single-node PostgreSQL with best effort.

PolarDB will evolve and offer its functions and features in two major parts: an extension and a patch to Postgres. The extension part includes components implemented outside PostgreSQL kernel, such as distributed transaction management, global or distributed time service, distributed SQL processing, additional metadata and internal functions, and tools to manage database clusters and conduct fault tolerance or recovery. Having most of its functions in a Postgres extension, PolarDB targets easy upgrading, easy migration, and fast adoption. The patch part includes the changes necessary to the kernel, such as distributed MVCC for different isolation levels. We expect functions and codes in the patch part is limited. As a result, PolarDB can be easily upgraded with newer PostgreSQL versions and maintain full compatible to PostgreSQL.

Quick start with PolarDB

Three approaches are offered to quickly try out PolarDB: Alibaba Cloud service, deployment using Docker images, and deployment from source codes.

Alibaba Cloud Service

TBD

Deployment Using Docker Images

TBD

One-Key Deployment

onekey.sh can be used to build, configure, deploy, start, and init a cluster of PolarDB.

  • before executing onekey.sh

    • set up environment variables (LD_LIBRARY_PATH and PATH)
    • install dependent packages
    • set up ssh login without password
  • run onekey.sh script

./onekey.sh all
  • check running processes (leader, follower, logger), their replica roles and status:
ps -ef|grep polardb
psql -p 10001 -d postgres -c "select * from pg_stat_replication;"
psql -p 10001 -d postgres -c "select * from polar_dma_cluster_status;"

Deployment from Source Code

We extend a tool named as pgxc_ctl from PG-XC/PG-XL open source project to support cluster management, such as configuration generation, configuration modification, cluster initialization, starting/stopping nodes, and switchover, etc. Its detail usage can be found deployment.

  • download source code
  • install dependent packages (use Centos as an example)
sudo yum install libzstd-devel libzstd zstd cmake openssl-devel protobuf-devel readline-devel libxml2-devel libxslt-devel zlib-devel bzip2-devel lz4-devel snappy-devel
  • set up ssh login without password Call ssh-copy-id command to configure ssh so that no password is needed when using pgxc_ctl.
ssh-copy-id [email protected]
  • build and install binary

you can just call build script to build. If you get errors, please reference deployment for detail reasons.

./build.sh
  • set up environment variables
vi ~/.bashrc
export PATH="$HOME/polardb/polardbhome/bin:$PATH"
export LD_LIBRARY_PATH="$HOME/polardb/polardbhome/lib:$LD_LIBRARY_PATH"ß
  • generate default configure file
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf prepare standalone
  • deploy binary file
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf deploy all
  • clean residual installation and init cluster
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf clean all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf init all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf monitor all
  • install dependent packages for cluster management
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf deploy cm
  • start cluster or node
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf start all
  • stop cluster or node
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf stop all
  • failover datanode

datanode_1 is node name configured in polardb_paxos.conf.

pgxc_ctl -c $HOME/polardb/polardb_paxos.conf failover datanode datanode_1
  • cluster health check

check cluster status and start failed node.

pgxc_ctl -c $HOME/polardb/polardb_paxos.conf healthcheck all
  • example for other command
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf kill all
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf log var datanodeNames
pgxc_ctl -c $HOME/polardb/polardb_paxos.conf show configuration all
  • check and test
ps -ef | grep postgres
psql -p 10001 -d postgres -c "create table t1(a int primary key, b int);"
createdb test -p 10001
psql -p 10001 -d test -c "select version();"

reference deployment for detail instructions.

Regress and other test details can be found here. Some benchmarking example is here

Architecture & Roadmap

PolarDB uses a share-nothing architecture. Each node stores data and also executes queries, and they coordinate with each other through message passing. The architecture allows the database to be scaled by adding more nodes to the cluster.

PolarDB slices a table into shards by hashing its primary key. The number of shards is configurable. Shards are stored in PolarDB nodes. When a query accesses shards in multiple nodes, a distributed transaction and a transaction coordinator are used to maintain ACID across nodes.

Each shard is replicated to three nodes with each replica stored on different node. In order to save costs, we can deploy two of the replicas to store complete data. The third replica only stores write ahead log (WAL), which participates in the election but cannot be chosen as the leader.

See architecture design for more information

Documentation

Contributing

PolarDB is built on open source projects, and extends open source PostgreSQL. Your contribution is welcome and appreciated. Please refer contributing for how to start coding and submit a PR.

Licensing

PolarDB code is released under the Apache Version 2.0 License and the Licenses with PostgreSQL code.

The relevant licenses can be found in the comments at the top of each file.

Reference License and NOTICE for details.

Acknowledgements

Some codes and design ideas were from other open source projects, such as PG-XC/XL(pgxc_ctl), TBase (part of timestamp-based vacuum and MVCC), and Citus (pg_cron). Thanks for their contributions.

Communications


Copyright © Alibaba Group, Inc.

Issues
  • Should we force full English communicate for all reply?

    Should we force full English communicate for all reply?

    If you open-source a project, then ensure that everyone is able to participate. English is spoken by everyone in the open-source communities. Either accept this fact and ensure that every communication is in English AND NOT in Chinese.

    如果你開源一個項目,那麼確保每個人都能參與。 開源社區中的每個人都說英語。 要么接受這個事實,並確保每一次交流都是用英語而不是中文,要么把你的項目移到不同的地方。

    opened by zopyx 19
  • FATAL:  could not access file

    FATAL: could not access file "pg_cron": No such file or directory

    When initializing the database, starting the database reported an error that the file could not be accessed.But the file does exist, and the user is authorized. image

    如下是路径所在目录: image

    opened by Mr-Diaolvyu 17
  • The configuration file used to build the three-node HA

    The configuration file used to build the three-node HA

    I want to build an HA cluster with three physical servers. Is the configuration correct?DDB1 dDB2 DDB3 is the host map configured to /etc/hosts. polardb_paxos.txt

    opened by Mr-Diaolvyu 9
  • Cannot use pgxc_ ctl

    Cannot use pgxc_ ctl

    I followed the README, but pgxc_ctl binary was not generated. So I took advice from others, run "make install to generate pgxc_ctl binary file in PGXC_CTL_HOME".

    It does generate pgxc_ctl binary. But if you use it, you will get an error:

    /usr/bin/bash /home/postgres/polardb/polardbhome/bin/pgxc_ctl is not directory. Check your configurfation

    opened by pupillord 9
  • run ./onekey.sh all occur error: ./onekey.sh: line 39: pgxc_ctl: command not found

    run ./onekey.sh all occur error: ./onekey.sh: line 39: pgxc_ctl: command not found

    os:centos 7.6.1810

    run ./onekey.sh all occur error: ./onekey.sh: line 39: pgxc_ctl: command not found

    原因: build.sh 脚本中export $PATH的环境变量,不会在onekey.sh脚本中生效,导致pgxc_ctl命令找不到,需要在onekey.sh中重新export $PATH

    opened by ThinkBlue1991 7
  • out of shared memory ERROR at hash_search_with_hash_value, dynahash.c:1063

    out of shared memory ERROR at hash_search_with_hash_value, dynahash.c:1063

    问题产生

    在使用benchmarksql做TPCC测试时,如果配置连接参数开启savepoint,如 conn=jdbc:postgresql://IP:Port/tpcc1000?autosave=always&cleanupSavepoints=true 系统运行一会后会报错: 2021-09-17 15:49:02.155 CST,"tpcc","tpcc1000",14118,"",6144486e.3726,3,"SELECT",2021-09-17 15:49:02 CST,14/52,3487822,ERROR,53200,"out of shared memory",,,,,,"SELECT c_id FROM bmsql_customer WHERE c_w_id = $1 AND c_d_id = $2 AND c_last = $3 ORDER BY c_first",,"hash_search_with_hash_value, dynahash.c:1067","PostgreSQL JDBC Driver" 2021-09-17 15:49:02.325 CST,"tpcc","tpcc1000",14111,"",6144486e.371f,3,"UPDATE",2021-09-17 15:49:02 CST,7/52,0,ERROR,53200,"out of shared memory",,,,,,"UPDATE bmsql_district SET d_ytd = d_ytd + $1 WHERE d_w_id = $2 AND d_id = $3",,"hash_search_with_hash_value, dynahash.c:1067","PostgreSQL JDBC Driver" 2021-09-17 15:49:02.394 CST,"tpcc","tpcc1000",14113,"",6144486e.3721,3,"SELECT",2021-09-17 15:49:02 CST,9/68,0,ERROR,53200,"out of shared memory",,,,,,"SELECT d_tax, d_next_o_id FROM bmsql_district WHERE d_w_id = $1 AND d_id = $2 FOR UPDATE",,"hash_search_with_hash_value, dynahash.c:1067","PostgreSQL JDBC Driver"

    问题分析

    由于开启了savepoint,这时会产生子事物,在multixact的地方需要slru处理逻辑: [[email protected] dn_master]$ find ./pg_multixact/ -type f -ls 1052725762 152 -rw------- 1 postgres postgres 155648 Sep 16 10:02 ./pg_multixact/members/0000 1187016712 64 -rw------- 1 postgres postgres 65536 Sep 16 10:02 ./pg_multixact/offsets/0000

    报错时的调用栈为: #0 hash_search_with_hash_value (hashp=0x173b700, [email protected]=0x7ffc45c8567c, hashvalue=, [email protected]=HASH_ENTER, [email protected]=0x0) at dynahash.c:1063 #1 0x000000000084053d in hash_search (hashp=, [email protected]=0x7ffc45c8567c, [email protected]=HASH_ENTER, [email protected]=0x0) at dynahash.c:911 #2 0x00000000004ee6fd in SimpleLruReadPage ([email protected]=0xd02c80 , [email protected]=271, [email protected]=true, [email protected]=222211) at slru.c:464 #3 0x00000000004ea004 in GetMultiXactIdMembers (multi=222211, [email protected]=0x7ffc45c85728, [email protected]=false, [email protected]=false) at multixact.c:1403

    通过gdb分析hashp->htcl(ctl->pageToSlot->hctl),发现是bucket没有了。

    问题解决方案

    通过gdb跟踪,发现在 slru.c 中,需要换页时,下面的这段HASH_REMOVE代码没有执行: 458 if (shared->page_status[slotno] == SLRU_PAGE_VALID) 459 { 460 Assert(hash_search(ctl->pageToSlot, &shared->page_number[slotno], HASH_REMOVE, NULL) != NULL); 461 }

    像是被编译器优化掉了(没搞明白什么原因),通过如下修改,可以正确的进入HASH_REMOVE,不再报"out of shared memory"错误: 458 if (shared->page_status[slotno] == SLRU_PAGE_VALID) 459 { 460 // Assert((hash_search(ctl->pageToSlot, &shared->page_number[slotno], HASH_REMOVE, NULL)) != NULL); 461 entry = hash_search(ctl->pageToSlot, &shared->page_number[slotno], HASH_REMOVE, NULL) ; 462 Assert(entry != NULL); 463 }

    一处小的优化

    在slru.c 这段代码 463 shared->page_number[slotno] = pageno; 464 entry = hash_search(ctl->pageToSlot, &pageno, HASH_ENTER, NULL); 465 entry->slot = slotno; 作如下的顺序调整: 463 entry = hash_search(ctl->pageToSlot, &pageno, HASH_ENTER, NULL); 464 entry->slot = slotno; 465 shared->page_number[slotno] = pageno;

    以避免hash_search报错退出时,shared->page_number[slotno] 被错误修改,产生数据不一致。

    opened by luyaning 5
  • [CI] Add github action to PolarDB.

    [CI] Add github action to PolarDB.

    This PR adds support for GitHub Action to PolarDB. Besides, the building script is slightly modified since CentOS uses /bin/bash as the default shell while Ubuntu uses /bin/dash as the default shell. With this change, PolarDB can be built on Ubuntu and tested using GitHub Action which makes it easier for developers to contribute.

    opened by higuoxing 4
  • link error with SSL_* symbols

    link error with SSL_* symbols

    I am trying to compile a fresh checkout on Ubuntu 20.10 and get this error while linking:

    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `ENGINE_cleanup'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `SSL_get_ex_new_index'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `SSLv23_method'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `ERR_free_strings'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `SSL_load_error_strings'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `SSL_library_init'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `OPENSSL_add_all_algorithms_noconf'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `EVP_cleanup'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `CRYPTO_set_id_callback'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `CRYPTO_set_locking_callback'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `CRYPTO_num_locks'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `CRYPTO_cleanup_all_ex_data'
    /usr/bin/ld: ../../src/backend/polar_dma/lib//libpolar_consensus_wrapper.so: undefined reference to `CRYPTO_mem_leaks_fp'
    collect2: error: ld returned 1 exit status
    make[2]: *** [Makefile:71: postgres] Error 1
    make[2]: Leaving directory '/home/ajung/src/PolarDB-for-PostgreSQL/src/backend'
    make[1]: *** [Makefile:42: all-backend-recurse] Error 2
    make[1]: Leaving directory '/home/ajung/src/PolarDB-for-PostgreSQL/src'
    make: *** [GNUmakefile:11: all-src-recurse] Error 2
    
    
    opened by zopyx 4
  • DMA library catalog contains compiled binaries

    DMA library catalog contains compiled binaries

    I've tried to build PolarDB on MacOS but failed because of the linking problems with pre-compiled DMA libraries (for Linux I suppose). Can you replace it with the source code and fix the Makefile (at the moment it simply copies the binaries)?

    question 
    opened by darthunix 4
  • [Bug] Compile failed missing llvm-config

    [Bug] Compile failed missing llvm-config

    Describe the bug I pull the offical container, but when i execute

    ./polardb_build.sh
    

    here is a error and the container does not install the gcc, and llvm, It's better add it in https://apsaradb.github.io/PolarDB-for-PostgreSQL/zh/guide/db-localfs.html#%E6%9C%AC%E5%9C%B0%E5%8D%95%E8%8A%82%E7%82%B9%E5%AE%9E%E4%BE%8B To Reproduce Steps to reproduce the behavior:

    1. xxx
    2. xxx
    3. xxx

    Expected behavior A clear and concise description of what you expected to happen.

    Screenshots 2022-06-14_18-06-1655201328

    Environment (please complete the following information):

    • OS: [e.g. CentOS 7]
    • Version [e.g. 22]

    Additional context Add any other context about the problem here.

    environment 
    opened by fansehep 3
  • Multiple failures --- write error might be permanent

    Multiple failures --- write error might be permanent

    I setup 5 polardb servers 1 primary (32Cores, 256 GB) + 4 replica ( 32Cores, 256 GB). Benchmark follow the instructions: https://www.alibabacloud.com/help/doc-detail/116849.htm?spm=a2c63.l28256.a3.43.38cf6593kJamQZ. when run simultaneously read/write on primary and read only on replicas, output log have errors on primary:

    DETAIL: Multiple failures --- write error might be permanent. WARNING: page verification failed, calculated checksum 54072 but expected 31072 ERROR: invalid page in block 781267 of relation file-dio:///data/data_dir_polardb_pg/base/12418/16431 WARNING: could not write block 781267 of file-dio:///data/data_dir_polardb_pg/base/12418/16431 DETAIL: Multiple failures --- write error might be permanent. WARNING: page verification failed, calculated checksum 443 but expected 27345 ERROR: invalid page in block 944996 of relation file-dio:///data/data_dir_polardb_pg/base/12418/16431 WARNING: could not write block 944996 of file-dio:///data/data_dir_polardb_pg/base/12418/16431 DETAIL: Multiple failures --- write error might be permanent. WARNING: page verification failed, calculated checksum 54362 but expected 24252 ERROR: invalid page in block 702044 of relation file-dio:///data/data_dir_polardb_pg/base/12418/16431 WARNING: could not write block 702044 of file-dio:///data/data_dir_polardb_pg/base/12418/16431

    In case, run only read/write on primary is normal. What's issue with primary polardb?

    wontfix 
    opened by phamduykhuong 3
  • 2022 Alibaba Summer of Code

    2022 Alibaba Summer of Code

    Welcome to the open source world! If you haven't planned how to spend this summer, come to the Alibaba Summer of Code and code with us! 💻 Alibaba Summer of Code is a global program focused on engaging students directly in open source software development. Under the guidance of the mentor in the Alibaba open source project, students can experience software development in the real world. Alibaba Summer of code will begin from May 30th to September 1st. Students can use the summertime to participate in the open source project and work with the core members of the project.

    What you can get?

    On this exclusive developer journey, students will have the opportunity to: ● Participate in the top projects of the International Open Source Foundation; ● Get a scholarship from Alibaba; ● Obtain an open source contributor certificate; ● Get a fast pass of Alibaba Internship ● Get your code adopted and used by the open source project!

    Our Mentor

    He kewen,@HBKO ,ASoC Mentor, PolarDB-for-PostgreSQL Committer. Zhang Jingtang,@mrdrivingduck ,ASoC Mentor, PolarDB-for-PostgreSQL Committer. Sun Mengshi,ASoC Mentor, PolarDB-X Committer. Wu Di,@vettalwu,ASoC Mentor, PolarDB-X Committer.

    Timeline

    image

    Apply Now!

    1. Browse open idea list here: [ASoC] PolarDB HTAP 支持 COPY 导入数据的分布式加速 [ASoC] PolarDB HTAP 支持并行加速创建物化视图 [ASoC] PolarDB-X Operator 混沌测试实践 [ASoC] PolarDB-X 支持 DBLink

    2. Upload your CV and project proposal via ASOC 2022 official website https://opensource.alibaba.com/asoc2022 Contact the Organizer If you have any questions, visit the event website:https://opensource.alibaba.com/asoc2022 Email address:
      Email address: [email protected]

    PolarDB-PG 开源交流钉钉群: image

    PolarDB-X 开源交流钉钉群 image

    help wanted 
    opened by lanzhao0329 4
  • [ASoC] PolarDB HTAP 支持并行加速创建物化视图

    [ASoC] PolarDB HTAP 支持并行加速创建物化视图

    题目描述

    在 CREATE MATERIALIZED VIEW(创建物化视图)时需要按需对表中的元组进行扫描。 PostgreSQL: Documentation: 14: 41.3. Materialized Views

    项目目标

    通过 PolarDB 的 HTAP 能力并行加速这个过程。

    项目技术要求

    熟悉C语言及Linux上的相关调试技术,对 PostgreSQL 内核有一定了解。

    题目难度

    中等

    导师信息

    Zhang Jingtang,@mrdrivingduck , ASoC Mentor, PolarDB-for-PostgreSQL maintainer. [email protected](联系导师请附上个人简历)

    help wanted 
    opened by lanzhao0329 0
  • [ASoC]PolarDB HTAP支持COPY导入数据的分布式加速

    [ASoC]PolarDB HTAP支持COPY导入数据的分布式加速

    题目要求:

    为了使PolarDB PG具备更强的导入导出数据的能力,可以利用PolarDB PX并行执行来加速COPY命令。实现的效果为,COPY命令在读取表导出csv的时候,可以多个读节点同时并发读取表来进行加速;

    在COPY写入表的时候,可以在单个写节点起多个写进程并发写入。

    任务目标:

    实现并行读并行写的COPY功能

    题目难度

    中等

    导师信息

    He kewen,@HBKO ,ASoC Mentor, PolarDB-for-PostgreSQLCommitter. [email protected](联系导师请附上个人简历)

    help wanted 
    opened by lanzhao0329 0
  • Official RPM spec file for RHEL and derivates

    Official RPM spec file for RHEL and derivates

    PostgreSQL offers an official RPM repository for RHEL (and RHEL-based linux distributions) which includes several versions of PostgreSQL.

    Considering that PolarDB for PostgreSQL is an Alibaba product, and Alibaba Cloud Linux is supposedly compatible with RHEL, I would like to request an officially supported RPMset (which includes .spec file and required patches) of the stable branch of this repository for RHEL and derivate distributions.

    With such RPMset it would be easy for people running any RHEL-based distribution (including OpenAnolis, upstream of Alibaba Cloud Linux) to package and install PolarDB for PostgreSQL.

    environment 
    opened by Coachonko 1
Owner
Alibaba
Alibaba Open Source
Alibaba
YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features

YugabyteDB is a high-performance, cloud-native distributed SQL database that aims to support all PostgreSQL features. It is best to fit for cloud-native OLTP (i.e. real-time, business-critical) applications that need absolute data correctness and require at least one of the following: scalability, high tolerance to failures, or globally-distributed deployments.

yugabyte 6.6k Jul 1, 2022
A friendly and lightweight C++ database library for MySQL, PostgreSQL, SQLite and ODBC.

QTL QTL is a C ++ library for accessing SQL databases and currently supports MySQL, SQLite, PostgreSQL and ODBC. QTL is a lightweight library that con

null 155 Jun 26, 2022
upstream module that allows nginx to communicate directly with PostgreSQL database.

About ngx_postgres is an upstream module that allows nginx to communicate directly with PostgreSQL database. Configuration directives postgres_server

RekGRpth 1 Apr 29, 2022
Open Source Oracle Compatible PostgreSQL.

IvorySQL is advanced, fully featured, open source Oracle compatible PostgreSQL with a firm commitment to always remain 100% compatible and a Drop-in r

null 86 Jun 20, 2022
A mini database for learning database

A mini database for learning database

Chuckie Tan 3 Nov 3, 2021
Nebula Graph is a distributed, fast open-source graph database featuring horizontal scalability and high availability

Nebula Graph is an open-source graph database capable of hosting super large scale graphs with dozens of billions of vertices (nodes) and trillions of edges, with milliseconds of latency.

vesoft inc. 807 Jun 30, 2022
TimescaleDB is an open-source database designed to make SQL scalable for time-series data.

An open-source time-series SQL database optimized for fast ingest and complex queries. Packaged as a PostgreSQL extension.

Timescale 13.3k Jun 27, 2022
DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files compatible with SQLite.

DB Browser for SQLite What it is DB Browser for SQLite (DB4S) is a high quality, visual, open source tool to create, design, and edit database files c

null 16.7k Jun 27, 2022
The open-source database for the realtime web.

RethinkDB What is RethinkDB? Open-source database for building realtime web applications NoSQL database that stores schemaless JSON documents Distribu

RethinkDB 25.5k Jun 24, 2022
GridDB is a next-generation open source database that makes time series IoT and big data fast,and easy.

Overview GridDB is Database for IoT with both NoSQL interface and SQL Interface. Please refer to GridDB Features Reference for functionality. This rep

GridDB 1.8k Jun 27, 2022
Database system project based on CMU 15-445/645 (FALL 2020)

Database system project based on CMU 15-445/645 (FALL 2020)

null 15 Jul 1, 2022
DuckDB is an in-process SQL OLAP Database Management System

DuckDB is an in-process SQL OLAP Database Management System

DuckDB 5.4k Jun 27, 2022
GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

GalaxyEngine is a MySQL branch originated from Alibaba Group, especially supports large-scale distributed database system.

null 229 Jun 30, 2022
MillenniumDB is a graph oriented database management system

Millennium DB MillenniumDB is a graph oriented database management system developed by the Millennium Institute for Foundational Research on Data (IMF

null 21 Jun 20, 2022
Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system

Kunlun distributed DBMS is a NewSQL OLTP relational distributed database management system. Application developers can use Kunlun to build IT systems that handles terabytes of data, without any effort on their part to implement data sharding, distributed transaction processing, distributed query processing, crash safety, high availability, strong consistency, horizontal scalability. All these powerful features are provided by Kunlun.

zettadb 99 Jun 24, 2022
The official C++ client API for PostgreSQL.

libpqxx Welcome to libpqxx, the C++ API to the PostgreSQL database management system. Home page: http://pqxx.org/development/libpqxx/ Find libpqxx on

Jeroen Vermeulen 643 Jun 25, 2022
A PostgreSQL extension providing an async networking interface accessible via SQL using a background worker and curl.

pg_net is a PostgreSQL extension exposing a SQL interface for async networking with a focus on scalability and UX.

Supabase 41 Jun 19, 2022
A framework to monitor and improve the performance of PostgreSQL using Machine Learning methods.

pg_plan_inspector pg_plan_inspector is being developed as a framework to monitor and improve the performance of PostgreSQL using Machine Learning meth

suzuki hironobu 168 Jul 1, 2022
Prometheus exporter for PostgreSQL

pgexporter pgexporter is a Prometheus exporter for PostgreSQL. pgexporter will connect to one or more PostgreSQL instances and let you monitor their o

null 15 Apr 17, 2022