Bucket creation.

Kevin Burton rkevinburton at charter.net
Tue Feb 5 18:30:05 EST 2013


I still have a question. Based on your input I modified the code slightly as
follows:

 

            RiakBucketProperties bucketProperties = new
RiakBucketProperties();

            bucketProperties.SetNVal(4);

            bucketProperties.SetSearch(true);

            bucketProperties.SetAllowMultiple(true);

            bucketProperties.SetWVal("all");

            bucketProperties.SetRVal("quorum");

            if (!client.SetBucketProperties("buyseasons/products",
bucketProperties).IsSuccess)

            {

                Console.WriteLine("Setting bucket properties failed");

            }

            RiakResult<RiakBucketProperties> riakBuckpropertiesResult =
client.GetBucketProperties("buyseasons/products", true);

 

But I get a NullReferenceException

 

  at CorrugatedIron.Models.RiakBucketProperties.ReadQuorum(JObject props,
String key, Action`1 setter)

   at CorrugatedIron.Models.RiakBucketProperties..ctor(RiakRestResponse
response)

   at CorrugatedIron.RiakClient.GetBucketProperties(String bucket, Boolean
extended)

. . . . .

 

So the bucket should have been created when I set the properties. But then I
tried to read the properties back and I get the exception.

 

From: Alexander Sicular [mailto:siculars at gmail.com] 
Sent: Tuesday, February 05, 2013 5:17 PM
To: Kevin Burton
Cc: riak-users
Subject: Re: Bucket creation.

 

"buckets" are a virtual concept. you dont need to "create" them. just write
a key to any bucket. also by modifying the default bucket parameters, by
adding the search hook on a bucket, let's say, you are also "creating" the
bucket.

 

-alexander

 

On Tue, Feb 5, 2013 at 6:09 PM, Kevin Burton <rkevinburton at charter.net>
wrote:

 

I have filed to find code that would create a bucket. It must be in the past
I have just put objects into a bucket and Riak must construct the bucket if
it does not exist. Now I would like to create the bucket and set some
properties on that bucket. But I don't know how to create the bucket.

 

So I have code like:

 

                            BuildProduct(source, destination);

                            RiakObject value = new RiakObject("products",
keySku, JsonConvert.SerializeObject(destination))

                                {

                                    ContentType = "application/json"

                                };

 

                            RiakResult<RiakObject> response =
client.Put(value, new RiakPutOptions { W = 2 });

 

But I would like to create the bucket and set properties on the bucket
before I put things into the bucket. Like:

 

            RiakResult<RiakBucketProperties> riakBuckpropertiesResult =
client.GetBucketProperties("products", true);

            if (riakBuckpropertiesResult.IsSuccess)

            {

                riakBuckpropertiesResult.Value

                                        .SetNVal(4)

                                        .SetAllowMultiple(true)

                                        .SetWVal("all")

                                        .SetRVal("quorum");

                client.SetBucketProperties("products",
riakBuckpropertiesResult.Value);

            }

 

The problem is that the properties that I want to set are for a bucket that
doesn't exist yet so the "get" fails.


_______________________________________________
riak-users mailing list
riak-users at lists.basho.com
http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com

 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.basho.com/pipermail/riak-users_lists.basho.com/attachments/20130205/5dd7e319/attachment.html>


More information about the riak-users mailing list