Hello Riak world, I've been experimenting with migrating some of our OLAP data in to Riak recently. I'm still learning about the…particulars…of Riak, so apologies is the solution to this is obvious or this is an overt n00b question.
I'm developing on a three-ring Riak cluster on my machine (OSX 10.8.1). I'm primarily using Ruby + Ripple but I've done a lot exploration with Curl too. I'm also using Rekon as a way to peek in to data I'm storing. The issue I'm facing: I tried to run an improperly-formatted MapReduce job against a bucket with about 45k keys in it and it seemed to crash Riak. Here's the job itself: 1.9.3p194 :065 > puts job.to_json {"inputs":{"bucket":"raw_statistics","key_filters":[["starts_with","some_string"],["and",[[["tokenize",":",4]],[["between",1345197700,1345697700,true]]]]]},"query":[{"map":{"language":"javascript","keep":true,"name":"Riak.mapValuesJson"}}]} I would expect about 2.5k matches to the map. Here's the output from one of the vnodes' error.log 2012-08-29 19:27:52.908 [error] <0.420.0>@riak_pipe_vnode:new_worker:766 Pipe worker startup failed:fitting was gone before startup 2012-08-29 19:45:41.739 [error] <0.959.0> gen_fsm <0.959.0> in state active terminated with reason: no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 2012-08-29 19:45:41.773 [error] <0.594.0> gen_fsm <0.594.0> in state active terminated with reason: no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 2012-08-29 19:45:41.778 [error] <0.594.0> CRASH REPORT Process <0.594.0> with 1 neighbours exited with reason: no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 in gen_fsm:terminate/7 line 611 2012-08-29 19:45:41.785 [error] <0.23924.70>@riak_kv_vnode:init:265 Failed to start riak_kv_multi_backend Reason: [{riak_kv_eleveldb_backend,{db_open,"IO error: lock ../../tmp/riak/instance1/leveldb/0/LOCK: Resource temporarily unavailable"}}] 2012-08-29 19:45:41.814 [error] <0.141.0> Supervisor riak_core_vnode_sup had child undefined started with {riak_core_vnode,start_link,undefined} at <0.594.0> exit with reason no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 in context child_terminated 2012-08-29 19:45:41.818 [error] <0.959.0> CRASH REPORT Process <0.959.0> with 1 neighbours exited with reason: no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 in gen_fsm:terminate/7 line 611 2012-08-29 19:45:41.822 [error] <0.141.0> Supervisor riak_core_vnode_sup had child undefined started with {riak_core_vnode,start_link,undefined} at <0.959.0> exit with reason no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 in context child_terminated 2012-08-29 19:45:41.943 [error] <0.962.0> gen_fsm <0.962.0> in state ready terminated with reason: no match of right hand value {error,{bad_filter,[<<"tokenize">>,<<":">>,4]}} in riak_kv_mapred_filters:'-logical_and/1-fun-0-'/1 line 176 For what it's worth the format of my key is as follows (if anyone has any suggestions on a smarter way to format these, I'm all ears). <some piece of user data>:<user ID>:<some other piece of data>:<timestamp in seconds> So my question is: Why did this completely kill Riak? This makes me pretty nervous--a bug in our app has the potential to bring down the ring! Is there anything we can do to protect against this? And a bonus question: What is a reasonable way to query this? I can't maintain links as there will potentially be hundreds of thousands of these objects to query over (each one is pretty small). Is this a good candidate for a compound secondary index? Thanks for any help. Cheers, Brad Heller | Engineering Lead | Cloudability.com | 541-231-1514 | Skype: brad.heller | @bradhe | @cloudability We're hiring! http://cloudability.com/jobs
_______________________________________________ riak-users mailing list riak-users@lists.basho.com http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com