Re: Did CASSANDRA-647 get fixed in 0.5?

2010-02-02 Thread Omer van der Horst Jansen
Here it is: https://issues.apache.org/jira/browse/CASSANDRA-752




From: Jonathan Ellis jbel...@gmail.com
To: cassandra-user@incubator.apache.org
Sent: Mon, February 1, 2010 5:22:13 PM
Subject: Re: Did CASSANDRA-647 get fixed in 0.5?

Can you create a ticket for this?

Thanks!

On Mon, Feb 1, 2010 at 4:11 PM, Omer van der Horst Jansen
ome...@yahoo.com wrote:
 I checked out the 0.5 branch and ran ant release (on my linux box).
 Installed the new tar.gz and ran the test on my Windows laptop as before but
 got the same result -- the key isn't deleted from the perspective of
 get_range_slice.

 Omer

 
 From: Jonathan Ellis jbel...@gmail.com
 To: cassandra-user@incubator.apache.org
 Sent: Mon, February 1, 2010 4:52:17 PM
 Subject: Re: Did CASSANDRA-647 get fixed in 0.5?

 647 was committed for 0.5, yes, but CASSANDRA-703 was not.  Can you
 try the 0.5 branch and see if it is fixed there?

 On Mon, Feb 1, 2010 at 3:26 PM, Omer van der Horst Jansen
 ome...@yahoo.com wrote:
 I'm running
 into an issue with Cassandra 0.5 (the current release version) that
 sounds exactly like the description of issue CASSANDRA-647.

 I'm
 using the Thrift Java API to store a couple of columns in a single row. A
 few seconds after that my application deletes the entire row. A plain
 Cassandra.Client.get() will then throw a NotFoundException for that
 particular key, as expected. However, the key will still show up when
 executing a
 Cassandra.Client.get_range_slice query.

 Here is some quick and
 dirty Java code that demonstrates the problem:

 import
 java.util.List;

 import org.apache.cassandra.service.*;
 import
 org.apache.thrift.protocol.*;
 import org.apache.thrift.transport.*;

 public class Cassandra647TestApp
 {
/**
 * Demonstrates
 CASSANDRA-647 presence in Cassandra 0.5 release.
 * Requires an
 unmodified Cassandra configuration except that an
 *
 OrderPreservingPartitioner should be used.
 */
public
 static void main(String[] args) throws Exception
{

 String keyspace = Keyspace1;
String cf = Standard1;
String key = testrow1;
byte[] columnName =
 colname.getBytes();
byte[] data = testdata.getBytes();

TTransport transport = new TSocket(localhost, 9160);
TProtocol protocol = new TBinaryProtocol(transport);

 Cassandra.Client client = new Cassandra.Client(protocol);

 transport.open();
ColumnPath path = new ColumnPath(cf, null,
 columnName);

client.insert(keyspace, key, path, data,
 System.currentTimeMillis(),
ConsistencyLevel.ONE);

Thread.sleep(1000);

ColumnPath rowpath = new
 ColumnPath(cf, null, null);

client.remove(keyspace, key,
 rowpath, System.currentTimeMillis(),

 ConsistencyLevel.ONE);
Thread.sleep(1000);

try
{
ColumnOrSuperColumn cosc = client.get(keyspace,
 key, path,
ConsistencyLevel.ONE);

 System.out.println(Whoops! NotFoundException not thrown!);
}
catch (NotFoundException e)
{

 System.out.println(OK, we got a NotFoundException);
}

ColumnParent parent = new ColumnParent(cf, null);

 SlicePredicate predicate = new SlicePredicate();
SliceRange
 range = new SliceRange();
range.start = new byte[0];
range.finish = new byte[0];
predicate.slice_range = range;

ListKeySlice sliceList = client.get_range_slice(keyspace, parent,
predicate, , , 1000,
 ConsistencyLevel.ONE);

for (KeySlice k : sliceList)
{
System.out.println(Found key  + k.key);
if (key.equals(k.key))
{

 System.out.println(but key  + k.key
+ 
 should have been removed);
}
}
}
 }

 Am I using the API correctly in the code above?

 -Omer van der Horst Jansen










  

Did CASSANDRA-647 get fixed in 0.5?

2010-02-01 Thread Omer van der Horst Jansen
I'm running 
into an issue with Cassandra 0.5 (the current release version) that 
sounds exactly like the description of issue CASSANDRA-647.

