Merge branch 'blog/postgres-13' of github.com:supabase/supabase into blog/postgres-13

This commit is contained in:
Paul Copplestone committed 2021-07-26 22:37:21 +08:00
commit 60d954f873
12 files changed
+49 -45

No files matched your search

+15 -15
View File
@@ -5,16 +5,15 @@ author: steve_chavez
author_url: https://github.com/steve-chavez
author_image_url: https://github.com/steve-chavez.png
authorURL: https://github.com/steve-chavez
image: pg13/og-supabase-postgres-13.jpg
thumb: pg13/cover-supabase-postgres-13.jpg
thumb: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-thumb.jpg
image: launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-og.jpg
tags:
- launch-week
date: '2021-07-26'
toc_depth: 2
---
Did you know that Supabase has been one of the fastest growing startups [on GitHub](https://github.com/supabase/supabase) for four consecutive quarters? [^1]
Did you know that Supabase has been one of the fastest growing startups [on GitHub](https://github.com/supabase/supabase) for four consecutive quarters? [^1]
![Supabase Star growth](/new/images/blog/community-day/star-growth-july.png)
@@ -23,7 +22,7 @@ to shine a spotlight some tools and community efforts that make Supabase possibl
## PostgreSQL version 13.3
![Postgres version 13 released](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/9c581252-6e87-4ab4-a6cd-66bfe3eec6d0/supabase-postgres-13.png)
![Postgres version 13 released](/new/images/blog/launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-postgres-upgrade.jpg)
PostgreSQL is not only a huge part of Supabase, it's also a huge inspiration - the speed that they ship, their community organization,
and their absolute dedication towards reliability. PostgreSQL 13.3 was released in June and (from today) every new Supabase project will
@@ -49,7 +48,7 @@ Since then it's been installed over 1000 times (not by us!).
![PostgREST version 8.0 released](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/7136a514-55ab-428c-b8da-638a6cba1e5f/supabase-postgrest.png)
This new PostgREST stable version comes with the improvements we've made to make it truly enterprise-grade. Due to our commitment with OSS,
This new PostgREST stable version comes with the improvements we've made to make it truly enterprise-grade. Due to our commitment with OSS,
all of our improvements are upstreamed, so you can fully use them on your own self-hosted projects.
### Highlights
@@ -69,7 +68,7 @@ The schema cache is reloadable with a simple `NOTIFY` command.
**Better diagnostic information**: in the rare cases where PostgREST fails, we want to find the exact root cause quickly.
For this we've improved its logging by adding logging levels and timestamps to all server errors.
**Simpler OpenAPI**: showing a complete OpenAPI output used to require a highly-privileged `anon` role. With the new `openapi-mode`,
**Simpler OpenAPI**: showing a complete OpenAPI output used to require a highly-privileged `anon` role. With the new `openapi-mode`,
this is no longer needed and `anon` can be kept with minimal privileges.
The community has made many more enhancements and bug fixes for the new version. See
@@ -97,10 +96,10 @@ Want to get started with PostgREST? The Supabase community has built a number of
## Supabase Flutter/Dart (Beta release)
![Supabase Flutter Beta release](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/c876d071-d4f1-434f-9dec-493ba5988e07/supabase-flutter.png)
![Supabase Flutter Beta release](/new/images/blog/launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-flutter-library.jpg)
While the Supabase team have been busy with the Javascript libraries, the community have been beavering away with Dart. They've even
[built fully-functional apps](https://www.producthunt.com/posts/spot-2d300f54-7a0a-4dbf-aee2-4a75311217cc) using Supabase Auth and Storage.
While the Supabase team have been busy with the Javascript libraries, the community have been beavering away with Dart. They've even
[built fully-functional apps](https://www.producthunt.com/posts/spot-2d300f54-7a0a-4dbf-aee2-4a75311217cc) using Supabase Auth and Storage.
Today the Community are releasing both the the Flutter and Dart libraries in Beta (with a bit of help from the Supabase team).
@@ -114,12 +113,12 @@ Today the Community are releasing both the the Flutter and Dart libraries in Bet
### Get involved
- Help [write](https://supabase.io/docs/handbook/supasquad#author) the Flutter Docs.
- Help [maintain](https://supabase.io/docs/handbook/supasquad#maintainer) the [Flutter](https://github.com/supabase/supabase-flutter/)
and [Dart](https://github.com/supabase/supabase-dart/) libraries.
- Help [maintain](https://supabase.io/docs/handbook/supasquad#maintainer) the [Flutter](https://github.com/supabase/supabase-flutter/)
and [Dart](https://github.com/supabase/supabase-dart/) libraries.
## Supabase Discord
![Supabase Discord](https://s3-us-west-2.amazonaws.com/secure.notion-static.com/406cbb95-1152-4b77-9377-e1304c956000/supabase-discord.png)
![Supabase Discord](/new/images/blog/launch-week-sql-day-1-community-day/launch-week-sql-day-1-community-day-discord-server.jpg)
OK, OK, we get it - GitHub [Discussions](https://github.com/supabase/supabase/discussions) aren't enough for y'all. While we've been trying
to keep the conversation contained to our GitHub org, the community has been creating [subreddits](https://www.reddit.com/r/Supabase/),
@@ -133,5 +132,6 @@ We'll still be using Discussions for debugging, but if you're looking for a plac
Join the Supabase Community Discord: [https://discord.gg/AYybku5cUz](https://discord.gg/AYybku5cUz), say hi, and start building.
[^1]: GitHub Growth: 207% in [Q3](https://runacap.com/ross-index/q3-2020/) 2020; 1,373% in [Q4](https://runacap.com/ross-index/q4-2020/) 2020;
462% in [Q1](https://runacap.com/ross-index/q1-2021/) 2021; 1,653% in [Q2](https://runacap.com/ross-index/q2-2021/) 2021.
[^1]:
GitHub Growth: 207% in [Q3](https://runacap.com/ross-index/q3-2020/) 2020; 1,373% in [Q4](https://runacap.com/ross-index/q4-2020/) 2020;
462% in [Q1](https://runacap.com/ross-index/q1-2021/) 2021; 1,653% in [Q2](https://runacap.com/ross-index/q2-2021/) 2021.
+32 -29
View File
@@ -5,8 +5,8 @@ author: angelico_de_los_reyes
author_url: https://github.com/dragarcia
author_image_url: https://github.com/dragarcia.png
authorURL: https://github.com/dragarcia
image: pg13/og-supabase-postgres-13.jpg
thumb: pg13/cover-supabase-postgres-13.jpg
image: pg13/postgres-13-og.jpg
thumb: pg13/postgres-13-thumb.jpg
tags:
- launch-week
- database
@@ -14,13 +14,13 @@ date: '2021-07-26'
toc_depth: 2
---
From today, new Supabase projects will be on a version of [Supabase Postgres](https://github.com/supabase/postgres) that runs
on [Postgres 13.3](https://www.postgresql.org/about/news/postgresql-13-released-2077/). This won't be the only big change however in this version.
From today, new Supabase projects will be on a version of [Supabase Postgres](https://github.com/supabase/postgres) that runs
on [Postgres 13.3](https://www.postgresql.org/about/news/postgresql-13-released-2077/). This won't be the only big change however in this version.
Here are a few other things that have changed under the hood.
## PostgreSQL version 13.3
We've jumped from PostgreSQL 12.0 to PostgreSQL [version 13.3](https://www.postgresql.org/docs/13/release-13-3.html), introducing
We've jumped from PostgreSQL 12.0 to PostgreSQL [version 13.3](https://www.postgresql.org/docs/13/release-13-3.html), introducing
significant performance improvements and some great new functionality. Some changes include:
- native [UUID generation](https://www.postgresql.org/docs/13/functions-uuid.html) (!) using `gen_random_uuid`
@@ -32,22 +32,25 @@ significant performance improvements and some great new functionality. Some chan
## Supabase Versioning
Our [Postgres repo](https://github.com/supabase/postgres) has jumped from `0.15.0` to `13.3.0`. From now on, both major and minor versions of
Supabase Postgres will follow PostgreSQL. This makes it much easier to ascertain what version of PostgreSQL is installed. In the situation wherein
Our [Postgres repo](https://github.com/supabase/postgres) has jumped from `0.15.0` to `13.3.0`. From now on, both major and minor versions of
Supabase Postgres will follow PostgreSQL. This makes it much easier to ascertain what version of PostgreSQL is installed. In the situation wherein
there are no updates to PostgreSQL in between releases, the patch version will be bumped up.
## Large System Extensions (LSE) enabled for ARM instances
<small>*Disclaimer for self-hosting: This is not available for x86 instances. All instances on the Supabase platform have this enabled by default.*</small>
<small>
*Disclaimer for self-hosting: This is not available for x86 instances. All instances on the
Supabase platform have this enabled by default.*
</small>
The recent wave of Graviton 2 instances from AWS introduces support for the Large System Extensions (LSE). This looks to greatly enhance
application performance through atomics, and
The recent wave of Graviton 2 instances from AWS introduces support for the Large System Extensions (LSE). This looks to greatly enhance
application performance through atomics, and
[improves locking and synchronisation performance across large systems](https://github.com/aws/aws-graviton-getting-started#building-for-graviton-and-graviton2).
### Preliminary Benchmarks
Below is a comparison between the ARM versions of Supabase Postgres `0.15.0` and `13.3.0`. Both are using `m6gd.8xlarge` instances
and follow the PostgreSQL configuration [here](https://www.percona.com/blog/2021/01/22/postgresql-on-arm-based-aws-ec2-instances-is-it-any-good/).
Below is a comparison between the ARM versions of Supabase Postgres `0.15.0` and `13.3.0`. Both are using `m6gd.8xlarge` instances
and follow the PostgreSQL configuration [here](https://www.percona.com/blog/2021/01/22/postgresql-on-arm-based-aws-ec2-instances-is-it-any-good/).
The following configuration of `pgbench` was used.
```bash hideCopy
@@ -64,13 +67,13 @@ pgbench -P 5 -c {num_clients} -j {num_clients} -T 300 -M prepared postgres
## Ubuntu 20.04
We have taken the opportunity to upgrade new projects from Ubuntu 18.04 to Ubuntu 20.04. A switch to Ubuntu 20.04 guarantees that the underlying
We have taken the opportunity to upgrade new projects from Ubuntu 18.04 to Ubuntu 20.04. A switch to Ubuntu 20.04 guarantees that the underlying
OS of Supabase Postgres is supported by the Canonical team up until the year 2025 (2023 for Ubuntu 18.04).
## Built from source
Driven by the need to enable LSE, the underlying PostgreSQL in this version was built from the ground up instead of downloaded binaries.
Supabase Postgres can now be easily upgraded whenever a new major or minor version of PostgreSQL is released. When PostgreSQL 14 comes out,
Driven by the need to enable LSE, the underlying PostgreSQL in this version was built from the ground up instead of downloaded binaries.
Supabase Postgres can now be easily upgraded whenever a new major or minor version of PostgreSQL is released. When PostgreSQL 14 comes out,
expect Supabase Postgres 14 to quickly follow.
## New Extensions
@@ -83,37 +86,37 @@ More information can be found [here](https://docs.pgrouting.org/latest/en/index.
### `wal2json`
Converts WAL output into clean and organized JSON objects.
Converts WAL output into clean and organized JSON objects.
More information can be found [here](https://github.com/eulerto/wal2json).
## Enhanced security
To help combat brute force attacks, `fail2ban` has now been configured to protect direct connections to Postgres. This applies to both
To help combat brute force attacks, `fail2ban` has now been configured to protect direct connections to Postgres. This applies to both
ports `5432` (PostgreSQL) and `6543` (PgBouncer).
IPs get banned for 10 minutes after three failed attempts, and we'll continue to fine-tune and improve the protections applied to the
database servers based on evolving traffic patterns.
IPs get banned for 10 minutes after three failed attempts, and we'll continue to fine-tune and improve the protections applied to the
database servers based on evolving traffic patterns.
## PostgreSQL bundles
`[Coming Soon]`
Last but not the least, we're diversifying the images of Supabase Postgres available in the AWS and Digital Ocean Marketplaces.
Last but not the least, we're diversifying the images of Supabase Postgres available in the AWS and Digital Ocean Marketplaces.
Instead of a single option, we'll soon offer four configurations of PostgreSQL. Each bundle offers functionality for
common use-cases. For example, if you're using Postgres with Serverless functions, you might want to run the PgBouncer bundle. If you want an
Instead of a single option, we'll soon offer four configurations of PostgreSQL. Each bundle offers functionality for
common use-cases. For example, if you're using Postgres with Serverless functions, you might want to run the PgBouncer bundle. If you want an
HTTP API with your Postgres offering you might want to run the PostgREST bundle.
| `Name` | `PostgreSQL` | `PgBouncer` | `PostgREST` |
|-------------------------------------|------------|-----------|-----------|
| Supabase Postgres | ✅ | | |
| Supabase Postgres: PgBouncer Bundle | ✅ | ✅ | |
| Supabase Postgres: PostgREST Bundle | ✅ | | ✅ |
| Supabase Postgres: Complete Bundle | ✅ | ✅ | ✅ |
| `Name` | `PostgreSQL` | `PgBouncer` | `PostgREST` |
| ----------------------------------- | ------------ | ----------- | ----------- |
| Supabase Postgres | ✅ | | |
| Supabase Postgres: PgBouncer Bundle | ✅ | ✅ | |
| Supabase Postgres: PostgREST Bundle | ✅ | | ✅ |
| Supabase Postgres: Complete Bundle | ✅ | ✅ | ✅ |
Each offering will be available for both the `x86` and `arm` architectures.
## Try PostgreSQL 13
Try the new features of PostgreSQL 13.3 today by creating a [new project](https://app.supabase.io/) on Supabase.
Try the new features of PostgreSQL 13.3 today by creating a [new project](https://app.supabase.io/) on Supabase.
@@ -9,6 +9,7 @@ import Link from 'next/link'
import { useRouter } from 'next/router'
import React from 'react'
import ReactMarkdown from 'react-markdown'
import { Avatar } from '~/components/Avatar'
import CodeBlock from '~/components/CodeBlock/CodeBlock'
import CTABanner from '~/components/CTABanner'
import DefaultLayout from '~/components/Layouts/Default'
@@ -173,7 +174,7 @@ function BlogPostPage(props: any) {
}}
/>
<DefaultLayout>
<div className="bg-white dark:bg-dark-800 overflow-hidden py-12">
<div className="bg-white dark:bg-dark-800 overflow-hidden mb-12">
<div className="container px-8 sm:px-16 xl:px-20 lg:mt-16 mx-auto">
<div className="max-w-6xl mx-auto">
<div className="lg:py-12 grid grid-cols-12 lg:gap-16">
Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB