You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
postgres=# insert into test2(non_existent_column) values (1);
WARNING: leaking still-referenced relcache entry for "test2"
ERROR: column "non_existent_column" of relation "test2" does not exist
LINE 1: insert into test2(non_existent_column) values (1);
The text was updated successfully, but these errors were encountered:
Summary:
- Use the relcache file to store relation cache data, add ysql catalog version to
detect (and clean up) old (no longer valid) files.
- No longer preload catcache (only relcache) for backend connections except during
initdb which makes heavy use of various relations and builtins.
- No longer increment catalog version for inserts, only for updates/deletes. Since we don't do
negative caching, inserts (e.g. from CREATE TABLE) do not invalidate the cache, only
updates/deletes (e.g. ALTER or DROP TABLE).
- Fix a cache refrence leak bug and clean up the logic for retry and cache-refresh due to
catalog version mismatches.
Test Plan:
jenkins, TestPgCacheConsistency, sample apps with high number of connections:
java -jar ./target/yb-sample-apps.jar --workload SqlInserts --nodes 127.0.0.1:5433 --num_threads_write 99 --num_threads_read 0 --num_unique_keys 1000000000
Reviewers: mikhail, robert
Reviewed By: robert
Subscribers: yql, bogdan
Differential Revision: https://phabricator.dev.yugabyte.com/D6412
Can happen for some mixes DMLs with DDLs from multiple connections.
To replicate:
The text was updated successfully, but these errors were encountered: