ืชืจืืื ืืืืืจ ืืืื ืืืืืื ืขืืืจ ืชืืืืื ืืงืืจืก
PostgreSQL ืืืืืจืืช ืขืงืืืืช ืืชืืื ืกืคืฆืืคืืืช ืืืืืืจ
ื-Compose ืื ื ืขืืกืงืื ืืืืืจื ืืืืข ืจืืื, ืื ืฉื ืืชื ืื ื ืืืืื ืืช ืืืืืจ ืืืชืจ ืืช ืืคืื ืงืฆืืื ืืืืช ืืืืกืจืื ืืช ืฉืืื. ืืฉืื ืื ื ืืืืืื ืืืืื ืืช ืืชืืื ืืช ืฉื ืืกืื ื ืชืื ืื ืืืฉืื, ืืคืขืืื ืื ืื ื ืืชืืืืื ืืืฉืื ืืื ื ืืื ืืื ืื ืชืืื ืืช ืืืืืช ืืื ื ืืืืืช ืืืืื ืืืืืจืื ืืืชืจ ืฉืืืชื ืขืืื ื ืืืจ ืืื ืจื. ืืืช ืืชืืื ืืช ืืืืฉืืช ืฉืจืฆืืชื ืืจืืืช ื-PostgreSQL ืืืืชื ืขืงืืืืช ืืชืืื ื ืืชื ืช ืืืืืจื ืืื ืืืืืจ ืขื ืคื ื ืื ืืืฉืืื. ืืืคื ืฉืืกืชืืจ, ืืืจ ืืฉ ืื ื ืืช ืื, ืืืืื ืื ืื ื ืจืืฆืื ืืฉืชืฃ ืืชืื ืืืืืข ืืืฆื ืชืืืื ืืืฉืชืืฉ ืื.
ืืื ืื ื ืฆืจืื ืืช ืื?
ืืื ืืืฉืืื ืฆืจืื ืืืชื ืื ืชืืื ืืืืฉืื ืฉืื. ืงืื, ืืืฉื, ืืคืืืงืฆืืืช ืชืฉืืื ืืฉืืื ืืช. ืชืืืงืง ืืขืงืืืืช ืฉื XNUMX% ืืจืืื ืืืฉืืื, ืื ืชืฆืืจื ืืืคืขืื ืืชืืืืืืืืช ืกืื ืืจืื ืืืช ืืื ืฉืืกื ืื ืชืื ืื ืฉืื ืืืชืื ืืืืฆืืข ืื ืืฉืื ืืืื. ืขื ืืืช, ืื ืืืคืืืงืฆืื ืฉืื ืืื ืจืฉืช ืืืจืชืืช ืฉืฆืืืืช ืืืืืจืืช, ืกืืืจ ืืื ืื ืฉืชืขืืืฃ ืชืืืื ืืืืจื ืขื ืคื ื XNUMX% ืขืงืืืืช. ืืื ืืืฉืื ืืืช, ืืชื ืืืื ืืืฉืชืืฉ ืืืชืืืืืืืืช ืืกืื ืืจืื ืืืช ืืืฉืืื ืฉืื.
ืชืคืืฉื ืคืฉืจื
ืืชื ืฆืจืื ืืขืฉืืช ืคืฉืจืืช ืืื ืขืงืืืืช ื ืชืื ืื ืืืืฆืืขืื. PostgreSQL ืืชืจืืง ืืขืงืืืืช ืืืืืื ืฉืชืฆืืจืช ืืจืืจืช ืืืืื ื ืืชื ืช ืืืืืื ืืืื ืืคืชืขืืช ืืืชื ืฆืคืืืืช. ืขืืฉืื ืืืื ื ืกืชืื ืขื ืืคืฉืจืืช.
ืคืฉืจื 1: ืืืฆืืขืื
ืื ืืฉืืื PostgreSQL ืืื ื ืืืจืฉ ืขืงืืืืช, ืืื ืืืื ืืคืขืื ืืืืคื ืืกืื ืืจืื ื. ืืืชืืื ืืชืืฆืขืช ืืืืืื ืืืฉืืื, ืืขืืืื ืื ืืืฉืืื ืืืขืชืงืื ืฉืื ืืื ืืืคืืืช ืฉื ืืืช ืืืืืจ ืืืชืจ. ืืืฉืจ ืืฉืืื PostgreSQL ืืืจืฉ ืขืงืืืืช, ืืื ืืืื ืืคืขืื ืืืืคื ืกืื ืืจืื ื. ืืืชืืื ืชืชืืฆืข ืืื ืืื ืืืฉืืื, ืืฉืจ ืืฉืื ืขืืืื ืืจืคืืืงืืช ืืืืชืื ืืืืฉืืจ ืฉืื ืืื ืืชื ืืคื ื ืฉืืืืช ืืืฉืืจ ืืืงืื ืฉืืื ืืช ืืืชืืื ืฉืืฆืืื. ืืืืื ืืืขืฉื ืืื ืืืืฉืืช ืืืื ืืื ืฉืืฉืืื ืื-ืกืื ืืจืื ืืช ืืืจืฉืช ืฉืชื ืืืืืืื ืืจืฉืช, ืืขืื ืืฉืืื ืืกืื ืืจืื ืืช ืืืจืฉืช ืืจืืข.
ืคืืืืจ 2: ืขืงืืืืช
ืื ืืชืืฆืื ืืืงืจื ืฉื ืืืฉืืื ืื ืืื ืืฉืชื ืืืืฉืืช ืืืื ืชืืื ืฉืื ื. ืื ืืขืืืื ืืืืฆืขืช ืืืืคื ืืกืื ืืจืื ื, ืื ืื ืืชืจืืฉืช ืฉืืืื ืืื, ืื ืื ืืจืฉืืืืช ืืชืืฆืขื ืขื ืืื ืืืขืชืงืื. ืืื ืืื ืืืืืื? ืชืืื ืืืืฉืื ืขืฆืื ืืืืขืืืืช ืืฉืืคืื. ืฉืืคืื Compose ืชืื ืข ืืขืชืง ืืืคืื ืืืืืื ืื ืืืืช ืืืืืข ืื ืงืื ื ื-1MB ืืืฉืจ ื-Leader, ืืืืืจ, ืขื 1MB ืฉื ืจืฉืืืืช ืขืืืืืช ืืืืช ืืืืืื ืืืืื ืคืขืืื ืืกืื ืืจืื ืืช.
ืื ืื ืงืืจื ืืืฆื ืกืื ืืจืื ื. ืื ืืื ืืื ื ืืฉื, ืื ืืืขืชืงืื ืืชืขืืื ืื, ืืืืืื ืฉืื ืืชืืื ืฉืืืฉืจื ืขื ืืื ืืื ืืืืืช ืืืืืช ืืืืฉืจืช ืืืขืชืงืื. ืืืื ืขืงืืืืช.
ืืชื ืืืืช ืกืื ืืจืื ืืช ืืืืื ืืช ืืืคืืืงืฆืืืช ืืืื ืฉืื ืืขืงืืืืช ืืฉ ืืชืจืื ืืจืืจ ืืคืฉืจื ืืื ืขืงืืืืช ืืืืฆืืขืื. ืืืืจ ืืืฉืื ืืืืชืจ ืขืืืจ ืืืฉืื ืืื ืืื ื ืชืื ืื ืชืงืคืื. ืืขืช ืืฉืื ืขื ืจืฉืช ืืืจืชืืช ืฉืื ืืืฉืืื ืืขืืงืจืืช ืืื ืืฉืืืจ ืขื ืชืฉืืืช ืืื ืฉื ืืืฉืชืืฉ ืขื ืืื ืืขื ื ืืืงืฉืืช ืืืืืจืืช ืืืคืฉืจืืช. ืืืงืจื ืื, ืืืฆืืขืื ืขื ืคืืืช ืืืืืืื ืืจืฉืช ืืคืืืช ืืืชื ื ืืืชืืืืืืืืช ืืืื ืืจืืฉ ืกืืจ ืืขืืืคืืืืช. ืขื ืืืช, ืืืืืคื ืืื ืืืฆืืขืื ืืขืงืืืืช ืืื ื ืืืืืื ืฉืขืืื ืฆืจืื ืืืฉืื.
ืืืืืฅ 3: ืงืจืืกืืช
ืืฉืื ืืืื ืืืืื ืืื ืืฉืืื ืืชื ืื ืืืื ืืฉื. ืฉืงืื ืืฆื ืฉืื ืืขืชืง ืืื ืื ืืืชืจ ื ืืฉื. ืืืฉืจ ืืืืืืื ืืขืืืืื ืืืืคื ืืกืื ืืจืื ื, ืืื ืืื ืืืฉืื ืืชืคืงื, ืืืืืจ ืืงืื ืืืขืื ืืชืืื, ืืืื ืืืืืช ืืืขืชืงืื ืืกืจืื. ืืฉืืขืืชืงืื ืืืืจืื ืืืฉืืื, ืื ืืฉืืืื ืืช ืืื ืืื. ืืฉืืคืื ืกืื ืืจืื ื, ืื ืืืขืชืงืื ืื ืืืืื, ืื ืืื ืืื ืื ืชืืื ืืจืืจื ืืืื ืืืฉืื ืืืืชืื ืืืืฉืืจ ืืชืืืืืืช ืขื ืฉืืขืชืง ืืืืืจ ืืืฉืืื ืืืืื ืืงืื ืืืืฆืข ืืช ืืืชืืื.
ืืืืืจ ืืื ืืื ืขืกืงื?
ืื ืืืฉืื ืฆืจืื ืกืื ืืืจ ืฉื ืฉืืืื ืฉื ืขืงืืืืช ืืืืฆืืขืื. ืืื ืื ืื, ืืืืื, ืื ืืืคืืืงืฆืื ืฉืื ื ืืชืฉืืื ืืฉืืื ืืช, ืฉืื ื ืืืืืื ืื ืฉืืื ืขืงืืืช ืืืืืืื, ืื ืืคืืืงืฆืืืช ืืจืฉืช ืืืืจืชืืช ืืืืขื ืืจืขืืช ืฉืื ื. ืืื ืฉืืจ ืืืงืจืื, ืืืื ืืงืจืื ืฉืืื ืืืง ืืืคืขืืืืช ืืืืืืช ืืืืืช ืกืื ืืจืื ืืืช ืืืืงื ืืืืืืช ืืืืืช ืืกืื ืืจืื ืืืช. ืืืื ืื ืชืจืฆื ืฉืืืขืจืืช ืชืืื ืขื ืฉืชืชืืฆืข ืืืืขื ืฉื ืฉืืื ืืฆ'ืื, ืืื ืื ืืชืฉืืื ืืขืืื ืืืืชื ืืคืืืงืฆืื, ืื ืชืฆืืจื ืืืืืช.
ืื ืืืืืืืช ืืืื, ืืืืื, ืืชืงืืืืช ืขื ืืื ืืคืชื ืืืคืืืงืฆืื. ืงืืืช ืืืืืืืช ืื ืืื ืืช ืืืื ืืชื ืืืฉืชืืฉ ืืื ืืืฉื ืชืขืืืจ ืื ืืืคืืง ืืช ืืืจื ืืืืฉืืื ืฉืื. ืืฉืื ืฉืืืคืชื ืืืื ืืขืืืจ ืืื ืืื ืืจืืช SQL ืืฆืืจื ืืืืืจืื ืืขืืืจ ืืจื ืืงืฆืืืช.
ืืืืืช ืฉืืืื ืืคืืขื
ืืืจืืจืช ืืืื, PostgreSQL ืืกืคืง ืขืงืืืืช. ืื ื ืฉืื ืขื ืืื ืคืจืืืจ ืืฉืจืช synchronous_commit
. ืืืจืืจืช ืืืื ืื ืืืฆื on
, ืืื ืืฉ ืื ืฉืืืฉ ืืคืฉืจืืืืช ืืืจืืช: local
, remote_write
ืื off
.
ืืขืช ืืืืจืช ืืคืจืืืจ ื off
ืื ืืืชืืืืืืืืช ืืกืื ืืจืื ืืืช ืืืคืกืงืืช, ืืคืืื ืืืขืจืืช ืืืงืืืืช. ืืคืจืืืจ ืืืงืืื ืืฆืืื ืืฆื ืกืื ืืจืื ื ืขืืืจ ืืืขืจืืช ืืืงืืืืช, ืื ืืชืืื ืืืขืชืงืื ืืืืฆืขืช ืืืืคื ืืกืื ืืจืื ื. Remote_write
ืืืื ืืคืืื ืจืืืง ืืืชืจ: ืืชืืื ืืืขืชืงืื ื ืขืฉืืช ืืืืคื ืืกืื ืืจืื ื, ืื ืืืืืจืช ืืืฉืจ ืืขืชืง ืงืืื ืืช ืืืชืืื ืื ืื ืืชื ืืืชื ืืืืกืง.
ืขื ืืื ืืชืืฉืืืช ืืืืืื ืืืคืฉืจืืืืช ืืืืื, ืื ื ืืืืจืื ืืชื ืืืืช, ืืืืงืืื ืืืฉืืื ืืช ืื on
โ ืืื ืืงืืืืช ืกืื ืืจืื ืืืช, ืื ืื ื ื ืืืจ local
ืขืืืจ commits ืืกืื ืืจืื ื ืขื ืืื ืืจืฉืช, ืชืื ืืฉืืจืช commits ืืงืืื ืกืื ืืจืื ื.
ืขืืฉืื, ืืืื ืื ืืื ืืืืืืจ ืืช ืื ืืขืื ืจืืข, ืืื ืชืืจ ืืขืฆืื ืฉืืืืจื ื synchronous_commit
ะฒ local
ืขืืืจ ืืฉืจืช. ืชืืื ื ืื ืืคืฉืจ ืืฉื ืืช ืืช ืืคืจืืืจ synchronous_commit
ืชืื ืืื ืชื ืืขื, ืืืชืืจืจ ืฉืื ืื ืจืง ืืคืฉืจื, ืืฉ ืืคืืื ืฉืชื ืืจืืื ืืขืฉืืช ืืืช. ืืจืืฉืื ืืื ืืืืืืจ ืืช ืืืคืขืื ืฉื ืืืืืืจ ืฉืื ืืืืคื ืืื:
SET SESSION synchronous_commit TO ON;
// Your writes go here
ืื ืืืชืืื ืฉืืืืจ ืืื ืืืคืขืื ืชืืฉืจ ืืชืืื ืืขืืชืงืื ืืคื ื ืืืืจืช ืชืืฆืื ืืืืืืช ืืืงืื ืืืืืืจ. ืืื ืื ืื ืืชื ืืฉื ื ืืช ืืืืืจื synchronous_commit
ืฉืื. ืืชื ืืืื ืืืฉืืื ืืืง SESSION
ืืคืงืืื ืื ืืื ืชืืื ืืขืจื ืืจืืจืช ืืืืื.
ืืฉืืื ืืฉื ืืื ืืืื ืืืฉืจ ืืชื ืจืง ืจืืฆื ืืืืื ืฉืืชื ืืงืื ืฉืืคืื ืกืื ืืจืื ื ืืขืกืงื ืืืืืช. ืืืจืื ืืกืื ื ืชืื ืื ืฉื ืืืจ NoSQL ืืืืฉื ืืจื ืืงืฆืืืช ืื ืงืืื, ืืื ืื ื-PostgreSQL. ืืืงืจื ืื ืืชื ืืชืืื ืขืกืงื ืืื ืืืืืจ synchronous_commit
ะฒ on
ืืคื ื ืืืฆืืข ืืจืืฉืื ืืขืกืงื. COMMIT
ืืืฆืข ืืช ืืขืกืงื ืืืืฆืขืืช ืื ืขืจื ืคืจืืืจ synchronous_commit
, ืฉืืืืืจ ืืืื ื, ืื ืื ืขืืืฃ ืืืืืืจ ืืช ืืืฉืชื ื ืืจืืฉ ืืื ืืืืื ืฉืืคืชืืื ืืืจืื ืืืื ืื ืฉืืืชืืื ืืื ื ืืกืื ืืจืื ืืช.
BEGIN;
SET LOCAL synchronous_commit TO ON;
// Your writes go here
COMMIT;
ืื ืืชืืืืืืืืช ืืขืกืงืืืช ืืืืฉืจื ืืขืช ืืืชืืืืช ืืขืชืงืื ืืคื ื ืฉืืกื ืื ืชืื ืื ืืืืืจ ืชืืืื ืืืืืืช ืืืงืื ืืืืืืจ.
ืืืืจืช PostgreSQL
ืืคื ื ืื, ืืืืื ื ืืขืจืืช PostgreSQL ืขื synchronous_commit
, ืืืชืงื ื local
. ืืื ืืืคืื ืืช ืื ืืืฆืืืืชื ืืฆื ืืฉืจืช, ืชืฆืืจื ืืืืืืจ ืฉืชื ืืคืฉืจืืืืช ืชืฆืืจืช ืฉืจืช. ืขืื ืคืจืืืจ ืืื synchronous_standby_names
ืืืื ืืืื ืืืืื ืืชื synchronous_commit
ืืืื ื on
. ืืื ืงืืืข ืืืื ืืขืชืงืื ืืืืื ืืืชืืืืืืืืช ืกืื ืืจืื ืืืช, ืืื ืื ื ื ืืืืจ ืืืช *
, ืื ืฉืืืืจ ืฉืื ืืืขืชืงืื ืืขืืจืืื. ืขืจืืื ืืื ืืืืืจืื ืืืจื ืืื ื
synchronous_commit = local
synchronous_standby_names='*'
ืขื ืืื ืืืืจืช ืืคืจืืืจ synchronous_commit
ืืชืื ืืฉืืขืืช local
, ืื ื ืืืฆืจืื ืืขืจืืช ืฉืื ืืืืกืงืื ืืืงืืืืื ื ืฉืืจืื ืกืื ืืจืื ืืื, ืื ืืชืืืืืืืืช ืืขืชืง ืฉื ืจืฉืช ืื ืืกืื ืืจืื ืืืช ืืืจืืจืช ืืืื. ืืื ืื ืื, ืืืืื, ื ืืืื ืืืคืื ืืช ืืืชืืืืืืืืช ืืืื ืืกืื ืืจืื ืืืช, ืืคื ืฉืืืฆื ืืขืื.
ืื ืขืงืืช ืืืจ ืืคืืชืื
ืขืื ืืื ืืืืื...
ืจืง ืืคื ื ืฉืืืข, ืืืืชื ืืืืจ ืื ืฉืื ืืคืฉืจ ืืืืื ื ืืช PostgreSQL ืขื ืืื ืื. ืื ืื ืงืืจื, ืืืจ ืืฆืืืช ืคืืืคืืจืืช Compose, ืืชืขืงืฉ ืฉืงืืืืช ืืืืื ืืช ืืื. ืืื ืืจืืืข ืืช ืืืชื ืืืืืืช ืฉืื ืืืฆื ืืชืืขืื ืฉื PostgreSQL
ืืืืจื ืื ื ืืชื ืช ืืฉืื ืื ืืื ืขืช. ืืืชื ืืืืช ืฉื ืื ืขืกืงื ื ืงืืขืช ืขื ืคื ืืืืืจื ืืชืืงืฃ ืืืื ืืืชืืืืืืช. ืืื, ื ืืชื ืืฉืืืืฉื ืขืืืจ ืขืกืงืืืช ืืกืืืืืช ืืืฆืข ืืชืืืืืืช ืกืื ืืจืื ืืช ืืืืืจืืช ืืืืคื ืืกืื ืืจืื ื. ืืืฉื, ืืืืจืื ืืื multistatement
ืืจื ืืงืฆืื ืืืืฆืืข ืืชืืืืืื ืืืืคื ืืกืื ืืจืื ื ืืืฉืจ ืขืจื ืืจืืจืช ืืืืื ืฉื ืืคืจืืืจ ืืื ืืคืื, ืืืืืจ SET LOCAL synchronous_commit TO OFF
ืืขืกืงื.
ืขื ืืฉืื ืื ืืงืื ืืื ืืงืืืฅ ืืชืฆืืจื, ื ืชื ื ืืืฉืชืืฉืื ืฉืืืื ืขื ืืขืงืืืืช ืืืืืฆืืขืื ืฉืืื.
ืืงืืจ: www.habr.com