Merge branch 'blog/postgres-13' of github.com:supabase/supabase into blog/postgres-13
No files matched your search
@@ -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]
|
||||
|
||||

|
||||
|
||||
@@ -23,7 +22,7 @@ to shine a spotlight some tools and community efforts that make Supabase possibl
|
||||
|
||||
## PostgreSQL version 13.3
|
||||
|
||||

|
||||

|
||||
|
||||
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!).
|
||||
|
||||

|
||||
|
||||
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)
|
||||
|
||||

|
||||

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

|
||||

|
||||
|
||||
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.
|
||||
@@ -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">
|
||||
|
||||
|
After Width: | Height: | Size: 207 KiB |
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 52 KiB |
|
After Width: | Height: | Size: 112 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 99 KiB |
|
After Width: | Height: | Size: 52 KiB |