...and fixed! You can get this right now if you're adventurous and want to build CorrugatedIron from source by grabbing the develop branch [1]. We have several other issues to clean up and verify before we release CI 1.1.1 in the next day or so. Or you can download it from [2] if you don't want to build yourself and don't want to wait for NuGet. Once we put 1.1.1 to NuGet we'll respond to this thread or email you directly.
I make no guarantees that the new DLL won't eat your hard drive or turn your computer into a killer robot. [1]: https://github.com/DistributedNonsense/CorrugatedIron/tree/develop [2]: http://clientresources.brentozar.com.s3.amazonaws.com/CorrugatedIron-111-alpha.zip --- Jeremiah Peschka - Founder, Brent Ozar Unlimited MCITP: SQL Server 2008, MVP Cloudera Certified Developer for Apache Hadoop On Tue, Feb 12, 2013 at 11:13 AM, Jeremiah Peschka < [email protected]> wrote: > Good news! You've found a bug in CorrugatedIron. Because of index naming, > we muck index names to have a suffix of _bin or _int, depending on the > index type. This shouldn't be happening on $key, but it is. I'll create a > github issue and get that taken care of. > > --- > Jeremiah Peschka - Founder, Brent Ozar Unlimited > MCITP: SQL Server 2008, MVP > Cloudera Certified Developer for Apache Hadoop > > > On Tue, Feb 12, 2013 at 7:56 AM, Kevin Burton <[email protected]>wrote: > >> I forgot to mention that when I execute this code I get the error:**** >> >> ** ** >> >> {not_found,**** >> >> {<<"products">>,**** >> >> <<"$keys">>},**** >> >> undefined}}}:[{mochijson2,**** >> >> json_encode,2,*** >> * >> >> [{file,**** >> >> >> "src/mochijson2.erl"},**** >> >> {line,149}]},*** >> * >> >> {mochijson2,**** >> >> >> '-json_encode_array/2-fun-0-',**** >> >> 3,**** >> >> [{file,**** >> >> >> "src/mochijson2.erl"},**** >> >> {line,157}]},**** >> >> {lists,foldl,3,*** >> * >> >> >> [{file,"lists.erl"},**** >> >> {line,1197}]},** >> ** >> >> {mochijson2,**** >> >> >> json_encode_array,2,**** >> >> [{file,**** >> >> >> "src/mochijson2.erl"},**** >> >> {line,159}]},*** >> * >> >> {riak_kv_pb_mapred, >> **** >> >> process_stream,3, >> **** >> >> [{file,**** >> >> >> "src/riak_kv_pb_mapred.erl"},**** >> >> {line,97}]},**** >> >> >> {riak_api_pb_server, >> **** >> >> process_stream,5, >> **** >> >> [{file,**** >> >> >> "src/riak_api_pb_server.erl"},**** >> >> {line,227}]},*** >> * >> >> >> {riak_api_pb_server,**** >> >> handle_info,2,*** >> * >> >> [{file,**** >> >> >> "src/riak_api_pb_server.erl"},**** >> >> {line,158}]},*** >> * >> >> {gen_server,**** >> >> handle_msg,5,**** >> >> [{file,**** >> >> >> "gen_server.erl"},**** >> >> {line,607}]}] - >> CommunicationError**** >> >> ** ** >> >> ** ** >> >> *From:* riak-users [mailto:[email protected]] *On >> Behalf Of *Kevin Burton >> *Sent:* Tuesday, February 12, 2013 9:48 AM >> *To:* 'Jeremiah Peschka' >> *Cc:* 'riak-users' >> *Subject:* RE: ListKeys or MapReduce**** >> >> ** ** >> >> The name is “$keys”? Something like:**** >> >> ** ** >> >> using (IRiakEndPoint cluster = RiakCluster.FromConfig( >> "riakConfig"))**** >> >> {**** >> >> IRiakClient riakClient = cluster.CreateClient();**** >> >> RiakBucketKeyInput bucketKeyInput = new >> RiakBucketKeyInput();**** >> >> bucketKeyInput.AddBucketKey(productBucketName, "$keys");* >> *** >> >> RiakMapReduceQuery query = new RiakMapReduceQuery()**** >> >> .Inputs(bucketKeyInput)**** >> >> .MapJs(m => m.Name("Riak.mapValuesJson").Keep(true));* >> *** >> >> RiakResult<RiakMapReduceResult> result = >> riakClient.MapReduce(query);**** >> >> if (result.IsSuccess)**** >> >> {**** >> >> ** ** >> >> ** ** >> >> *From:* Jeremiah Peschka >> [mailto:[email protected]<[email protected]>] >> >> *Sent:* Tuesday, February 12, 2013 9:18 AM >> *To:* Kevin Burton >> *Cc:* riak-users >> *Subject:* Re: ListKeys or MapReduce**** >> >> ** ** >> >> It would be queried like any other index as an MR input. I'll create an >> issue and will try to get this in some time in the next few days - no >> promises, though.**** >> >> >> **** >> >> ---**** >> >> Jeremiah Peschka - Founder, Brent Ozar Unlimited**** >> >> MCITP: SQL Server 2008, MVP**** >> >> Cloudera Certified Developer for Apache Hadoop**** >> >> ** ** >> >> On Tue, Feb 12, 2013 at 7:09 AM, Kevin Burton <[email protected]> >> wrote:**** >> >> I will read the other URLs that you mentioned. Thank you.**** >> >> **** >> >> Would you mind giving a short example (preferably using CI) of the $keys >> index?**** >> >> **** >> >> *From:* Jeremiah Peschka [mailto:[email protected]] >> *Sent:* Tuesday, February 12, 2013 8:52 AM >> *To:* Kevin Burton >> *Cc:* riak-users >> *Subject:* Re: ListKeys or MapReduce**** >> >> **** >> >> They're both pretty crappy in terms of performance - they read all data >> off of disk. If you're using LevelDB you can use the $keys index to pull >> back just the keys that in a single bucket.**** >> >> **** >> >> A better approach is to maintain a separate bucket - e.g. DocumentCount - >> that is used for counting documents. Unfortunately, you can't guarantee >> transactional consistency around counts in Riak today, so you'll want to >> move maintaining the counts out of Riak and into something else. If you >> search the list archives [1], you'll find that Redis has been mentioned as >> a good way to solve this problem - counters are stored in Redis and flushed >> to Riak on a regular schedule. Because of the lack of consistency >> (especially around MapReduce operations), Riak isn't the best choice if you >> require counters/aggregations to be stored in the database.**** >> >> **** >> >> Once CRDTs [2] make it into mainstream Riak, you can make use of those >> data structures to implement distributed counters in Riak.**** >> >> **** >> >> [1]: http://riak.markmail.org**** >> >> [2]: http://vimeo.com/52414903**** >> >> >> **** >> >> ---**** >> >> Jeremiah Peschka - Founder, Brent Ozar Unlimited**** >> >> MCITP: SQL Server 2008, MVP**** >> >> Cloudera Certified Developer for Apache Hadoop**** >> >> **** >> >> On Mon, Feb 11, 2013 at 10:30 AM, <[email protected]> wrote:**** >> >> Say I need to determine how many document there are in my database. For a >> CorrugatedIron application I can do ListKeys and get the warning that it is >> an expensive operation or I can do a MapReduce query. Which is the the >> least expensive? Is there an option that I am missing?**** >> >> >> _______________________________________________ >> riak-users mailing list >> [email protected] >> http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com**** >> >> **** >> >> ** ** >> > >
_______________________________________________ riak-users mailing list [email protected] http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com
