Merge pull request #2567 from supabase/blog/postgres-13
Postgres version updates
No files matched your search
@@ -35,7 +35,7 @@ One of the best things about building Supabase is the community. We're even luck
|
||||
|
||||
### Where?
|
||||
|
||||
Blog post coming soon. Follow our [Twitter](https://twitter.com/supabase) to get notified immediately.
|
||||
Read the [blog post](/blog/2021/07/26/supabase-community-day).
|
||||
|
||||
## Tuesday 27 July: Storage v2
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@ authorURL: https://github.com/roryw10
|
||||
image: epsilon3/og-epsilon3.jpg
|
||||
thumb: epsilon3/cover-epsilon3.jpg
|
||||
tags:
|
||||
- launch-week
|
||||
- case-study
|
||||
date: '2021-07-26'
|
||||
toc_depth: 2
|
||||
---
|
||||
|
||||
@@ -0,0 +1,136 @@
|
||||
---
|
||||
title: 'Supabase Community Day'
|
||||
description: Community Day
|
||||
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
|
||||
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
|
||||
---
|
||||
|
||||
Supabase has grown a lot [^1] since last [Launch Week](https://supabase.io/blog/2021/03/25/launch-week),
|
||||
but it wouldn't be possible without some amazing open source tools.
|
||||
Since we're shipping a few upgrades this week we feel it's only fair
|
||||
to shine a spotlight on some tools and community efforts that make Supabase possible.
|
||||
|
||||
## PostgreSQL version 13.3
|
||||
|
||||

|
||||
|
||||
PostgreSQL is a big part of Supabase, and 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
|
||||
be on [PostgreSQL version 13.3](/blog/2021/07/26/supabase-postgres-13).
|
||||
|
||||
### Giving back
|
||||
|
||||
Supabase makes it easy to get started with Postgres, but we think you should try it even if you don't want to use Supabase. Here's a
|
||||
few ways we make it easy to use PostgreSQL without Supabase:
|
||||
|
||||
- Supabase was the first company to put Postgres in the [Digital Ocean Marketplace](https://marketplace.digitalocean.com/apps/supabase-postgres).
|
||||
Since then it's been installed over 1000 times (not by us!).
|
||||
- We provide a Postgres image in the [AWS marketplace](https://aws.amazon.com/marketplace/pp/prodview-lk2pfa5nafecg).
|
||||
- We're packaging the Marketplace version, [along with "Bundles"](/blog/2021/07/26/supabase-postgres-13#postgresql-bundles)
|
||||
- We're developing a few extensions: `[supautils](https://github.com/supabase/supautils)`, `[pg_net](https://github.com/supabase/pg_net)`, and a couple more soon to be announced.
|
||||
|
||||
### Get involved
|
||||
|
||||
- Follow the official [PostgreSQL Twitter](https://twitter.com/PostgreSQL) account.
|
||||
- Join the official [mailing lists](https://www.postgresql.org/community/).
|
||||
|
||||
## PostgREST version 8.0
|
||||
|
||||

|
||||
|
||||
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
|
||||
|
||||
**Improved Performance**: Due to Supabase's high throughput requirements, PostgREST 8.0 handles up to 50% more throughput on
|
||||
GET requests, according to our benchmarks. We converted all SELECT queries to use prepared statements and reduced logging
|
||||
verbosity to make this possible.
|
||||
|
||||
**Reduced downtime**: we need PostgREST to be more "set it and forget it", so reloading schema cache is now zero downtime.
|
||||
|
||||
**Dynamic Configuration**: we've made it easier to handle PostgREST configuration at scale (we manage thousands of PostgREST instances).
|
||||
This new version includes the ability to use an in-database configuration that is reloadable through a `NOTIFY` command.
|
||||
|
||||
**Less admin burden**: PostgREST previously required the `pg_listen` utility to reload its schema cache. This is no longer needed.
|
||||
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`,
|
||||
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
|
||||
[v8.0 CHANGELOG](https://github.com/PostgREST/postgrest/releases/tag/v8.0.0) for the full list.
|
||||
|
||||
### Get Started
|
||||
|
||||
Want to get started with PostgREST? The Supabase community has built a number of client libraries to make it simpler to use:
|
||||
|
||||
- Javascript: [postgrest-js](https://github.com/supabase/postgrest-js)
|
||||
- Rust: [postgrest-rs](https://github.com/supabase/postgrest-rs)
|
||||
- Go: [postgrest-go](https://github.com/supabase/postgrest-go)
|
||||
- Python: [postgrest-py](https://github.com/supabase/postgrest-py)
|
||||
- Dart: [postgrest-dart](https://github.com/supabase/postgrest-dart)
|
||||
- C#: [postgrest-csharp](https://github.com/supabase/postgrest-csharp)
|
||||
- Swift: [postgrest-swift](https://github.com/supabase/postgrest-swift)
|
||||
- Ruby: [postgrest-rb](https://github.com/supabase/postgrest-rb)
|
||||
- Kotlin: [postgrest-kt](https://github.com/supabase/postgrest-kt)
|
||||
|
||||
### Get involved
|
||||
|
||||
- Help with [PostgREST development](https://github.com/PostgREST/postgrest/blob/main/.github/CONTRIBUTING.md).
|
||||
- Help with [PostgREST docs translations](https://github.com/PostgREST/postgrest-docs/issues/393).
|
||||
- Follow the official [PostgREST Twitter](https://twitter.com/postgrest_org) account.
|
||||
|
||||
## 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.
|
||||
|
||||
Today the Community are releasing both the the Flutter and Dart libraries in Beta (with a bit of help from the Supabase team).
|
||||
|
||||
### Get started
|
||||
|
||||
- Check out the [Flutter Quickstart Guide](https://supabase.io/docs/guides/with-flutter)
|
||||
- Check out the code:
|
||||
- Supabase Flutter: [GitHub](https://github.com/supabase/supabase-flutter/) | [Release](https://pub.dev/packages/supabase_flutter)
|
||||
- Supabase Dart: [GitHub](https://github.com/supabase/supabase-dart/) | [Release](https://pub.dev/packages/supabase)
|
||||
|
||||
### 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.
|
||||
|
||||
## 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/),
|
||||
StackOverflow [tags](https://stackoverflow.com/questions/tagged/supabase), and GitHub [topics](https://github.com/topics/supabase).
|
||||
|
||||
A few weeks ago one of the community created a Community-led Discord, and so the team figured we might as well join the fun.
|
||||
|
||||
We'll still be using Discussions for debugging, but if you're looking for a place to hang out with Supabase developers, Discord is where to find it.
|
||||
|
||||
### Get involved
|
||||
|
||||
Join the Supabase Community Discord: [https://discord.gg/AYybku5cUz](https://discord.gg/AYybku5cUz), say hi, and start building.
|
||||
|
||||
[^1]:
|
||||
Supabase has been one of the fastest growing startups [on GitHub](https://github.com/supabase/supabase) for four consecutive quarters:
|
||||
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.
|
||||
@@ -0,0 +1,122 @@
|
||||
---
|
||||
title: 'Supabase is now on Postgres 13.3'
|
||||
description: From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3.
|
||||
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/postgres-13-og.jpg
|
||||
thumb: pg13/postgres-13-thumb.jpg
|
||||
tags:
|
||||
- launch-week
|
||||
- database
|
||||
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.
|
||||
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
|
||||
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`
|
||||
- a new JSONB [datetime](https://www.postgresql.org/docs/13/functions-json.html) function
|
||||
- vacuuming indexes in [parallel](https://www.postgresql.org/docs/13/sql-vacuum.html)
|
||||
- [incremental sorting](https://www.postgresql.org/docs/13/using-explain.html#USING-EXPLAIN-BASICS)
|
||||
- smaller [btree indexes](https://www.postgresql.org/docs/13/btree-implementation.html#BTREE-DEDUPLICATION)
|
||||
- improvements to [extended statistics](https://www.postgresql.org/docs/13/planner-stats.html#PLANNER-STATS-EXTENDED)
|
||||
|
||||
## 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
|
||||
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>
|
||||
|
||||
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/).
|
||||
The following configuration of `pgbench` was used.
|
||||
|
||||
```bash hideCopy
|
||||
pgbench -i -s 150
|
||||
```
|
||||
|
||||
Running the benchmark with 2, 4, 8, 16, 64, and 128 clients:
|
||||
|
||||
```bash hideCopy
|
||||
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
|
||||
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,
|
||||
expect Supabase Postgres 14 to quickly follow.
|
||||
|
||||
## New Extensions
|
||||
|
||||
### `pgRouting`
|
||||
|
||||
An extension of PostGIS, [`pgRouting`](https://pgrouting.org/) provides geospatial routing functionality.
|
||||
|
||||
More information can be found [here](https://docs.pgrouting.org/latest/en/index.html).
|
||||
|
||||
### `wal2json`
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
## 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.
|
||||
|
||||
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 | ✅ | ✅ | ✅ |
|
||||
|
||||
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.
|
||||
@@ -65,7 +65,7 @@
|
||||
"steve_chavez": {
|
||||
"author": "Steve Chavez",
|
||||
"author_url": "https://github.com/steve-chavez",
|
||||
"position": "Engineering",
|
||||
"position": "Engineering & PostgREST maintainer",
|
||||
"username": "steve-chavez",
|
||||
"author_image_url": "https://github.com/steve-chavez.png"
|
||||
}
|
||||
|
||||
@@ -173,7 +173,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: 30 KiB |
|
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: 41 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: 72 KiB |
|
After Width: | Height: | Size: 52 KiB |
@@ -8,6 +8,22 @@
|
||||
<lastBuildDate>Sun, 25 Jul 2021 16:00:00 GMT</lastBuildDate>
|
||||
<atom:link href="https://supabase.io/blog/rss.xml" rel="self" type="application/rss+xml"/>
|
||||
|
||||
<item>
|
||||
<guid>https://supabase.io/blog/2021/07/26/supabase-postgres-13</guid>
|
||||
<title>Supabase is now on Postgres 13.3</title>
|
||||
<link>https://supabase.io/blog/2021/07/26/supabase-postgres-13</link>
|
||||
<description>From today, new Supabase projects will be on a version of Supabase Postgres that runs on Postgres 13.3.</description>
|
||||
<pubDate>Sun, 25 Jul 2021 16:00:00 GMT</pubDate>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<guid>https://supabase.io/blog/2021/07/26/supabase-community-day</guid>
|
||||
<title>Supabase Community Day</title>
|
||||
<link>https://supabase.io/blog/2021/07/26/supabase-community-day</link>
|
||||
<description>Community Day</description>
|
||||
<pubDate>Sun, 25 Jul 2021 16:00:00 GMT</pubDate>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<guid>https://supabase.io/blog/2021/07/26/epsilon3-self-hosting</guid>
|
||||
<title>Epsilon3 Self-Host Supabase To Revolutionize Space Operations </title>
|
||||
|
||||