I'm 
using the Thrift Java API to store a couple of columns in a single row. A few 
seconds after that my application deletes the entire row. A plain 
Cassandra.Client.get() will then throw a NotFoundException for that 
particular key, as expected. However, the key will still show up when executing 
a 
Cassandra.Client.get_range_slice query.

Here is some quick and 
dirty Java code that demonstrates the problem:

import 
java.util.List;

import org.apache.cassandra.service.*;
import 
org.apache.thrift.protocol.*;
import org.apache.thrift.transport.*;

public class Cassandra647TestApp
{
/**
 * Demonstrates 
CASSANDRA-647 presence in Cassandra 0.5 release.
 * Requires an 
unmodified Cassandra configuration except that an 
 * 
OrderPreservingPartitioner should be used.
 */
public 
static void main(String[] args) throws Exception
{

String keyspace = Keyspace1;
String cf = Standard1;
String key = testrow1;
byte[] columnName = 
colname.getBytes();
byte[] data = testdata.getBytes();

TTransport transport = new TSocket(localhost, 9160);
TProtocol protocol = new TBinaryProtocol(transport);

Cassandra.Client client = new Cassandra.Client(protocol);

transport.open();
ColumnPath path = new ColumnPath(cf, null, 
columnName);

client.insert(keyspace, key, path, data, 
System.currentTimeMillis(),
ConsistencyLevel.ONE);

Thread.sleep(1000);

ColumnPath rowpath = new 
ColumnPath(cf, null, null);

client.remove(keyspace, key, 
rowpath, System.currentTimeMillis(),

ConsistencyLevel.ONE);
Thread.sleep(1000);

try
{
ColumnOrSuperColumn cosc = client.get(keyspace, 
key, path,
ConsistencyLevel.ONE);

System.out.println(Whoops! NotFoundException not thrown!);
}
catch (NotFoundException e)
{

System.out.println(OK, we got a NotFoundException);
}

ColumnParent parent = new ColumnParent(cf, null);

SlicePredicate predicate = new SlicePredicate();
SliceRange 
range = new SliceRange();
range.start = new byte[0];
range.finish = new byte[0];
predicate.slice_range = range;

ListKeySlice sliceList = client.get_range_slice(keyspace, parent,
predicate, , , 1000, 
ConsistencyLevel.ONE);

for (KeySlice k : sliceList)
{
System.out.println(Found key  + k.key);
if (key.equals(k.key))
{

System.out.println(but key  + k.key
+  
should have been removed);
}
}
}
}

Am I using the API correctly in the code above?

-Omer van der Horst Jansen



  


Re: Did CASSANDRA-647 get fixed in 0.5?

2010-02-01 Thread Jonathan Ellis
647 was committed for 0.5, yes, but CASSANDRA-703 was not.  Can you
try the 0.5 branch and see if it is fixed there?

On Mon, Feb 1, 2010 at 3:26 PM, Omer van der Horst Jansen
ome...@yahoo.com wrote:
 I'm running
 into an issue with Cassandra 0.5 (the current release version) that
 sounds exactly like the description of issue CASSANDRA-647.

 I'm
 using the Thrift Java API to store a couple of columns in a single row. A few 
 seconds after that my application deletes the entire row. A plain
 Cassandra.Client.get() will then throw a NotFoundException for that
 particular key, as expected. However, the key will still show up when 
 executing a
 Cassandra.Client.get_range_slice query.

 Here is some quick and
 dirty Java code that demonstrates the problem:

 import
 java.util.List;

 import org.apache.cassandra.service.*;
 import
 org.apache.thrift.protocol.*;
 import org.apache.thrift.transport.*;

 public class Cassandra647TestApp
 {
    /**
     * Demonstrates
 CASSANDRA-647 presence in Cassandra 0.5 release.
     * Requires an
 unmodified Cassandra configuration except that an
     *
 OrderPreservingPartitioner should be used.
     */
    public
 static void main(String[] args) throws Exception
    {

 String keyspace = Keyspace1;
        String cf = Standard1;
        String key = testrow1;
        byte[] columnName =
 colname.getBytes();
        byte[] data = testdata.getBytes();

        TTransport transport = new TSocket(localhost, 9160);
        TProtocol protocol = new TBinaryProtocol(transport);

 Cassandra.Client client = new Cassandra.Client(protocol);

 transport.open();
        ColumnPath path = new ColumnPath(cf, null,
 columnName);

        client.insert(keyspace, key, path, data,
 System.currentTimeMillis(),
                ConsistencyLevel.ONE);

        Thread.sleep(1000);

        ColumnPath rowpath = new
 ColumnPath(cf, null, null);

        client.remove(keyspace, key,
 rowpath, System.currentTimeMillis(),

 ConsistencyLevel.ONE);
        Thread.sleep(1000);

        try
        {
            ColumnOrSuperColumn cosc = client.get(keyspace,
 key, path,
                    ConsistencyLevel.ONE);

 System.out.println(Whoops! NotFoundException not thrown!);
        }
        catch (NotFoundException e)
        {

 System.out.println(OK, we got a NotFoundException);
        }

        ColumnParent parent = new ColumnParent(cf, null);

 SlicePredicate predicate = new SlicePredicate();
        SliceRange
 range = new SliceRange();
        range.start = new byte[0];
        range.finish = new byte[0];
        predicate.slice_range = range;

        ListKeySlice sliceList = client.get_range_slice(keyspace, parent,
                predicate, , , 1000,
 ConsistencyLevel.ONE);

        for (KeySlice k : sliceList)
        {
            System.out.println(Found key  + k.key);
            if (key.equals(k.key))
            {

 System.out.println(but key  + k.key
                        + 
 should have been removed);
            }
        }
    }
 }

 Am I using the API correctly in the code above?

 -Omer van der Horst Jansen







