Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit84f1b0b

Browse files
Accommodate very large dshash tables.
If a dshash table grows very large (e.g., the dshash table forcumulative statistics when there are millions of tables), resizingit may fail with an error like:ERROR: invalid DSA memory alloc request size 1073741824To fix, permit dshash resizing to allocate more than 1 GB byproviding the DSA_ALLOC_HUGE flag.Reported-by: Andreas ScherbaumAuthor: Matthias van de MeentReviewed-by: Cédric Villemain, Michael Paquier, Andres FreundDiscussion:https://postgr.es/m/80a12d59-0d5e-4c54-866c-e69cd6536471%40pgug.deBackpatch-through: 13
1 parent7a80e38 commit84f1b0b

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

‎src/backend/lib/dshash.c

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -887,8 +887,10 @@ resize(dshash_table *hash_table, size_t new_size_log2)
887887
Assert(new_size_log2==hash_table->control->size_log2+1);
888888

889889
/* Allocate the space for the new table. */
890-
new_buckets_shared=dsa_allocate0(hash_table->area,
891-
sizeof(dsa_pointer)*new_size);
890+
new_buckets_shared=
891+
dsa_allocate_extended(hash_table->area,
892+
sizeof(dsa_pointer)*new_size,
893+
DSA_ALLOC_HUGE |DSA_ALLOC_ZERO);
892894
new_buckets=dsa_get_address(hash_table->area,new_buckets_shared);
893895

894896
/*

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp