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

Antonio edited comment on CASSANDRA-15593 at 2/25/20 12:45 PM:
---------------------------------------------------------------

i set dclocal_read_repair_chance = 1.0,if every time read repair working,i use 
local_quarum can select  1 1 1

but sometimes,return none,and i use local_one, select like this one by one,

    node1 un,node2 dn,node3 dn:return 1 1 1

    node1 dn,node2 un,node3 dn:return none

    node1 dn,node2 dn,node3 dn:return none

only the correct node1 select can return 1 1 1, other two node return 
none,that's make me confused

 


was (Author: james1):
i set dclocal_read_repair_chance = 1.0,if every time read repair working,i use 
local_quarum can select  1 1 1

but sometimes,return none,and i use local_one, select like this one by one,

    node1 un,node2 dn,node3 dn:return 1 1 1

    node1 dn,node2 un,node3 dn:return none

    node1 dn,node2 dn,node3 dn:return none

only the correct node1 select can return 1 1 1, othe two node return 
none,that's make me confused

 

> seems reading repair bug
> ------------------------
>
>                 Key: CASSANDRA-15593
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-15593
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: Antonio
>            Priority: Normal
>
> cassandra version:2.1.15
> i have one dc and 3nodes 
> 1. create KEYSPACE test WITH replication = \{'class': 
> 'NetworkTopologyStrategy', 'DC1':'3' } and durable_writes = 'true';
> 2. create table test(a int , b int , c int , primary key(a)) with 
> dclocal_read_repair_chance = 1.0;
> 3. insert one row into table test,instert into test(a, b, c) values (1, 1, 
> 1); and remove sstable on two nodes and result below:
>     node1:have correct row 1 1 1
>     node2:doesn't have rf
>     node3:doesn't have rf
> 4. and i use local_one select one by one like this:
>     node1 un,node2 dn,node3 dn:return 1 1 1
>     node1 dn,node2 un,node3 dn:return null
>     node1 dn,node2 dn,node3 dn:return null 
>     this prove node1 have correct rf
> 5. and i let all node un,user local_quarum to select , select * from test 
> where a = 1;
>     but the read repair does't work every time(i test many times),that's the 
> problem(same in 3.0.15)
>  
> i hope if i set dclocal_read_repair_chance = 1.0,every time i read by 
> local_quarum, if any rf digest does't match,read repair will work,and repair 
> all nodes
>  
> i.m not sure does's the problem happends in this code()
> wish for your reply,thanks
> public void response(MessageIn<TMessage> message)
>     {
>         resolver.preprocess(message);        int n = waitingFor(message)
>               ? recievedUpdater.incrementAndGet(this)
>               : received;        if (n >= blockfor && 
> resolver.isDataPresent())
>         {
>             ////this mean if return responses >= rf/2 +1 and a data response 
> return,it start compare,does't all response
>             condition.signalAll();            // kick off a background digest 
> comparison if this is a result that (may have) arrived after            // 
> the original resolve that get() kicks off as soon as the condition is 
> signaled            if (blockfor < endpoints.size() && n == endpoints.size())
>             {
>                 TraceState traceState = Tracing.instance.get();               
>  if (traceState != null)
>                     traceState.trace("Initiating read-repair");
>                 StageManager.getStage(Stage.READ_REPAIR).execute(new 
> AsyncRepairRunner(traceState));
>             }
>         }
>     }



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

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

Reply via email to