Re: iteration does not yield all data with consistency ONE

2010-11-15 Thread Jonathan Ellis
Great. Thanks for helping us track that down!

On Mon, Nov 15, 2010 at 6:45 AM, Eric van Orsouw
 wrote:
> Jonathan, I have downloaded 0.6.8 and the iteration problem is fixed.
> Thanks,
> Eric
>
> -Original Message-
> From: Jonathan Ellis [mailto:jbel...@gmail.com]
> Sent: donderdag 11 november 2010 23:05
> To: user
> Subject: Re: iteration does not yield all data with consistency ONE
>
> Can you try with the latest 0.6 svn branch?
> https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.6  It
> may be caused by https://issues.apache.org/jira/browse/CASSANDRA-1722
> which is fixed there.
>
> On Thu, Nov 11, 2010 at 4:56 AM, Eric van Orsouw
>  wrote:
>> I have tried it with RF=1 and 2 nodes and the result was the same.
>> In this case I am not able to query anything, regardless the consistency 
>> level.
>>
>> I have conducted some more tests with 4 nodes and RF=2 and before each test 
>> I also completely cleared all datafiles (data/commit/saved_cache).
>> Each time I do this the nodes get different locations on the ring and the 
>> noticed behavior is different (but similar) each time.
>> I have added the details for 2 concrete scenario;
>>
>> 
>> 1) clear all 3 data directories for all nodes
>> 2) startup all nodes; the ring is;
>>
>> # bin/nodetool -h 172.16.21.12 ring
>> Address       Status     Load          Range                                 
>>      Ring
>>                                       81296677393575658129031223607666487650
>> 172.16.21.12  Up         489 bytes     
>> 61644956546475371096781179489550878842     |<--|
>> 172.16.21.14  Up         489 bytes     
>> 63811055530446251457866768401307252614     |   |
>> 172.16.21.13  Up         489 bytes     
>> 71622328744148061175473750202165524046     |   |
>> 172.16.21.11  Up         489 bytes     
>> 81296677393575658129031223607666487650     |-->|
>>
>> 3) I use the following ColumnFamily     > ColumnType="Super" CompareWith="AsciiType"/>
>> And add the following rows (key and values utf8 strings)
>> Customer['1'].simple.id='1'
>> Customer['2'].simple.id='2'
>> Customer['3'].simple.id='3'
>> Customer['4'].simple.id='4'
>>
>> 4) Iterating over the columns now yield;
>>        Iterating Nodes .11 thru.13 ==> all rows, regardless of consistency 
>> level
>>        Iterating Node.14           ==> only row '3' and '4' with consistency 
>> level ONE, all rows with consistency level All
>>
>> 
>> Repating all process steps again yields the following ring and iteration 
>> results
>> # bin/nodetool -h 172.16.21.11 ring
>> Address       Status     Load          Range                                 
>>      Ring
>>                                       157208721428268855331814529932509412075
>> 172.16.21.11  Up         489 bytes     
>> 18662665007498667259581716616851966032     |<--|
>> 172.16.21.13  Up         489 bytes     
>> 125997322478065775200568923383951796531    |   |
>> 172.16.21.12  Up         489 bytes     
>> 148125235552363592916130178190645177045    |   |
>> 172.16.21.14  Up         489 bytes     
>> 157208721428268855331814529932509412075    |-->|
>>
>>        Iterating Nodes .11 .12 .14 ==> no data with consistency level One, 
>> all rows with consistency level All
>>        Iterating Node .13          ==> only row '3' and '4' with consistency 
>> level ONE, all rows with consistency level All
>>
>> I appears to me there is an inconsistency somewhere, I hope this info helps.
>>
>> Eric
>>
>>
>> -Original Message-
>> From: Jonathan Ellis [mailto:jbel...@gmail.com]
>> Sent: woensdag 10 november 2010 17:48
>> To: user
>> Subject: Re: iteration does not yield all data with consistency ONE
>>
>> Interesting.  Does it simplify further to RF=1 and 2 nodes?
>>
>> On Wed, Nov 10, 2010 at 8:58 AM, Eric van Orsouw
>>  wrote:
>>> No, all nodes were up and running while the single key was inserted.
>>> The insert however was with consistency One. I assume however that the 
>>> replicas are still written in this case.
>>> It is btw also very reproducible.
>>>
>>> -Original Message-
>>> From: Jonathan Ellis [mailto:jbel...@gmail.com]
>>> Sent: woensdag 10 november 2010 15:44
>>> To: user
>>> Subject: Re: iteration does not yield all data with consis

