Achieving 100% consitency

Ian Plosker ian at basho.com
Sat Aug 27 11:39:55 EDT 2011


Lukas,

Yes, even for dev you'd be best advised to develop and test your application with the same or similar number of nodes and n, r, and w settings as you would in production. It's good practice to develop applications in a dev/test environment that mirrors the production environment as much as is reasonable/feasible. You can run a single node cluster, but note that this isn't a configuration you'll see in a production.

Ian Plosker
Developer Advocate
Basho Technologies



On Aug 27, 2011, at 5:33 AM, Jonathan Langevin wrote:

> Even for development-purposes only? Otherwise it seems data would be written n times to the same machine, which is needless in a dev environment with low storage specs...
> 
> 
> Jonathan Langevin
> Systems Administrator
> Loom Inc.
> Wilmington, NC: (910) 241-0433 - jlangevin at loomlearning.com - www.loomlearning.com - Skype: intel352
> 
> 
> 
> On Fri, Aug 26, 2011 at 5:01 PM, Ian Plosker <ian at basho.com> wrote:
> Lukas,
> 
> Also, we don't advise that you run single node clusters. Riak is designed to be used in clusters of at least 3 nodes. You can run a multi-node cluster on a single development machine by downloading the Riak source, and running "make devrel". Take a look at the Riak Fast Track (http://wiki.basho.com/The-Riak-Fast-Track.html) for more details.
> 
> Ian Plosker
> Developer Advocate
> Basho Technologies
> 
> On Aug 26, 2011, at 3:17 PM, Lukas Schulze wrote:
> 
>> I'm doing some simple tests with Riak and tried to build something like an index.
>> Therefore I created new buckets for some attributes like "name", "street" and "city".
>> One entry in the index-bucket "name" is for example "Mueller" and the value contains all user ids, formatted as an JSON string: "{id:[1,5,8,13,2,7]}"
>> The java objects are saved as JSON strings in a separate bucket "users", the keys in this bucket are the user-ids, the values are the JSON strings.
>> 
>> If I add 200 users via Java and the RiakPBC client every loop I fetch the index, add the new user id and store it again in Riak.
>> But java is too fast, so I receive an old version of the bucket.
>> 
>> Because I've only one node I set the n-value to 1, r = 1, w = 1 and dw = 1.
>> But I have to wait nearly 2 seconds to be mostly sure to get the correct response. (the computer isn't an high-end machine ;-) )
>> 
>> Is it possible to be sure that the data will be saved permanently and I can continue adding users?
>> Are there any caching methods I can configure?
>> Can I set the default n-value to 1 so that every newly created bucket will have this value?
>> Does Riak have any kind of indexes or is it possible to implement it a better way?
>> 
>> In my first version I saved all users in one bucket and iterated over all of them to find the correct one. But for every single request from the Java Service to Riak it took nearly 200ms. For a huge amount of entries (10,000) this isn't practible. Therefore I tried to implement my own indexes.
>> 
>> The main focus of my question is getting rid of the inconsistent reads.
>> 
>> Thank you.
>> 
>> Best Regards
>> Lukas
>> _______________________________________________
>> riak-users mailing list
>> riak-users at lists.basho.com
>> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
> 
> 
> _______________________________________________
> 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/20110827/d73b81cd/attachment.html>


More information about the riak-users mailing list