cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Shook <jsh...@gmail.com>
Subject Re: CRUD test
Date Fri, 23 Jul 2010 17:59:20 GMT
I suspect that it is still your timestamps.
You can verify this with a fake timestamp generator that is simply
incremented on each getTimestamp().

1 millisecond is a long time for code that is wrapped tightly in a
test. You are likely using the same logical time stamp for multiple
operations.


On Thu, Jul 22, 2010 at 6:29 PM, Peter Minearo
<Peter.Minearo@reardencommerce.com> wrote:
> I am able to reproduce his problem. If you take the default storage-conf.xml file and
utilize the "Super2" ColumnFamily with the code below.  You will see that the data is not
getting created once you run the delete.  It seems to not allow you to create data via Thrift.
 HOWEVER, data can be created via the command line tool.
>
> import java.io.UnsupportedEncodingException;
> import java.util.List;
>
> import org.apache.cassandra.thrift.Cassandra;
> import org.apache.cassandra.thrift.Column;
> import org.apache.cassandra.thrift.ColumnOrSuperColumn;
> import org.apache.cassandra.thrift.ColumnParent;
> import org.apache.cassandra.thrift.ColumnPath;
> import org.apache.cassandra.thrift.ConsistencyLevel;
> import org.apache.cassandra.thrift.InvalidRequestException;
> import org.apache.cassandra.thrift.NotFoundException;
> import org.apache.cassandra.thrift.SlicePredicate;
> import org.apache.cassandra.thrift.SliceRange;
> import org.apache.cassandra.thrift.SuperColumn;
> import org.apache.cassandra.thrift.TimedOutException;
> import org.apache.cassandra.thrift.UnavailableException;
> import org.apache.thrift.TException;
> import org.apache.thrift.protocol.TBinaryProtocol;
> import org.apache.thrift.protocol.TProtocol;
> import org.apache.thrift.transport.TSocket;
> import org.apache.thrift.transport.TTransport;
>
>
> public class CrudTest {
>
>
>        private static final String KEYSPACE = "Keyspace1";
>
>
>        public static void main(String[] args) {
>                CrudTest client = new CrudTest();
>
>                try {
>                        client.run();
>                } catch (Exception e) {
>                        e.printStackTrace();
>                }
>
>        }
>
>
>        public void run() throws TException, InvalidRequestException, UnavailableException,
UnsupportedEncodingException, NotFoundException, TimedOutException {
>                TTransport tr = new TSocket("localhost", 9160);
>                TProtocol proto = new TBinaryProtocol(tr);
>                Cassandra.Client client = new Cassandra.Client(proto);
>                tr.open();
>
>                System.out.println("******** CREATING DATA *********");
>                createData(client);
>                getData(client);
>                System.out.println();
>                System.out.println("******** DELETING DATA *********");
>                deleteData(client);
>                getData(client);
>                System.out.println();
>                System.out.println("******** CREATING DATA *********");
>                createData(client);
>                getData(client);
>
>                tr.close();
>          }
>
>
>        private void createData(Cassandra.Client client) throws InvalidRequestException,
UnavailableException, TimedOutException, TException {
>                ColumnPath cp1 = new ColumnPath("Super2");
>                cp1.setSuper_column("hotel".getBytes());
>                cp1.setColumn("Best Western".getBytes());
>
>
>                client.insert(KEYSPACE,
>                          "name",
>                          cp1,
>                          "Best Western of SF".getBytes(),
>                          System.currentTimeMillis(),
>                          ConsistencyLevel.ALL);
>
>                ColumnPath cp2 = new ColumnPath("Super2");
>                cp2.setSuper_column("hotel".getBytes());
>                cp2.setColumn("Econolodge".getBytes());
>
>                client.insert(KEYSPACE,
>                                  "name",
>                                  cp2,
>                                  "Econolodge of SF".getBytes(),
>                                  System.currentTimeMillis(),
>                                  ConsistencyLevel.ALL);
>
>        }
>
>
>        private void deleteData(Cassandra.Client client) throws InvalidRequestException,
UnavailableException, TimedOutException, TException {
>
>                client.remove(KEYSPACE,
>                                  "hotel",
>                                  new ColumnPath("Super2"),
>                                  System.currentTimeMillis(),
>                                  ConsistencyLevel.ONE);
>
>        }
>
>
>        private void getData(Cassandra.Client client) throws InvalidRequestException,
UnavailableException, TimedOutException, TException {
>                SliceRange sliceRange = new SliceRange();
>                sliceRange.setStart(new byte[] {});
>                sliceRange.setFinish(new byte[] {});
>
>                SlicePredicate slicePredicate = new SlicePredicate();
>                slicePredicate.setSlice_range(sliceRange);
>
>                getData(client, slicePredicate);
>        }
>
>
>        private void getData(Cassandra.Client client, SlicePredicate slicePredicate)
throws InvalidRequestException, UnavailableException, TimedOutException, TException {
>                List<ColumnOrSuperColumn> coscList = client.get_slice(KEYSPACE,
"hotel", new ColumnParent("Super2"), slicePredicate, ConsistencyLevel.ALL);
>
>                if (coscList.isEmpty()) {
>                        System.out.println("Column Or Super Column is EMPTY");
>                }
>
>                for (ColumnOrSuperColumn cosc: coscList) {
>
>                        if (cosc == null) {
>                                System.out.println("NULL RETURN VALUE");
>                        }
>
>                        SuperColumn superColumn = cosc.getSuper_column();
>
>                        if (superColumn == null) {
>                                System.out.println("Super Column is NULL");
>                        }
>                        else {
>                                showSuperColumnInfo(superColumn);
>                        }
>
>                }
>
>        }
>
>
>        private void showSuperColumnInfo(SuperColumn superColumn) {
>                System.out.println("######## Super Columns ###########");
>                System.out.println("Super Column Name = " + new String(superColumn.getName()));
>                List<Column> columnList = superColumn.getColumns();
>
>                System.out.println("--------- Start Columns -----------");
>                for (Column column: columnList) {
>                        System.out.println("Column Name = " + new String(column.getName()));
>                        System.out.println("Column Value = " + new String(column.getValue()));
>                }
>                System.out.println("--------- End Columns -----------");
>                System.out.println("##################################");
>        }
>
>
> }
>
>
>
>
> -----Original Message-----
> From: Oleg Tsvinev [mailto:oleg.tsvinev@gmail.com]
> Sent: Thu 7/22/2010 1:56 PM
> To: user@cassandra.apache.org
> Subject: Re: CRUD test
>
> Yes, and that was the issue. But now after I delete a row from
> cassandra-cli, I cannot insert anything back with my code. Insert code works
> does not throw any exceptions but when I read just inserted columns I get
> NotFoundException at the last line:
>
>            client = borrowClient();
>            Keyspace keyspace = client.getKeyspace(KEYSPACE,
> CONSISTENCY_LEVEL);
>            ColumnPath cp = new ColumnPath(application);
>            cp.setSuper_column(uuid.getBytes());
>            SuperColumn sc = keyspace.getSuperColumn(category, cp);
>
> It makes me think that once I remove supercolumn it cannot be created again.
>
>
> On Jul 22, 2010 1:13 AM, "Colin Vipurs" <zodiaczx6@gmail.com> wrote:
>
> Have you checked the timestamp you're using for the subsequent inserts
> is higher than that used in the delete?
>
>
> On Thu, Jul 22, 2010 at 2:29 AM, Oleg Tsvinev <oleg.tsvinev@gmail.com>
> wrote:
>> Hi there,
>> I'm try...
> --
> Maybe she awoke to see the roommate's boyfriend swinging from the
> chandelier wearing a boar's head.
>
> Something which you, I, and everyone else would call "Tuesday", of course.
>
>

Mime
View raw message