You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Ludovic Boutros (JIRA)" <ji...@apache.org> on 2018/02/01 11:05:00 UTC

[jira] [Comment Edited] (CASSANDRA-14055) Index redistribution breaks SASI index

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

Ludovic Boutros edited comment on CASSANDRA-14055 at 2/1/18 11:04 AM:
----------------------------------------------------------------------

Hi [~jrwest],

first, thank you for reviewing this patch.
 I will try to give answers to your questions.

Your global analysis is correct. The idea of this patch was to change as few things as possible.
 I do not see any other failure scenarios currently.
 We are using this patch in production with success since the end of november.

Regarding the {{keepFile}} change, with my last patch, I can reproduce the file deletion with the {{forceFlush}} boolean set to {{true}}.

You can just add a conditional breakpoint with {{keepFile && (obsolete.get() || sstableRef.globalCount() == 0)}} in the {{release}} function.
 It will stop on each attempt of index redistribution with {{forceFlush}} active (second part of the test).

With my limited knowledge of the global code, I did not see any issue in the reference counting process with my patch.
 But again, I'm quite new with this code :).


was (Author: lboutros):
Hi @Jordan,

first, thank you for reviewing this patch.
I will try to give answers to your questions.

Your global analysis is correct. The idea of this patch was to change as few things as possible.
I do not see any other failure scenarios currently.
We are using this patch in production with success since the end of november.

Regarding the {{keepFile}} change, with my last patch, I can reproduce the file deletion with the {{forceFlush}} boolean set to {{true}}.

You can just add a conditional breakpoint with {{keepFile && (obsolete.get() || sstableRef.globalCount() == 0)}} in the {{release}} function.
It will stop on each attempt of index redistribution with {{forceFlush}} active (second part of the test).

With my limited knowledge of the global code, I did not see any issue in the reference counting process with my patch.
But again, I'm quite new with this code :).

> Index redistribution breaks SASI index
> --------------------------------------
>
>                 Key: CASSANDRA-14055
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-14055
>             Project: Cassandra
>          Issue Type: Bug
>          Components: sasi
>            Reporter: Ludovic Boutros
>            Assignee: Ludovic Boutros
>            Priority: Major
>              Labels: patch
>             Fix For: 3.11.2
>
>         Attachments: CASSANDRA-14055.patch, CASSANDRA-14055.patch, CASSANDRA-14055.patch
>
>
> During index redistribution process, a new view is created.
> During this creation, old indexes should be released.
> But, new indexes are "attached" to the same SSTable as the old indexes.
> This leads to the deletion of the last SASI index file and breaks the index.
> The issue is in this function : [https://github.com/apache/cassandra/blob/9ee44db49b13d4b4c91c9d6332ce06a6e2abf944/src/java/org/apache/cassandra/index/sasi/conf/view/View.java#L62]



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@cassandra.apache.org
For additional commands, e-mail: commits-help@cassandra.apache.org