phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "churro morales (JIRA)" <j...@apache.org>
Subject [jira] [Comment Edited] (PHOENIX-3534) Support multi region SYSTEM.CATALOG table
Date Wed, 05 Apr 2017 22:58:41 GMT

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

churro morales edited comment on PHOENIX-3534 at 4/5/17 10:58 PM:
------------------------------------------------------------------

[~jamestaylor]  how do you recommend we store this?  Should we do it at the column level where
we add a qualifier named "Excluded" or should we add it at the header row.  But we would have
to serialize all the columns and then once they are re-added to the table we would need to
track them and remove them from our set.  If we are storing this data structure in a single
cell, is it possible this will get sufficiently large to cause issues?

Problem with the column level approach is also we have to keep around those rows forever or
we can only remove them when they have no child links I assume. 


was (Author: churromorales):
[~jamestaylor]  how do you recommend we store this?  Should we do it at the column level where
we add a qualifier named "Excluded" or should we add it at the header row.  But we would have
to serialize all the columns and then once they are re-added to the table we would need to
track them and remove them from our set.  If we are storing this data structure in a single
cell, is it possible this will get sufficiently large to cause issues?

> Support multi region SYSTEM.CATALOG table
> -----------------------------------------
>
>                 Key: PHOENIX-3534
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-3534
>             Project: Phoenix
>          Issue Type: Bug
>            Reporter: James Taylor
>            Assignee: churro morales
>
> Currently Phoenix requires that the SYSTEM.CATALOG table is single region based on the
server-side row locks being held for operations that impact a table and all of it's views.
For example, adding/removing a column from a base table pushes this change to all views.
> As an alternative to making the SYSTEM.CATALOG transactional (PHOENIX-2431), when a new
table is created we can do a lazy cleanup  of any rows that may be left over from a failed
DDL call (kudos to [~lhofhansl] for coming up with this idea). To implement this efficiently,
we'd need to also do PHOENIX-2051 so that we can efficiently find derived views.
> The implementation would rely on an optimistic concurrency model based on checking our
sequence numbers for each table/view before/after updating. Each table/view row would be individually
locked for their change (metadata for a view or table cannot span regions due to our split
policy), with the sequence number being incremented under lock and then returned to the client.



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

Mime
View raw message