cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] Commented: (CASSANDRA-1183) Column insert via batch_mutate under some conditions sometimes fails to add the column
Date Tue, 15 Jun 2010 15:33:25 GMT

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

Jonathan Ellis commented on CASSANDRA-1183:
-------------------------------------------

batch_mutate and insert both call the same StorageProxy method internally.  so either internal
RowMutation construction is failing intermittenly and silently for batch_mutate but not for
insert (unlikely, there are no race possibilities there), or it really is a timing issue.

you could test the timing easily by explicitly giving a timestamp to the delete, and adding
an assert that the the batch_mutate timestamp on the next loop iteration is larger.

> Column insert via batch_mutate under some conditions sometimes fails to add the column
> --------------------------------------------------------------------------------------
>
>                 Key: CASSANDRA-1183
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1183
>             Project: Cassandra
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 0.6.1, 0.6.2
>         Environment: OS (via uname -a):  Linux 2.6.27.5-117.fc10.x86_64 #1 SMP Tue Nov
18 11:58:53 EST 2008 x86_64 x86_64 x86_64 GNU/Linux
> Java build 1.6.0_20-b02
> Cassandra 0.6.2 & 0.6.1
> hector-0.6.0-14.jar
>            Reporter: Scott McCarty
>            Assignee: Brandon Williams
>         Attachments: BatchMutateBug.java
>
>
> Under heavy load batch_mutate sometimes fails to add a column but doesn't report an error
to the client.  Details:
> * client is running a tight loop that does:  write to randomly named column; do a get_slice
that should return that newly created column; delete the column if it was returned in get_slice
> * the mutation map for batch_insert has exactly one mutation in it:  insert the column
> * if the column insert is done with the insert() API it doesn't ever fail (for as long
as I've run it)
> * the column really isn't inserted as doing a 'get' on the entire rowkey in the command
line interface doesn't show it, so it's not a timing issue
> * read consistency level is ONE, write consistency level is ALL
> * it fails on a single node cluster and on a 4 node cluster (replication factor = 3)
> I am attaching a Java cmdline program that demonstrates the problem; it uses the 'hector'
java client (I hope that's okay--I verified that no errors or warning were being masked by
hector). 
> To show the failure using the program, just run it with the command line:
>   bash>   java BatchMutateBug localhost:9160 true keyspace columnfamily rowkey
> substituting in the appropriate Cassandra server connection info, a valid keyspace name,
and a valid column family name.  The second parameter ("true" in the example) tells the program
to use batch_mutate().  If you pass in "false" it will use insert() and the program won't
fail.
> I've tried the above on two different setups and each one fails within 10-15 seconds
generally.  It seems to fail quickest if you use a non-existing rowkey.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message