zoukankan      html  css  js  c++  java
  • Zookeeper 一种简单的原子操作机制:

    Zookeeper 一种简单的原子操作机制:

    //zoo_get()方法: int zoo_get(zhandle_t * zh, const char *path, int watch,

    //                   char *buffer, int *buffer_len, struct Stat *stat);

    //zh:连接句柄, path:文件路径, watch: , buffer:获得的数据, stat:状态信//息(比较有用的如:version信息)

    char tmpData[MAXNODENAMELENS];

    uint32_t tmpDataSize = MAXNODENAMELENS - 1;

    rc = zoo_get(zh, nodeName, 1, tmpData, &tmpDataSize, &stat);

    sdsfree(nodeName);

    if  (rc < 0) {

    return rc;

    }

    tmpData[tmpDataSize] = '';

    char *stop;

    uint32_t expectGroupID = strtol(tmpData, &stop, 10);

    if (expectGroupID != groupID_src)

    {

    SlogWrite(LL_FATAL, "ChangeBlockUtil:expectGroupID!=groupID_src.[expectGroupID=%d]", expectGroupID);

    return -1;

    }

    // optimize: use version set

    uint32_t version = stat.version;

    sds data = sdscatprintf(sdsempty(), "%d", groupID_dst);

    SlogWrite(LL_DEBUG, "Set %s value %s.", nodeName, data);

    rc = zoo_set(zh, nodeName, data, sdslen(data), version);

    sdsfree(nodeName);

    sdsfree(data);

    if (rc < 0)

    {

    SlogWrite(LL_FATAL, "ChangeBlockUtil: fail to zoo_set with version=%d", version);

    return rc;

    }

  • 相关阅读:
    ECMAScript 2016(ES7) 知多少
    PyCharm连接远程服务器
    PyCharm远程开发和调试
    SecureCRT使用帮助
    NLP文本相似度
    程序控制结构--案例
    程序控制结构--选择结构
    程序控制结构--条件表达式
    Python序列结构--集合
    Python序列结构--字典
  • 原文地址:https://www.cnblogs.com/candycloud/p/3669231.html
Copyright © 2011-2022 走看看