[ 
https://issues.apache.org/jira/browse/PHOENIX-3823?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15998843#comment-15998843
 ] 

Maddineni Sukumar commented on PHOENIX-3823:
--------------------------------------------

FYI - [~jamestaylor] / [~mujtabachohan]

Create VIEW command failing with actual table not found error and next retry 
failed with VIEW already exists error..And its continuing like that(first 
tabelnotfound and then view already exists)..

If I create table without UPDATE_CACHE_FREQUENCY then its working fine.  

Create table command:

create table UpdateCacheViewTestB (k VARCHAR PRIMARY KEY, v1 VARCHAR, v2 
VARCHAR) UPDATE_CACHE_FREQUENCY=100000;

Create View command:

CREATE VIEW my_view (v43 VARCHAR) AS SELECT * FROM UpdateCacheViewTestB WHERE 
v1 = 'value1’;



sqlline Console output:



0: jdbc:phoenix:shared-mnds1-1-sfm.ops.sfdc.n> select * from 
UPDATECACHEVIEWTESTB;

+------------------------------------------+------------------------------------------+------------------------------------------+

|                    K                     |                    V1              
      |                    V2                    |

+------------------------------------------+------------------------------------------+------------------------------------------+

0: jdbc:phoenix:shared-mnds1-1-sfm.ops.sfdc.n> CREATE VIEW my_view (v43 
VARCHAR) AS SELECT * FROM UpdateCacheViewTestB WHERE v1 = 'value1';

Error: ERROR 1012 (42M03): Table undefined. tableName=UPDATECACHEVIEWTESTB 
(state=42M03,code=1012)

0: jdbc:phoenix:shared-mnds1-1-sfm.ops.sfdc.n> CREATE VIEW my_view (v43 
VARCHAR) AS SELECT * FROM UpdateCacheViewTestB WHERE v1 = 'value1';

Error: ERROR 1013 (42M04): Table already exists. tableName=MY_VIEW 
(state=42M04,code=1013)

0: jdbc:phoenix:shared-mnds1-1-sfm.ops.sfdc.n> CREATE VIEW my_view (v43 
VARCHAR) AS SELECT * FROM UpdateCacheViewTestB WHERE v1 = 'value1';

Error: ERROR 1012 (42M03): Table undefined. tableName=UPDATECACHEVIEWTESTB 
(state=42M03,code=1012)

> Force cache update on MetaDataEntityNotFoundException 
> ------------------------------------------------------
>
>                 Key: PHOENIX-3823
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3823
>             Project: Phoenix
>          Issue Type: Sub-task
>            Reporter: James Taylor
>            Assignee: Maddineni Sukumar
>
> When UPDATE_CACHE_FREQUENCY is used, clients will cache metadata for a period 
> of time which may cause the schema being used to become stale. If another 
> client adds a column or a new table or view, other clients won't see it. As a 
> result, the client will get a MetaDataEntityNotFoundException. Instead of 
> bubbling this up, we should retry after forcing a cache update on the tables 
> involved in the query.
> The above works well for references to entities that don't yet exist. 
> However, we cannot detect when some entities are referred to which no longer 
> exists until the cache expires. An exception is if a physical table is 
> dropped which would be detected immediately, however we would allow queries 
> and updates to columns which have been dropped until the cache entry expires 
> (which seems like a reasonable tradeoff IMHO. In addition, we won't start 
> using indexes on tables until the cache expires.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to