PostgreSQL 9.6 Beta 1

Werbung:
das ist ja das geile: das skaliert quasi linear. Auf die schnelle fand ich dazu:

select * from depesz; » Blog Archive » Waiting for 9.6 – Support parallel aggregation.

wenn ich noch was finde gebe ich das hier noch rum. Die Architektur, auf der das aufbaut (Background worker - Prozesse), ermöglich potentiell noch andere Dinge wie Sharding. Unabhängig davon: die nächste Version, also 9.6, wird einen gigantischen Performance-Schub bringen, eben durch diese parallele Verarbeitung.


Dazu kommen weitere Optimierungen, z.B. hier beschrieben:

PostgreSQL Scalability: Towards Millions TPS - Alexander Korotkov's blog
 
Werbung:
ich hab das grad mal selber probiert:

Code:
test=# set max_parallel_degree = 0;
SET
test=# explain (analyse,buffer) select min(betrag) from auftraege ;
ERROR:  unrecognized EXPLAIN option "buffer"
test=# explain (analyse,buffers) select min(betrag) from auftraege ;
  QUERY PLAN   
----------------------------------------------------------------------------------------------------------------------------
 Aggregate  (cost=23311.00..23311.01 rows=1 width=32) (actual time=314.119..314.119 rows=1 loops=1)
  Buffers: shared hit=10104 read=707
  ->  Seq Scan on auftraege  (cost=0.00..20811.00 rows=1000000 width=6) (actual time=10.338..137.357 rows=1000000 loops=1)
  Buffers: shared hit=10104 read=707
 Planning time: 0.160 ms
 Execution time: 314.159 ms
(6 rows)

test=# set max_parallel_degree = 4;
SET
test=# explain (analyse,buffers) select min(betrag) from auftraege ;
  QUERY PLAN   
---------------------------------------------------------------------------------------------------------------------------------------------
 Finalize Aggregate  (cost=15843.58..15843.59 rows=1 width=32) (actual time=127.229..127.229 rows=1 loops=1)
  Buffers: shared hit=10418 read=675
  ->  Gather  (cost=15843.26..15843.57 rows=3 width=32) (actual time=127.216..127.223 rows=4 loops=1)
  Workers Planned: 3
  Workers Launched: 3
  Buffers: shared hit=10418 read=675
  ->  Partial Aggregate  (cost=14843.26..14843.27 rows=1 width=32) (actual time=120.434..120.434 rows=1 loops=4)
  Buffers: shared hit=10136 read=675
  ->  Parallel Seq Scan on auftraege  (cost=0.00..14036.81 rows=322581 width=6) (actual time=2.440..54.663 rows=250000 loops=4)
  Buffers: shared hit=10136 read=675
 Planning time: 0.178 ms
 Execution time: 132.069 ms
(12 rows)

test=#

Die Tabelle hat 'nur' 1 Millionen Zeilen und ist recht 'schmal'. Shared_buffers auf Default, also 128M, aber der Rechner hat 16GB RAM, daher schaut der nicht wirklich auf die Platte. Das ist nicht wirklich repräsentativ, aber schon beeindruckend, finde ich.
 
Zurück
Oben