Re: Did CASSANDRA-647 get fixed in 0.5?

2010-02-01 Thread Omer van der Horst Jansen
I checked out the 0.5 branch and ran ant release (on my linux box). Installed 
the new tar.gz and ran the test on my Windows laptop as before but got the same 
result -- the key isn't deleted from the perspective of get_range_slice. 

Omer





From: Jonathan Ellis jbel...@gmail.com
To: cassandra-user@incubator.apache.org
Sent: Mon, February 1, 2010 4:52:17 PM
Subject: Re: Did CASSANDRA-647 get fixed in 0.5?

647 was committed for 0.5, yes, but CASSANDRA-703 was not.  Can you
try the 0.5 branch and see if it is fixed there?

On Mon, Feb 1, 2010 at 3:26 PM, Omer van der Horst Jansen
ome...@yahoo.com wrote:
 I'm running
 into an issue with Cassandra 0.5 (the current release version) that
 sounds exactly like the description of issue CASSANDRA-647.

 I'm
 using the Thrift Java API to store a couple of columns in a single row. A few 
 seconds after that my application deletes the entire row. A plain
 Cassandra.Client.get() will then throw a NotFoundException for that
 particular key, as expected. However, the key will still show up when 
 executing a
 Cassandra.Client.get_range_slice query.

 Here is some quick and
 dirty Java code that demonstrates the problem:

 import
 java.util.List;

 import org.apache.cassandra.service.*;
 import
 org.apache.thrift.protocol.*;
 import org.apache.thrift.transport.*;

 public class Cassandra647TestApp
 {
/**
 * Demonstrates
 CASSANDRA-647 presence in Cassandra 0.5 release.
 * Requires an
 unmodified Cassandra configuration except that an
 *
 OrderPreservingPartitioner should be used.
 */
public
 static void main(String[] args) throws Exception
{

 String keyspace = Keyspace1;
String cf = Standard1;
String key = testrow1;
byte[] columnName =
 colname.getBytes();
byte[] data = testdata.getBytes();

TTransport transport = new TSocket(localhost, 9160);
TProtocol protocol = new TBinaryProtocol(transport);

 Cassandra.Client client = new Cassandra.Client(protocol);

 transport.open();
ColumnPath path = new ColumnPath(cf, null,
 columnName);

client.insert(keyspace, key, path, data,
 System.currentTimeMillis(),
ConsistencyLevel.ONE);

Thread.sleep(1000);

ColumnPath rowpath = new
 ColumnPath(cf, null, null);

client.remove(keyspace, key,
 rowpath, System.currentTimeMillis(),

 ConsistencyLevel.ONE);
Thread.sleep(1000);

try
{
ColumnOrSuperColumn cosc = client.get(keyspace,
 key, path,
ConsistencyLevel.ONE);

 System.out.println(Whoops! NotFoundException not thrown!);
}
catch (NotFoundException e)
{

 System.out.println(OK, we got a NotFoundException);
}

ColumnParent parent = new ColumnParent(cf, null);

 SlicePredicate predicate = new SlicePredicate();
SliceRange
 range = new SliceRange();
range.start = new byte[0];
range.finish = new byte[0];
predicate.slice_range = range;

ListKeySlice sliceList = client.get_range_slice(keyspace, parent,
predicate, , , 1000,
 ConsistencyLevel.ONE);

for (KeySlice k : sliceList)
{
System.out.println(Found key  + k.key);
if (key.equals(k.key))
{

 System.out.println(but key  + k.key
+ 
 should have been removed);
}
}
}
 }

 Am I using the API correctly in the code above?

 -Omer van der Horst Jansen








  

