[ https://issues.apache.org/jira/browse/PHOENIX-2221?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15097117#comment-15097117 ]
Alicia Ying Shu commented on PHOENIX-2221: ------------------------------------------ [~jamestaylor] I have incorporated the protobuf fix and all other suggested changes. The root cause of not blocking writes is the asynchrony of this approach. When calling MetaDataEndPointImpl.updateIndexState, we update meta data, invalidate cache, and propagate the values to the clients. All these are done asynchronously. When propagating the values to the client, the changed values may not have been reflected from the meta data changes. That is why from debugger some got correct indexDisableTimestamp and some got 0 before sending the values to the clients. To definitely block writes after index updating failure, it is better we only check one place -- the READABLE IndexState. What do you think? > Option to make data regions not writable when index regions are not available > ----------------------------------------------------------------------------- > > Key: PHOENIX-2221 > URL: https://issues.apache.org/jira/browse/PHOENIX-2221 > Project: Phoenix > Issue Type: Improvement > Reporter: Devaraj Das > Assignee: Alicia Ying Shu > Fix For: 4.8.0 > > Attachments: DelegateIndexFailurePolicy.java, PHOENIX-2221-v1.patch, > PHOENIX-2221-v2.patch, PHOENIX-2221-v3.patch, PHOENIX-2221-v4.patch, > PHOENIX-2221-v5.patch, PHOENIX-2221.patch, PHOENIX-2221.wip > > > In one usecase, it was deemed better to not accept writes when the index > regions are unavailable for any reason (as opposed to disabling the index and > the queries doing bigger data-table scans). > The idea is that the index regions are kept consistent with the data regions, > and when a query runs against the index regions, one can be reasonably sure > that the query ran with the most recent data in the data regions. When the > index regions are unavailable, the writes to the data table are rejected. > Read queries off of the index regions would have deterministic performance > (and on the other hand if the index is disabled, then the read queries would > have to go to the data regions until the indexes are rebuilt, and the queries > would suffer). -- This message was sent by Atlassian JIRA (v6.3.4#6332)