found the issue, was on the logic of the test sorry about crying wolf :-p
thanks for reading and all your help guys Nicolas Santini On Thu, Dec 16, 2010 at 3:55 PM, Nick Santini <nick.sant...@kaseya.com>wrote: > btw, inside the test the data row gets deleted, but not the secondary index > row/columns > > > Nicolas Santini > > > > On Thu, Dec 16, 2010 at 3:53 PM, Nick Santini <nick.sant...@kaseya.com>wrote: > >> ok, after a few tests and debugs ive found that is actually deleting those >> columns, so great >> >> but the problem is different than what I thought it was. Im running the >> test which does: >> - create and save a row (here I save the secondary indexes) >> - find the row by a secondary index >> - delete the row (here I update the secondary indexes deleting the >> corresponding columns) >> - find the row by the same index -> this shouldnt return my row >> >> but it does! >> >> so apparently the deletion is not getting there when I read again, even if >> I put the thread to sleep 10 seconds >> funny is that, after the test finished, I try to get that row manually but >> all the deletes have gone through, even the secondary index ones >> >> >> >> Nicolas Santini >> >> >> On Thu, Dec 16, 2010 at 3:11 PM, Aaron Morton <aa...@thelastpickle.com>wrote: >> >>> Nick, >>> The docs for the DateTime in .net say it's resolution is only 10ms. You >>> should try to find a higher resolution time source to >>> avoid accidentally sending multiple mutations (including deletions) with the >>> same time stamp. I'm not sure it's the cause of this problem, but it can >>> result in cases where a delete is not applied because there is an insert >>> with the same timestamp. >>> >>> In python I use the seconds since epoch with 6 decimal places shifted >>> left. >>> >>> Also, turn up the cassanfra logging level to DEBUG and make sure you are >>> sending what you think you are. Chances are you are sending the wrong data >>> in the request. >>> >>> Let me know how you get on. >>> Aaron >>> >>> On 16 Dec, 2010,at 02:11 PM, Nick Santini <nick.sant...@kaseya.com> >>> wrote: >>> >>> Im using thrift directly on C# >>> the code that is trying to delete all the columns referencing the row im >>> deleting on the secondary index rows looks like this >>> >>> Mutation mutation = new Mutation(); >>> mutation.Deletion = new Deletion(); >>> mutation.Deletion.Timestamp = DateTime.Now.ToBinary(); >>> >>> List<byte[]> predicate = new List<byte[]>(); >>> predicate.Add(utf8.GetBytes(columnName)); >>> >>> mutation.Deletion.Predicate = new SlicePredicate() >>> { >>> Column_names = predicate >>> }; >>> >>> mutations.Add(mutation); >>> >>> entry = new Dictionary<string, List<Mutation>>(); >>> entry.Add(cfName, mutations); >>> >>> mutation_map.Add(utf8EncodingInstance.GetBytes(secIndexKey), entry); >>> >>> CassandraClient.batch_mutate(mutation_map, ConsistencyLevel.ONE); >>> >>> >>> now, the code where I inserted the references is exactly the same, but >>> without the deletion part in the mutations >>> >>> >>> Nicolas Santini >>> >>> >>> On Thu, Dec 16, 2010 at 12:55 PM, Tyler Hobbs <ty...@riptano.com> wrote: >>> >>>> What client are you using? If you're not using a client, what does your >>>> deletion code look like? >>>> >>>> - Tyler >>>> >>>> >>>> >>>> On Wed, Dec 15, 2010 at 4:58 PM, Nick Santini >>>> <nick.sant...@kaseya.com>wrote: >>>> >>>>> thats not exactly what im seeing, is not a row, but columns on a row >>>>> that i was deleting >>>>> >>>>> ie: >>>>> suppose i have a row where the key is sec_index_1 where i have two >>>>> columns with information about other row keys >>>>> sec_index_1 { key1:key1, key2:key2 } >>>>> >>>>> then i add a deletion for the column named key2, run it through batch >>>>> mutate for the key sec_index_1 >>>>> >>>>> then i load the row again to see all my "references" stored in columns, >>>>> and im still getting >>>>> key1, key2 >>>>> >>>>> Nicolas Santini >>>>> >>>>> >>>>> >>>>> On Thu, Dec 16, 2010 at 11:52 AM, Tyler Hobbs <ty...@riptano.com>wrote: >>>>> >>>>>> There's no problem doing deletions with batch_mutate, but you are >>>>>> probably seeing this: >>>>>> >>>>>> http://wiki.apache.org/cassandra/FAQ#range_ghosts >>>>>> >>>>>> - Tyler >>>>>> >>>>>> >>>>>> >>>>>> On Wed, Dec 15, 2010 at 4:26 PM, Nick Santini < >>>>>> nick.sant...@kaseya.com> wrote: >>>>>> >>>>>>> since the 0.7beta2 version doesnt support indexes for Super CF or for >>>>>>> columns that you might not now the name yet, im supporting them >>>>>>> manually by >>>>>>> adding a row on the same CF where the key is the name of the column >>>>>>> plus the >>>>>>> value, and in the columns hold the key to the referenced rows >>>>>>> >>>>>>> this works as in i can actually find my rows using the secondary >>>>>>> index rows >>>>>>> >>>>>>> but when i try to delete the original row i want to update my >>>>>>> secondary indexs, so i create a mutation map in the same way i did it >>>>>>> when i >>>>>>> saved my information, but this time it only contains deletions for those >>>>>>> secondary indexs rows and only for the column referencing to the row >>>>>>> being >>>>>>> deleted. >>>>>>> but this doesnt seem to work, it comes back successfully (no erros), >>>>>>> but im still able to find the references to the deleted row in those >>>>>>> secondary indexes >>>>>>> >>>>>>> is there any issue trying to run a batch_mutate with only deletions? >>>>>>> >>>>>>> thanks >>>>>>> >>>>>>> Nicolas Santini >>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> >