incubator-cassandra-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jonathan Ellis <jbel...@gmail.com>
Subject Re: batch_mutate silently failing in Cassandra
Date Tue, 07 Sep 2010 19:54:36 GMT
I would try to get a single hard-coded column to insert, before doing
something more complex.

You can also enable debug logging on the server and see if that
matches what you want the client to be doing.

On Tue, Sep 7, 2010 at 9:11 AM, Lucas Nodine <lucasnodine@gmail.com> wrote:
> Hello all,
>
> I have posted the following to Stackoverflow, but thought that I would also
> try the list.  If you have any suggestions, please let me know
>
> I am working with Cassandra 0.6.5 using the thrift interface. I am trying to
> use the batch_mutate method call, however, when I execute it, I receive no
> error message. This leads me to believe it worked. When I check using the
> CLI, there is nothing there. Is there something wrong with my code or format
> of the mutation_map that anyone can see? Any ideas?
>
> Thanks in advance,
>
> LN
>
> public void Update(string keyspace, Common.NetworkPackage.MetaAsset ma)
> {
>   Dictionary<string, Dictionary<string, List<Mutation>>> package;
>   Dictionary<string, List<Mutation>> packageEntry;
>   Dictionary<string, object>.Enumerator en;
>   List<Mutation> mutList;
>   Mutation mut;
>   DateTime now = DateTime.Now;
>
>   if(!ma.Fields.ContainsKey("$guid"))
>     throw new ArgumentException("The field $guid is not present");
>
>   mutList = new List<Mutation>();
>   en = ma.Fields.GetEnumerator();
>
>   while(en.MoveNext())
>   {
>     if (en.Current.Value == null)
>       continue;
>     mut = new Mutation();
>     mut.Column_or_supercolumn = new ColumnOrSuperColumn();
>     mut.Column_or_supercolumn.Column = new Column();
>     mut.Column_or_supercolumn.Column.Name = _utf8.GetBytes(en.Current.Key);
>
>     if (en.Current.Value == null)
>       mut.Column_or_supercolumn.Column.Value = null;
>     else
>       mut.Column_or_supercolumn.Column.Value = ToBytes(en.Current.Value);
>
>     mut.Column_or_supercolumn.Column.Timestamp = Utilities.Timestamp(now);
>
>     mutList.Add(mut);
>   }
>
>   packageEntry = new Dictionary<string, List<Mutation>>();
>   packageEntry.Add("MetaAsset", mutList);
>
>   package = new Dictionary<string, Dictionary<string, List<Mutation>>>();
>   package.Add((string)ma.Fields["$guid"], packageEntry);
>
>   Console.WriteLine(Utilities.ExportBulkMutate("LawOffice", package));
>
>   _client.batch_mutate(keyspace, package, ConsistencyLevel.QUORUM);
> }
>
> The above code produces (columns are name:value @ timestamp, value consists
> of a type:and a representation of the actual value):
>
> LawOffice : {
>  Row=08469fba50f448be8943614abd059d10 : {
>    CF=MetaAsset : {
>     $guid : String:08469fba50f448be8943614abd059d10 @ 93
>     $creator : String:Lucas @ 93
>     $previousversion : String:00000000000000000000000000000000 @ 93
>     $nextversion : String:00000000000000000000000000000000 @ 93
>     $etag : String:0 @ 93
>     $length : Int32:123456789 @ 93
>     $extension : String:.odt @ 93
>     $created : DateTime:90 @ 93
>     $modified : DateTime:90 @ 93
>     $lastaccess : DateTime:90 @ 93
>     $title : String:Title @ 93
>     $tags : List`1:tag1,tag2,tag3 @ 93
>    }
>  }
> }
>
>



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

Mime
View raw message