
バックエンド開発者は、SQLクエリが本番環境でうまく機能することをどのようにして知るのでしょうか。大規模または急速に成長している企業では、誰もが「製品」にアクセスできるわけではありません。また、アクセスを使用すると、すべてのリクエストを簡単にチェックできるわけではなく、データベースコピーの作成には多くの場合数時間かかります。これらの問題を解決するために、人工的なDBAであるJoeを作成しました。すでにいくつかの企業で正常に実装されており、数十人の開発者を支援してきました。
ビデオ:

こんにちは!私の名前はアナトリー・スタンスラーです。私はPostgres.ai会社で働いています。開発者、DBA、およびQAからPostgresの遅延を取り除くことにより、開発プロセスのスピードアップに取り組んでいます。
私たちには素晴らしいクライアントがいます。今日、レポートの一部は、彼らと協力している間に出会った事例に焦点を当てます。彼らがかなり深刻な問題を解決するのをどのように支援したかをお話しします。

, : « ?». review, , DBA-. – .
, , , . , . , , .

- prod - ? . , ? . , .

– prod. , , , - . prod, .

, . , .
?

staging - prod. prod, . , , staging.
- , . . prod.
?
- , staging . , - , – , . Staging . , . . , .
- , , , . . .

, , , - , , . - , , .
, , , - production.

, ? , , .
, ? , .
, , production, , .
, , , , , , . . .

, – . , cloud. 200 . , , . .
, prod .
? , .
.

, , . , 10 , 10 . , , . .

:
– 4,5 .
30 .
, . . , .
. .

OpenZFS.

OpenZFS – copy-on-write , . . . .
:
LVM,
(, Pure Storage).
Database Lab, , . . OpenZFS, LVM .

? , , , , , , .
, - , : «, , - ».
. , .
. , , , , .

, :
– , . production. , , . WAL-E, WAL-G Barman. , - Cloud-, , RDS Cloud SQL, . - , , , production, , .
– , Database Lab. Cloud, On-premise. , ZFS . .
, , , - dev. dev . , 4,5 , ZFS 3,5 . . dev .
.
, DBA , .
QA- , prod. environment QA , . , , , , - , .
. , , .

:
«», .
, .
, . . , .
. prod. .
. .
- , .
, ?

.
, , , . .
, . , ? .

? , , Slack-. .
? . . . . . , - , . .
Slack . , thread , , DBA, .

, , . , , , , .
, - .
, . . . .
production, .

Postgres . . Postgres, . . Shared Buffer Cache.
, Shared Buffer Cache Postgres , .
.

, , . - Shared Buffer Cache – 25 % , .
, , 4 instance, . . 4 . , , , .
, Buffer Cache , , . . , . , .
, prod , Postgres . , SeqScan. , ?
, Postgres Shared Buffer , effective_cache_size.

Effective_cache_size – , , . . Buffer Cache . . .
Postgres, , - , . , production.
. , , :
, prod.
.
, , , .
, , prod, , , , . , . . , , – ( ) , .
, Joe .

. – 1 . , 10 .

, . , 2,5 . , .
B Joe , .
, , . - , , .

, . , , . , 142 .

, , index scan , , ( ), .

- , .

, .

, , 2,5 156 , . 6 .

index only scan.
, - . Flame Graphs.

, . Flame Graphs : , , . . .
. , , .

, explain.depesz.com. , - , , .
, , explain.depesz.com, , .

– explain.dalibo.com. , . , , , -, .

, , Slack . , , , , thread Slack .

, . Update Database Lab, open source. Joe . . .
, - , Delphix, enterprise-. , . Postgres. open source. !
. !
! ! , , . . , .
, ? , . , 10 , , 10 . , . . , , ?
. . - , , , , fail-.
, . . . ? . ?
- ttl . , ttl.
, ?
1 , . . idle – 1 . , . , . , – .
, , , . ZFS? LVM? , c LVM . ? , , .
ZFS? , , . . instances . , . , . . LVM?
LVM meetup. – . ZFS . . . ZFS , Linux . . . . ZFS . , , . , , . . . . , . community, . ZFS – .
: ? , . , – . Pure Storage . .
, . – , , . . , .
ZFS . DelPhix, 300 . fortune 100 — 50 , . . NASA . . . open source Core. , open source. , . , . , . SELECT , . , DBA . . , . , . ZFS, . community , open source . .*
! ! . . . ? : , , - , - job . CPU , IO, ? .
. , ZFS , prod ZFS, ext4, . ?
. , . . , staging . , - , - . . prod. - , - – , , , - .
, , . , , , -, . , . , - .
. . , production , , ? - ? – - MySQL?
. , . Joe, , . ? Joe . , . , – . , .
MySQL. , state . Postgres, Postgres. . Postgres. , , . .
, MySQL. . , . .. MySQL . , ZFS.
! . , , , . , ?
, . , Postgres. ?
, , . , , , prod . - . prod, , prod , .
, , . , , .
?
, , , . . . , .
, , , , . , . . .
. cloud- , , Google, Amazon . .
. MySQL . , , , , . , , , , Postgres, , , instance.
. , . , , , . . , . 100 , . ? , , , , ?
, ZFS . , . , . , .
, , , , ?
, .
, , , ?
, .
. ?
, . - . . , . , . . data corruption . , , . . , .
, ! Joe . , . , Explain Analyze, .
. , : «SELECT FROM WHERE email = ». . . , - . . . , , , . - , .
! ! . Slack , - instances, ?
現在、Slackへのバインドがあります。つまり、他のメッセンジャーはありませんが、他のメッセンジャーもサポートしたいと思っています。あなたは何ができますか?JoeなしでDBLabをデプロイし、REST APIまたはプラットフォームを使用して歩き、クローンを作成してPSQLに接続できます。ただし、画面がなくなるため、開発者にデータへのアクセスを許可する準備ができている場合は、これを行うことができます。
このレイヤーは必要ありませんが、そのような機会が必要です。
それなら-はい、それはできます。