-
Notifications
You must be signed in to change notification settings - Fork 900
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Use bulk heap insert API for decompression
This should improve the throughput somewhat. This commit does several things: * Simplify loop condition in decompressing the compressed batch by using the count metadata column. * Split out a separate function that decompresses the entire compressed batch and saves the decompressed tuples slot into RowDecompressor. * Use bulk table insert function for inserting the decompressed rows, this reduces WAL activity. If we have indexes on uncompressed chunk, update them one index for entire batch at a time, to reduce load on shared buffers cache. Before that we used to update all indexes for one row, then for another, etc. * Add a test for memory leaks during (de)compression. * Update the compression_update_delete test to use INFO messages + a debug GUC instead of DEBUG messages which are flaky. This gives 10%-30% speedup on tsbench for decompress_chunk and various compressed DML queries. This is very far from the performance we had in 2.10, but still a nice improvement.
- Loading branch information
Showing
16 changed files
with
669 additions
and
347 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.