[ https://issues.apache.org/jira/browse/HIVE-2758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Phabricator updated HIVE-2758: ------------------------------ Attachment: HIVE-2758.D1491.2.patch kevinwilfong updated the revision "HIVE-2758 [jira] Metastore is caching too aggressively". Reviewers: JIRA, njain, heyongqiang, cwsteinbach Added a unit test to the metastore tests. It creates a table using the current HiveMetaStoreClient, then simulates another client renaming the table by changing the value in the db. It then attempts to get the table again using the new name and verifying the name of the table is correct. This test is used for both the metastore Thrift server and an embedded metastore. Using the current configuration, it fails with the exception "Client returned table with different name after rename. expected:<[]concurrenttbl> but was:<[rename_]concurrenttbl>" Indicating that the client can retrieve the table with the new name, but when it checks the name stored in the Table object, it is still the old name. Using the update in this patch, however, it succeeds. REVISION DETAIL https://reviews.facebook.net/D1491 AFFECTED FILES metastore/src/test/org/apache/hadoop/hive/metastore/TestHiveMetaStore.java common/src/java/org/apache/hadoop/hive/conf/HiveConf.java > Metastore is caching too aggressively > ------------------------------------- > > Key: HIVE-2758 > URL: https://issues.apache.org/jira/browse/HIVE-2758 > Project: Hive > Issue Type: Bug > Reporter: Kevin Wilfong > Assignee: Kevin Wilfong > Attachments: HIVE-2758.D1491.1.patch, HIVE-2758.D1491.2.patch > > > The metastore is caching values, like table names and locations too > aggressively, leading to inconsistencies across Hive clients and metastore > Thrift servers. > For example, open two Hive clients, in each call > DESCRIBE FORMATTED table_foo; > Then in one of those clients, execute > ALTER TABLE table_foo RENAME TO table_bar; > Then in both clients call > DESCRIBE FORMATTED table_bar; > In the client that executed the alter command, the location is correct, > however, in the other Hive client, it will still show the original location > of table_foo. > A similar experiment can be done using metastore Thrift servers, substituting > get_table for DESCRIBE FORMATTED and alter_table for ALTER TABLE ... RENAME > TO. > On the Thrift server you can see that the one which did not execute the alter > command, not only returns the wrong location, despite calling > get_table('table_bar') it will return a table that still has the name > table_foo. -- This message is automatically generated by JIRA. If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa For more information on JIRA, see: http://www.atlassian.com/software/jira