RE: iteration does not yield all data with consistency ONE

2010-11-15 Thread Eric van Orsouw
Jonathan, I have downloaded 0.6.8 and the iteration problem is fixed.
Thanks,
Eric

-Original Message-
From: Jonathan Ellis [mailto:jbel...@gmail.com] 
Sent: donderdag 11 november 2010 23:05
To: user
Subject: Re: iteration does not yield all data with consistency ONE

Can you try with the latest 0.6 svn branch?
https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.6  It
may be caused by https://issues.apache.org/jira/browse/CASSANDRA-1722
which is fixed there.

On Thu, Nov 11, 2010 at 4:56 AM, Eric van Orsouw
 wrote:
> I have tried it with RF=1 and 2 nodes and the result was the same.
> In this case I am not able to query anything, regardless the consistency 
> level.
>
> I have conducted some more tests with 4 nodes and RF=2 and before each test I 
> also completely cleared all datafiles (data/commit/saved_cache).
> Each time I do this the nodes get different locations on the ring and the 
> noticed behavior is different (but similar) each time.
> I have added the details for 2 concrete scenario;
>
> 
> 1) clear all 3 data directories for all nodes
> 2) startup all nodes; the ring is;
>
> # bin/nodetool -h 172.16.21.12 ring
> Address       Status     Load          Range                                  
>     Ring
>                                       81296677393575658129031223607666487650
> 172.16.21.12  Up         489 bytes     61644956546475371096781179489550878842 
>     |<--|
> 172.16.21.14  Up         489 bytes     63811055530446251457866768401307252614 
>     |   |
> 172.16.21.13  Up         489 bytes     71622328744148061175473750202165524046 
>     |   |
> 172.16.21.11  Up         489 bytes     81296677393575658129031223607666487650 
>     |-->|
>
> 3) I use the following ColumnFamily      ColumnType="Super" CompareWith="AsciiType"/>
> And add the following rows (key and values utf8 strings)
> Customer['1'].simple.id='1'
> Customer['2'].simple.id='2'
> Customer['3'].simple.id='3'
> Customer['4'].simple.id='4'
>
> 4) Iterating over the columns now yield;
>        Iterating Nodes .11 thru.13 ==> all rows, regardless of consistency 
> level
>        Iterating Node.14           ==> only row '3' and '4' with consistency 
> level ONE, all rows with consistency level All
>
> 
> Repating all process steps again yields the following ring and iteration 
> results
> # bin/nodetool -h 172.16.21.11 ring
> Address       Status     Load          Range                                  
>     Ring
>                                       157208721428268855331814529932509412075
> 172.16.21.11  Up         489 bytes     18662665007498667259581716616851966032 
>     |<--|
> 172.16.21.13  Up         489 bytes     
> 125997322478065775200568923383951796531    |   |
> 172.16.21.12  Up         489 bytes     
> 148125235552363592916130178190645177045    |   |
> 172.16.21.14  Up         489 bytes     
> 157208721428268855331814529932509412075    |-->|
>
>        Iterating Nodes .11 .12 .14 ==> no data with consistency level One, 
> all rows with consistency level All
>        Iterating Node .13          ==> only row '3' and '4' with consistency 
> level ONE, all rows with consistency level All
>
> I appears to me there is an inconsistency somewhere, I hope this info helps.
>
> Eric
>
>
> -Original Message-
> From: Jonathan Ellis [mailto:jbel...@gmail.com]
> Sent: woensdag 10 november 2010 17:48
> To: user
> Subject: Re: iteration does not yield all data with consistency ONE
>
> Interesting.  Does it simplify further to RF=1 and 2 nodes?
>
> On Wed, Nov 10, 2010 at 8:58 AM, Eric van Orsouw
>  wrote:
>> No, all nodes were up and running while the single key was inserted.
>> The insert however was with consistency One. I assume however that the 
>> replicas are still written in this case.
>> It is btw also very reproducible.
>>
>> -Original Message-
>> From: Jonathan Ellis [mailto:jbel...@gmail.com]
>> Sent: woensdag 10 november 2010 15:44
>> To: user
>> Subject: Re: iteration does not yield all data with consistency ONE
>>
>> Was the node that should have the other replica of this row down when
>> it was inserted?
>>
>> On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
>>  wrote:
>>>
>>> Hello,
>>>
>>>
>>>
>>> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
>>> replication of 2.
>>>
>>> When I insert a number of rows I can always retrieve them by their explicit 
>>> id (get_range_slices

Re: iteration does not yield all data with consistency ONE

2010-11-11 Thread Jonathan Ellis
Can you try with the latest 0.6 svn branch?
https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.6  It
may be caused by https://issues.apache.org/jira/browse/CASSANDRA-1722
which is fixed there.

On Thu, Nov 11, 2010 at 4:56 AM, Eric van Orsouw
 wrote:
> I have tried it with RF=1 and 2 nodes and the result was the same.
> In this case I am not able to query anything, regardless the consistency 
> level.
>
> I have conducted some more tests with 4 nodes and RF=2 and before each test I 
> also completely cleared all datafiles (data/commit/saved_cache).
> Each time I do this the nodes get different locations on the ring and the 
> noticed behavior is different (but similar) each time.
> I have added the details for 2 concrete scenario;
>
> 
> 1) clear all 3 data directories for all nodes
> 2) startup all nodes; the ring is;
>
> # bin/nodetool -h 172.16.21.12 ring
> Address       Status     Load          Range                                  
>     Ring
>                                       81296677393575658129031223607666487650
> 172.16.21.12  Up         489 bytes     61644956546475371096781179489550878842 
>     |<--|
> 172.16.21.14  Up         489 bytes     63811055530446251457866768401307252614 
>     |   |
> 172.16.21.13  Up         489 bytes     71622328744148061175473750202165524046 
>     |   |
> 172.16.21.11  Up         489 bytes     81296677393575658129031223607666487650 
>     |-->|
>
> 3) I use the following ColumnFamily      ColumnType="Super" CompareWith="AsciiType"/>
> And add the following rows (key and values utf8 strings)
> Customer['1'].simple.id='1'
> Customer['2'].simple.id='2'
> Customer['3'].simple.id='3'
> Customer['4'].simple.id='4'
>
> 4) Iterating over the columns now yield;
>        Iterating Nodes .11 thru.13 ==> all rows, regardless of consistency 
> level
>        Iterating Node.14           ==> only row '3' and '4' with consistency 
> level ONE, all rows with consistency level All
>
> 
> Repating all process steps again yields the following ring and iteration 
> results
> # bin/nodetool -h 172.16.21.11 ring
> Address       Status     Load          Range                                  
>     Ring
>                                       157208721428268855331814529932509412075
> 172.16.21.11  Up         489 bytes     18662665007498667259581716616851966032 
>     |<--|
> 172.16.21.13  Up         489 bytes     
> 125997322478065775200568923383951796531    |   |
> 172.16.21.12  Up         489 bytes     
> 148125235552363592916130178190645177045    |   |
> 172.16.21.14  Up         489 bytes     
> 157208721428268855331814529932509412075    |-->|
>
>        Iterating Nodes .11 .12 .14 ==> no data with consistency level One, 
> all rows with consistency level All
>        Iterating Node .13          ==> only row '3' and '4' with consistency 
> level ONE, all rows with consistency level All
>
> I appears to me there is an inconsistency somewhere, I hope this info helps.
>
> Eric
>
>
> -Original Message-
> From: Jonathan Ellis [mailto:jbel...@gmail.com]
> Sent: woensdag 10 november 2010 17:48
> To: user
> Subject: Re: iteration does not yield all data with consistency ONE
>
> Interesting.  Does it simplify further to RF=1 and 2 nodes?
>
> On Wed, Nov 10, 2010 at 8:58 AM, Eric van Orsouw
>  wrote:
>> No, all nodes were up and running while the single key was inserted.
>> The insert however was with consistency One. I assume however that the 
>> replicas are still written in this case.
>> It is btw also very reproducible.
>>
>> -Original Message-
>> From: Jonathan Ellis [mailto:jbel...@gmail.com]
>> Sent: woensdag 10 november 2010 15:44
>> To: user
>> Subject: Re: iteration does not yield all data with consistency ONE
>>
>> Was the node that should have the other replica of this row down when
>> it was inserted?
>>
>> On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
>>  wrote:
>>>
>>> Hello,
>>>
>>>
>>>
>>> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
>>> replication of 2.
>>>
>>> When I insert a number of rows I can always retrieve them by their explicit 
>>> id (get_range_slices("","", 1).
>>>
>>> Playing with consistency levels and temporarily shutting down a Cassandra 
>>> node all yields the expected result.
>>>
>>>
>>>
>>> However when I use get_range_slic

Re: iteration does not yield all data with consistency ONE

2010-11-11 Thread Brandon Williams
On Thu, Nov 11, 2010 at 4:56 AM, Eric van Orsouw  wrote:

> I appears to me there is an inconsistency somewhere, I hope this info
> helps.


get_range_slices does not perform read repair, so inconsistencies at cl.ONE
won't be resolved.  Invoke nodetool repair everywhere and try again.

-Brandon


RE: iteration does not yield all data with consistency ONE

2010-11-11 Thread Eric van Orsouw
I have tried it with RF=1 and 2 nodes and the result was the same. 
In this case I am not able to query anything, regardless the consistency level.

I have conducted some more tests with 4 nodes and RF=2 and before each test I 
also completely cleared all datafiles (data/commit/saved_cache). 
Each time I do this the nodes get different locations on the ring and the 
noticed behavior is different (but similar) each time.
I have added the details for 2 concrete scenario;


1) clear all 3 data directories for all nodes
2) startup all nodes; the ring is;

# bin/nodetool -h 172.16.21.12 ring
Address   Status Load  Range
  Ring
   81296677393575658129031223607666487650
172.16.21.12  Up 489 bytes 61644956546475371096781179489550878842   
  |<--|
172.16.21.14  Up 489 bytes 63811055530446251457866768401307252614   
  |   |
172.16.21.13  Up 489 bytes 71622328744148061175473750202165524046   
  |   |
172.16.21.11  Up 489 bytes 81296677393575658129031223607666487650   
  |-->|

3) I use the following ColumnFamily 
And add the following rows (key and values utf8 strings)
Customer['1'].simple.id='1'
Customer['2'].simple.id='2'
Customer['3'].simple.id='3'
Customer['4'].simple.id='4'

4) Iterating over the columns now yield;
Iterating Nodes .11 thru.13 ==> all rows, regardless of consistency 
level
Iterating Node.14   ==> only row '3' and '4' with consistency 
level ONE, all rows with consistency level All


Repating all process steps again yields the following ring and iteration results
# bin/nodetool -h 172.16.21.11 ring
Address   Status Load  Range
  Ring
   157208721428268855331814529932509412075
172.16.21.11  Up 489 bytes 18662665007498667259581716616851966032   
  |<--|
172.16.21.13  Up 489 bytes 125997322478065775200568923383951796531  
  |   |
172.16.21.12  Up 489 bytes 148125235552363592916130178190645177045  
  |   |
172.16.21.14  Up 489 bytes 157208721428268855331814529932509412075  
  |-->|

Iterating Nodes .11 .12 .14 ==> no data with consistency level One, all 
rows with consistency level All
Iterating Node .13  ==> only row '3' and '4' with consistency 
level ONE, all rows with consistency level All

I appears to me there is an inconsistency somewhere, I hope this info helps.

Eric


-----Original Message-
From: Jonathan Ellis [mailto:jbel...@gmail.com] 
Sent: woensdag 10 november 2010 17:48
To: user
Subject: Re: iteration does not yield all data with consistency ONE

Interesting.  Does it simplify further to RF=1 and 2 nodes?

On Wed, Nov 10, 2010 at 8:58 AM, Eric van Orsouw
 wrote:
> No, all nodes were up and running while the single key was inserted.
> The insert however was with consistency One. I assume however that the 
> replicas are still written in this case.
> It is btw also very reproducible.
>
> -Original Message-
> From: Jonathan Ellis [mailto:jbel...@gmail.com]
> Sent: woensdag 10 november 2010 15:44
> To: user
> Subject: Re: iteration does not yield all data with consistency ONE
>
> Was the node that should have the other replica of this row down when
> it was inserted?
>
> On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
>  wrote:
>>
>> Hello,
>>
>>
>>
>> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
>> replication of 2.
>>
>> When I insert a number of rows I can always retrieve them by their explicit 
>> id (get_range_slices("","", 1).
>>
>> Playing with consistency levels and temporarily shutting down a Cassandra 
>> node all yields the expected result.
>>
>>
>>
>> However when I use get_range_slices("","", n) to iterate over all rows, I 
>> sometimes don't get anything (depending on the node).
>>
>>
>>
>> I then reduced the problem to inserting just a single row.
>>
>> Specifically, the 'iteration' only seems to succeed when I issue the request 
>> to the node that contains the first copy.
>>
>> I Discovered that when I iterate using a consistency level of Quorum/All the 
>> iteration always succeeds and I properly get the one row.
>>
>>
>>
>> So a solution would be to always use consistency level One/All but that has 
>> a performance penalty.
>>
>>
>>
>> Can anyone explain why iterating using get_range_slices("","",n) does not 
>> 

Re: iteration does not yield all data with consistency ONE

2010-11-10 Thread Jonathan Ellis
Interesting.  Does it simplify further to RF=1 and 2 nodes?

On Wed, Nov 10, 2010 at 8:58 AM, Eric van Orsouw
 wrote:
> No, all nodes were up and running while the single key was inserted.
> The insert however was with consistency One. I assume however that the 
> replicas are still written in this case.
> It is btw also very reproducible.
>
> -Original Message-
> From: Jonathan Ellis [mailto:jbel...@gmail.com]
> Sent: woensdag 10 november 2010 15:44
> To: user
> Subject: Re: iteration does not yield all data with consistency ONE
>
> Was the node that should have the other replica of this row down when
> it was inserted?
>
> On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
>  wrote:
>>
>> Hello,
>>
>>
>>
>> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
>> replication of 2.
>>
>> When I insert a number of rows I can always retrieve them by their explicit 
>> id (get_range_slices("","", 1).
>>
>> Playing with consistency levels and temporarily shutting down a Cassandra 
>> node all yields the expected result.
>>
>>
>>
>> However when I use get_range_slices("","", n) to iterate over all rows, I 
>> sometimes don't get anything (depending on the node).
>>
>>
>>
>> I then reduced the problem to inserting just a single row.
>>
>> Specifically, the 'iteration' only seems to succeed when I issue the request 
>> to the node that contains the first copy.
>>
>> I Discovered that when I iterate using a consistency level of Quorum/All the 
>> iteration always succeeds and I properly get the one row.
>>
>>
>>
>> So a solution would be to always use consistency level One/All but that has 
>> a performance penalty.
>>
>>
>>
>> Can anyone explain why iterating using get_range_slices("","",n) does not 
>> always function with consistency level One on all nodes?
>>
>>
>>
>> Thanks,
>>
>> Eric
>>
>>
>>
>> P.S. To rule out any discussion on whether or not to use iteration in the 
>> first place, we only plan to use it for backup and periodic cleanup cycles.
>
>
> --
> Jonathan Ellis
> Project Chair, Apache Cassandra
> co-founder of Riptano, the source for professional Cassandra support
> http://riptano.com
>



-- 
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


RE: iteration does not yield all data with consistency ONE

2010-11-10 Thread Eric van Orsouw
No, all nodes were up and running while the single key was inserted.
The insert however was with consistency One. I assume however that the replicas 
are still written in this case.
It is btw also very reproducible.

-Original Message-
From: Jonathan Ellis [mailto:jbel...@gmail.com] 
Sent: woensdag 10 november 2010 15:44
To: user
Subject: Re: iteration does not yield all data with consistency ONE

Was the node that should have the other replica of this row down when
it was inserted?

On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
 wrote:
>
> Hello,
>
>
>
> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
> replication of 2.
>
> When I insert a number of rows I can always retrieve them by their explicit 
> id (get_range_slices("","", 1).
>
> Playing with consistency levels and temporarily shutting down a Cassandra 
> node all yields the expected result.
>
>
>
> However when I use get_range_slices("","", n) to iterate over all rows, I 
> sometimes don't get anything (depending on the node).
>
>
>
> I then reduced the problem to inserting just a single row.
>
> Specifically, the 'iteration' only seems to succeed when I issue the request 
> to the node that contains the first copy.
>
> I Discovered that when I iterate using a consistency level of Quorum/All the 
> iteration always succeeds and I properly get the one row.
>
>
>
> So a solution would be to always use consistency level One/All but that has a 
> performance penalty.
>
>
>
> Can anyone explain why iterating using get_range_slices("","",n) does not 
> always function with consistency level One on all nodes?
>
>
>
> Thanks,
>
> Eric
>
>
>
> P.S. To rule out any discussion on whether or not to use iteration in the 
> first place, we only plan to use it for backup and periodic cleanup cycles.


--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com


Re: iteration does not yield all data with consistency ONE

2010-11-10 Thread Jonathan Ellis
Was the node that should have the other replica of this row down when
it was inserted?

On Wed, Nov 10, 2010 at 6:08 AM, Eric van Orsouw
 wrote:
>
> Hello,
>
>
>
> We have a cluster of 4 nodes (0.6.6) and use the random partitioner and a 
> replication of 2.
>
> When I insert a number of rows I can always retrieve them by their explicit 
> id (get_range_slices(“”,””, 1).
>
> Playing with consistency levels and temporarily shutting down a Cassandra 
> node all yields the expected result.
>
>
>
> However when I use get_range_slices(“”,””, n) to iterate over all rows, I 
> sometimes don’t get anything (depending on the node).
>
>
>
> I then reduced the problem to inserting just a single row.
>
> Specifically, the ‘iteration’ only seems to succeed when I issue the request 
> to the node that contains the first copy.
>
> I Discovered that when I iterate using a consistency level of Quorum/All the 
> iteration always succeeds and I properly get the one row.
>
>
>
> So a solution would be to always use consistency level One/All but that has a 
> performance penalty.
>
>
>
> Can anyone explain why iterating using get_range_slices(“”,””,n) does not 
> always function with consistency level One on all nodes?
>
>
>
> Thanks,
>
> Eric
>
>
>
> P.S. To rule out any discussion on whether or not to use iteration in the 
> first place, we only plan to use it for backup and periodic cleanup cycles.


--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of Riptano, the source for professional Cassandra support
http://riptano.com