Re: Did CASSANDRA-647 get fixed in 0.5?

2010-02-01 Thread Jonathan Ellis
Can you create a ticket for this?

Thanks!

On Mon, Feb 1, 2010 at 4:11 PM, Omer van der Horst Jansen
ome...@yahoo.com wrote:
 I checked out the 0.5 branch and ran ant release (on my linux box).
 Installed the new tar.gz and ran the test on my Windows laptop as before but
 got the same result -- the key isn't deleted from the perspective of
 get_range_slice.

 Omer

 
 From: Jonathan Ellis jbel...@gmail.com
 To: cassandra-user@incubator.apache.org
 Sent: Mon, February 1, 2010 4:52:17 PM
 Subject: Re: Did CASSANDRA-647 get fixed in 0.5?

 647 was committed for 0.5, yes, but CASSANDRA-703 was not.  Can you
 try the 0.5 branch and see if it is fixed there?

 On Mon, Feb 1, 2010 at 3:26 PM, Omer van der Horst Jansen
 ome...@yahoo.com wrote:
 I'm running
 into an issue with Cassandra 0.5 (the current release version) that
 sounds exactly like the description of issue CASSANDRA-647.

 I'm
 using the Thrift Java API to store a couple of columns in a single row. A
 few seconds after that my application deletes the entire row. A plain
 Cassandra.Client.get() will then throw a NotFoundException for that
 particular key, as expected. However, the key will still show up when
 executing a
 Cassandra.Client.get_range_slice query.

 Here is some quick and
 dirty Java code that demonstrates the problem:

 import
 java.util.List;

 import org.apache.cassandra.service.*;
 import
 org.apache.thrift.protocol.*;
 import org.apache.thrift.transport.*;

 public class Cassandra647TestApp
 {
    /**
     * Demonstrates
 CASSANDRA-647 presence in Cassandra 0.5 release.
     * Requires an
 unmodified Cassandra configuration except that an
     *
 OrderPreservingPartitioner should be used.
     */
    public
 static void main(String[] args) throws Exception
    {

 String keyspace = Keyspace1;
        String cf = Standard1;
        String key = testrow1;
        byte[] columnName =
 colname.getBytes();
        byte[] data = testdata.getBytes();

        TTransport transport = new TSocket(localhost, 9160);
        TProtocol protocol = new TBinaryProtocol(transport);

 Cassandra.Client client = new Cassandra.Client(protocol);

 transport.open();
        ColumnPath path = new ColumnPath(cf, null,
 columnName);

        client.insert(keyspace, key, path, data,
 System.currentTimeMillis(),
                ConsistencyLevel.ONE);

        Thread.sleep(1000);

        ColumnPath rowpath = new
 ColumnPath(cf, null, null);

        client.remove(keyspace, key,
 rowpath, System.currentTimeMillis(),

 ConsistencyLevel.ONE);
        Thread.sleep(1000);

        try
        {
            ColumnOrSuperColumn cosc = client.get(keyspace,
 key, path,
                    ConsistencyLevel.ONE);

 System.out.println(Whoops! NotFoundException not thrown!);
        }
        catch (NotFoundException e)
        {

 System.out.println(OK, we got a NotFoundException);
        }

        ColumnParent parent = new ColumnParent(cf, null);

 SlicePredicate predicate = new SlicePredicate();
        SliceRange
 range = new SliceRange();
        range.start = new byte[0];
        range.finish = new byte[0];
        predicate.slice_range = range;

        ListKeySlice sliceList = client.get_range_slice(keyspace, parent,
                predicate, , , 1000,
 ConsistencyLevel.ONE);

        for (KeySlice k : sliceList)
        {
            System.out.println(Found key  + k.key);
            if (key.equals(k.key))
            {

 System.out.println(but key  + k.key
                        + 
 should have been removed);
            }
        }
    }
 }

 Am I using the API correctly in the code above?

 -Omer van der Horst Jansen