Hi Dan,

The simple solution I came up was to replace the M/R request (basically fetching 10-50 objects at a time) to a version that fetches objects one by one :-) I haven't noticed performance degradation so that solution even not so elegant works for me (at least for the moment). The problem was related to recently deleted objects that still exist in the cluster but with undefined content. If I perform M/R and at least one of the requested keys is in that state the M/R request just fails returning {lineno":466, "message":"SyntaxError: syntax error", "source":"()} M/R requests to buckets where we don't perform delete operations work perfect.

We have had that problem for a while and rewrote and rewrote the function that should do the job. We use node-js library to communicate with the cluster but for that specific task used (till today) the functions below as we thought the problem was with the library.

performMapReduceCURL = function(command, cb) {
var exec = 'curl -X POST -d \'' + command + '\' -H "Content-Type: application/json" http://' + config.riakHosts[0].join(':') + '/mapred';
    require('child_process').exec(exec, cb);
};

function mapFunc(o, keyData, arg) {
    var data = Riak.mapValuesJson(o)[0];
    var result;
    if(undefined !== data && data.id) {
        result = [
{id:data.id,social_id:data.social_id,experience:data.experience,map:data.map,visited_users:data.visited_users}
        ];
    }
    else {
        result = [];
    }
    return result;
}

ids = ['key1', 'key2', 'key3', etc....];
ids.unshift('set_member');

var command = '{"inputs":{"bucket":\"' + config.CONCRETESBUCKET + '\","key_filters":[' + JSON.stringify(ids) + ']},"query":[{"map":{"language":"javascript","source":"' + mapFunc.toString() + '", "keep":true}}], "timeout" : ' + config.listenHostTimeout + '}';
performMapReduceCURL(command, function(error, stdout, stderr) {

// at this point if we have at least one key from ids that looks like 'tombstone'
    error = null
stdout = lineno":466, "message":"SyntaxError: syntax error", "source":"()
}

For now everything is under control so thanks to everyone for the help,
Ivaylo



On 12-03-06 12:15 PM, Dan Reverri wrote:
Hi Ivaylo,

Can you provide an example of the MapReduce job you are running? Are there any log messages on the server side which correspond to the MapReduce error? What bug are you referring to?

Thanks,
Dan

Daniel Reverri
Developer Advocate
Basho Technologies, Inc.
d...@basho.com <mailto:d...@basho.com>


On Tue, Mar 6, 2012 at 8:11 AM, Ivaylo Panitchkov <ipanitch...@hibernum.com <mailto:ipanitch...@hibernum.com>> wrote:


    Hello guys,

    We are in production and noticed ALL of the M/R requests failing
    right after a bulk delete with the following response returned back:

    lineno":466,"message":"SyntaxError: syntax error","source":"()

    The problem is now persistent even if the delete operation was
    done awhile ago.
    I googled to find a solution and realized this is a bug not fixed yet.
    We have a cluster of 4 machines with riak (1.0.2 2011-11-17)
    Debian x86_64 installed.
    I need a quick fix ASAP if someone could help me out.

    Thanks in advance,
    Ivaylo

-- Ivaylo Panitchkov
    Software developer
    Hibernum Creations Inc.

    Ce courriel est confidentiel et peut aussi être protégé par la
    loi.Si vous avez reçu ce courriel par erreur, veuillez nous en
    aviser immédiatement en y répondant, puis supprimer ce message de
    votre système. Veuillez ne pas le copier, l’utiliser pour quelque
    raison que ce soit ni divulguer son contenu à quiconque.
    This email is confidential and may also be legally privileged. If
    you have received this email in error, please notify us
    immediately by reply email and then delete this message from your
    system. Please do not copy it or use it for any purpose or
    disclose its content.


    _______________________________________________
    riak-users mailing list
    riak-users@lists.basho.com <mailto:riak-users@lists.basho.com>
    http://lists.basho.com/mailman/listinfo/riak-users_lists.basho.com




--
Ivaylo Panitchkov
Software developer
Hibernum Creations Inc.

Ce courriel est confidentiel et peut aussi être protégé par la loi.Si vous avez 
reçu ce courriel par erreur, veuillez nous en aviser immédiatement en y 
répondant, puis supprimer ce message de votre système. Veuillez ne pas le 
copier, l’utiliser pour quelque raison que ce soit ni divulguer son contenu à 
quiconque.
This email is confidential and may also be legally privileged. If you have 
received this email in error, please notify us immediately by reply email and 
then delete this message from your system. Please do not copy it or use it for 
any purpose or disclose its content.

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

Reply via email to