From cccb0f1489d4d6bb61c32b86b2bbe2888afc1bea Mon Sep 17 00:00:00 2001 From: songyuhang Date: Thu, 17 Nov 2022 16:48:07 +0800 Subject: [PATCH 1/2] spc3 update SA and proxy --- src/ceph_proxy/CephProxyInterface.cc | 57 ++++++++--------- src/ceph_proxy/CephProxyOp.h | 2 +- src/ceph_proxy/ConfigRead.cc | 2 + src/ceph_proxy/Gcbufferlist.h | 4 +- src/ceph_proxy/RadosWrapper.cc | 89 +++++++++++---------------- src/server_adaptor/class_api.cc | 1 + src/server_adaptor/msg_module.cpp | 7 ++- src/server_adaptor/network_module.cpp | 4 +- 8 files changed, 76 insertions(+), 90 deletions(-) diff --git a/src/ceph_proxy/CephProxyInterface.cc b/src/ceph_proxy/CephProxyInterface.cc index 5276d27..957877f 100644 --- a/src/ceph_proxy/CephProxyInterface.cc +++ b/src/ceph_proxy/CephProxyInterface.cc @@ -12,8 +12,7 @@ #include #include -int CephProxyInit(const char *conf, size_t wNum, const char *log, - ceph_proxy_t *proxy) +int CephProxyInit(const char *conf, size_t wNum, const char *log, ceph_proxy_t *proxy) { int ret = 0; if (conf == nullptr || log == nullptr || proxy == nullptr) { @@ -199,7 +198,8 @@ int CephProxyWriteOpInit2(ceph_proxy_op_t *op, const int64_t poolId, const char* return 0; } -void CephProxyWriteOpRelease(ceph_proxy_op_t op) { +void CephProxyWriteOpRelease(ceph_proxy_op_t op) +{ RadosWriteOpRelease(op); } @@ -218,26 +218,24 @@ void CephProxyWriteOpAssertVersion(ceph_proxy_op_t op, uint64_t ver) RadosWriteOpAssertVersion(op, ver); } -void CephProxyWriteOpCmpext(ceph_proxy_op_t op, const char *cmpBuf, - size_t cmpLen, uint64_t off, int *prval) +void CephProxyWriteOpCmpext(ceph_proxy_op_t op, const char *cmpBuf, size_t cmpLen, uint64_t off, int *prval) { RadosWriteOpCmpext(op, cmpBuf, cmpLen, off ,prval); } -void CephProxyWriteOpCmpXattr(ceph_proxy_op_t op, const char *name, - uint8_t compOperator, const char *value, size_t valLen) +void CephProxyWriteOpCmpXattr(ceph_proxy_op_t op, const char *name, uint8_t compOperator, const char *value, + size_t valLen) { RadosWriteOpCmpXattr(op, name ,compOperator, value, valLen); } -void CephProxyWriteOpOmapCmp(ceph_proxy_op_t op, const char *key, uint8_t compOperator, - const char *value, size_t valLen, int *prval) +void CephProxyWriteOpOmapCmp(ceph_proxy_op_t op, const char *key, uint8_t compOperator, const char *value, + size_t valLen, int *prval) { RadosWriteOpOmapCmp(op, key, compOperator, value, valLen, prval); } -void CephProxyWriteOpSetXattr(ceph_proxy_op_t op, const char *name, - const char *value, size_t valLen) +void CephProxyWriteOpSetXattr(ceph_proxy_op_t op, const char *name, const char *value, size_t valLen) { RadosWriteOpSetXattr(op, name, value, valLen); } @@ -257,7 +255,8 @@ void CephProxyWriteOpWrite(ceph_proxy_op_t op, const char *buffer, size_t len, u RadosWriteOpWrite(op, buffer, len, off); } -void CephProxyWriteOpWriteBl(ceph_proxy_op_t op, void *s, size_t len1, uint64_t off, AlignBuffer *alignBuffer, int isRelease) +void CephProxyWriteOpWriteBl(ceph_proxy_op_t op, void *s, size_t len1, uint64_t off, AlignBuffer *alignBuffer, + int isRelease) { RadosWriteOpWriteBl(op, static_cast(s), len1, off, alignBuffer, isRelease); } @@ -267,8 +266,8 @@ void CephProxyWriteOpRemove(ceph_proxy_op_t op) RadosWriteOpRemove(op); } -void CephProxyWriteOpOmapSet(ceph_proxy_op_t op, char const* const* keys, - char const* const* vals, const size_t *lens, size_t num) +void CephProxyWriteOpOmapSet(ceph_proxy_op_t op, char const* const* keys, char const* const* vals, + const size_t *lens, size_t num) { RadosWriteOpOmapSet(op, keys, vals, lens, num); } @@ -283,8 +282,8 @@ void CephProxyWriteOpOmapClear(ceph_proxy_op_t op) RadosWriteOpOmapClear(op); } -void CephProxyWriteOpSetAllocHint(ceph_proxy_op_t op, uint64_t expectedObjSize, - uint64_t expectedWriteSize, uint32_t flags) +void CephProxyWriteOpSetAllocHint(ceph_proxy_op_t op, uint64_t expectedObjSize, uint64_t expectedWriteSize, + uint32_t flags) { RadosWriteOpSetAllocHint(op, expectedObjSize, expectedWriteSize, flags); } @@ -324,14 +323,13 @@ void CephProxyReadOpAssertVersion(ceph_proxy_op_t op, uint64_t ver) RadosReadOpAssertVersion(op, ver); } -void CephProxyReadOpCmpext(ceph_proxy_op_t op, const char *cmpBuf, - size_t cmpLen, uint64_t off, int *prval) +void CephProxyReadOpCmpext(ceph_proxy_op_t op, const char *cmpBuf, size_t cmpLen, uint64_t off, int *prval) { RadosReadOpCmpext(op, cmpBuf, cmpLen, off, prval); } -void CephProxyReadOpCmpXattr(ceph_proxy_op_t op, const char *name, - uint8_t compOperator, const char *value, size_t valueLen) +void CephProxyReadOpCmpXattr(ceph_proxy_op_t op, const char *name, uint8_t compOperator, const char *value, + size_t valueLen) { RadosReadOpCmpXattr(op, name, compOperator, value, valueLen); } @@ -341,8 +339,8 @@ void CephProxyReadOpGetXattrs(ceph_proxy_op_t op, proxy_xattrs_iter_t *iter, int RadosReadOpGetXattrs(op, iter, prval); } -void CephProxyReadOpOmapCmp(ceph_proxy_op_t op, const char *key, - uint8_t compOperator, const char *val, size_t valLen, int *prval) +void CephProxyReadOpOmapCmp(ceph_proxy_op_t op, const char *key, uint8_t compOperator, const char *val, size_t valLen, + int *prval) { RadosReadOpOmapCmp(op, key, compOperator, val, valLen, prval); } @@ -352,8 +350,7 @@ void CephProxyReadOpStat(ceph_proxy_op_t op, uint64_t *psize, time_t *pmtime, in RadosReadOpStat(op, psize, pmtime, prval); } -void CephProxyReadOpRead(ceph_proxy_op_t op, uint64_t offset, size_t len, - char *buffer, size_t *bytesRead, int *prval) +void CephProxyReadOpRead(ceph_proxy_op_t op, uint64_t offset, size_t len, char *buffer, size_t *bytesRead, int *prval) { RadosReadOpRead(op, offset, len, buffer, bytesRead, prval); } @@ -363,19 +360,19 @@ void CephProxyReadOpReadBl(ceph_proxy_op_t op, uint64_t offset, size_t len, void RadosReadOpReadBl(op, offset, len , static_cast(s), prval, isRelease); } -void CephProxyReadOpCheckSum(ceph_proxy_op_t op, proxy_checksum_type_t type, - const char *initValue, size_t initValueLen, - uint64_t offset, size_t len, size_t chunkSize, char *pCheckSum, - size_t CheckSumLen, int *prval) +void CephProxyReadOpCheckSum(ceph_proxy_op_t op, proxy_checksum_type_t type, const char *initValue, size_t initValueLen, + uint64_t offset, size_t len, size_t chunkSize, char *pCheckSum, size_t CheckSumLen, int *prval) { RadosReadOpCheckSum(op ,type, initValue, initValueLen, offset, len, chunkSize, pCheckSum, CheckSumLen, prval); } -completion_t CephProxyCreateCompletion(CallBack_t fn, void *arg) { +completion_t CephProxyCreateCompletion(CallBack_t fn, void *arg) +{ return CompletionInit(fn, arg); } -void CephProxyCompletionDestroy(completion_t c) { +void CephProxyCompletionDestroy(completion_t c) +{ CompletionDestroy(c); } diff --git a/src/ceph_proxy/CephProxyOp.h b/src/ceph_proxy/CephProxyOp.h index f1e59e6..0506724 100644 --- a/src/ceph_proxy/CephProxyOp.h +++ b/src/ceph_proxy/CephProxyOp.h @@ -100,7 +100,7 @@ public: size_t *bytesRead = nullptr; } read; - struct _readbl { + struct _readSgl { size_t len = 0; int buildType = 0; GcBufferList *bl = nullptr; diff --git a/src/ceph_proxy/ConfigRead.cc b/src/ceph_proxy/ConfigRead.cc index 75f3b16..83cf21f 100644 --- a/src/ceph_proxy/ConfigRead.cc +++ b/src/ceph_proxy/ConfigRead.cc @@ -32,6 +32,8 @@ #define DEFAULT_MSGR_NUM 3 #define DEFAULT_BIND_CORE 0 +#define CONFIG_BUFFSIZE 500 + #define MAX_CPU_NUM (256) static const char *RADOS_MON_OP_TIMEOUT = "rados_mon_op_timeout"; diff --git a/src/ceph_proxy/Gcbufferlist.h b/src/ceph_proxy/Gcbufferlist.h index 72e54d2..d7bc090 100644 --- a/src/ceph_proxy/Gcbufferlist.h +++ b/src/ceph_proxy/Gcbufferlist.h @@ -10,12 +10,12 @@ typedef struct ListEntryType uint32_t len; } ListEntry; -#define ENTRY_PER_BUFFERLIST 64 +#define ENTRY_PER_BUFFLIST 64 typedef struct GcBufferListType { struct GcBufferListType *nextBufferList; uint16_t entrySumList; - ListEntry entrys[ENTRY_PER_BUFFERLIST]; + ListEntry entrys[ENTRY_PER_BUFFLIST]; } GcBufferList; #endif \ No newline at end of file diff --git a/src/ceph_proxy/RadosWrapper.cc b/src/ceph_proxy/RadosWrapper.cc index 0c9b420..8831ea2 100644 --- a/src/ceph_proxy/RadosWrapper.cc +++ b/src/ceph_proxy/RadosWrapper.cc @@ -187,7 +187,7 @@ int RadosClientInit(rados_client_t *client,const std::string &cephConf) ProxyDbgLogErr("set conf failed: %d", ProxyGetCephKeyring(), ret); goto client_init_out; } - ProxyDbgLogInfo("set config success.", ProxyGetCephKeyring()); + ProxyDbgLogInfo("set config success.", ProxyGetCephKeyring()); } ret = rados->conf_set(ProxyGetMonTimeOutOption(), str.c_str()); @@ -530,8 +530,7 @@ void RadosWriteOpAssertVersion(rados_op_t op, uint64_t ver) writeOp->op.assert_version(ver); } -void RadosWriteOpCmpext(rados_op_t op, const char *cmpBuf, - size_t cmpLen, uint64_t off, int *prval) +void RadosWriteOpCmpext(rados_op_t op, const char *cmpBuf, size_t cmpLen, uint64_t off, int *prval) { RadosObjectWriteOp *writeOp = static_cast(op); bufferlist cmpBl; @@ -539,8 +538,7 @@ void RadosWriteOpCmpext(rados_op_t op, const char *cmpBuf, writeOp->op.cmpext(off, cmpBl, prval); } -void RadosWriteOpCmpXattr(rados_op_t op, const char *name, - uint8_t compOperator, const char *value, size_t valLen) +void RadosWriteOpCmpXattr(rados_op_t op, const char *name, uint8_t compOperator, const char *value, size_t valLen) { RadosObjectWriteOp *writeOp = static_cast(op); bufferlist valueBl; @@ -548,8 +546,8 @@ void RadosWriteOpCmpXattr(rados_op_t op, const char *name, writeOp->op.cmpxattr(name, compOperator, valueBl); } -void RadosWriteOpOmapCmp(rados_op_t op, const char *key, uint8_t compOperator, - const char *value, size_t valLen, int *prval) +void RadosWriteOpOmapCmp(rados_op_t op, const char *key, uint8_t compOperator, const char *value, size_t valLen, + int *prval) { RadosObjectWriteOp *writeOp = static_cast(op); bufferlist bl; @@ -595,7 +593,8 @@ void RadosWriteOpWrite(rados_op_t op, const char *buffer, size_t len, uint64_t o PROXY_FTDS_END_HIGH(PROXY_FTDS_OPS_OPINIT_WRITE, ts, ret); } -void RadosWriteOpWriteBl(rados_op_t op, GcBufferList *bl, size_t len1, uint64_t off, AlignBuffer *alignBuffer, int isRelease) +void RadosWriteOpWriteBl(rados_op_t op, GcBufferList *bl, size_t len1, uint64_t off, AlignBuffer *alignBuffer, + int isRelease) { uint64_t ts = 0; int32_t ret = 0; @@ -610,9 +609,7 @@ void RadosWriteOpWriteBl(rados_op_t op, GcBufferList *bl, size_t len1, uint64_t uint32_t curSrcEntryIndex = 0; // - if (alignBuffer != NULL && - alignBuffer->prevAlignBuffer != NULL && - alignBuffer->prevAlignLen != 0) { + if (alignBuffer != NULL && alignBuffer->prevAlignBuffer != NULL && alignBuffer->prevAlignLen != 0) { writeOp->bl.append(alignBuffer->prevAlignBuffer, alignBuffer->prevAlignLen); } @@ -634,9 +631,7 @@ void RadosWriteOpWriteBl(rados_op_t op, GcBufferList *bl, size_t len1, uint64_t } // - if (alignBuffer != NULL && - alignBuffer->backAlignBuffer != NULL && - alignBuffer->backAlignLen != 0) { + if (alignBuffer != NULL && alignBuffer->backAlignBuffer != NULL && alignBuffer->backAlignLen != 0) { writeOp->bl.append(alignBuffer->backAlignBuffer, alignBuffer->backAlignLen); } @@ -660,8 +655,8 @@ void RadosWriteOpRemove(rados_op_t op) PROXY_FTDS_END_HIGH(PROXY_FTDS_OPS_OPINIT_REMOVE, ts, ret); } -void RadosWriteOpOmapSet(rados_op_t op, const char *const *keys, - const char *const *vals, const size_t *lens, size_t num) +void RadosWriteOpOmapSet(rados_op_t op, const char *const *keys, const char *const *vals, const size_t *lens, + size_t num) { RadosObjectWriteOp *writeOp = static_cast(op); std::map entries; @@ -743,8 +738,7 @@ void RadosReadOpAssertVersion(rados_op_t op, uint64_t ver) readOp->op.assert_version(ver); } -void RadosReadOpCmpext(rados_op_t op, const char *cmpBuf, - size_t cmpLen, uint64_t off, int *prval) +void RadosReadOpCmpext(rados_op_t op, const char *cmpBuf, size_t cmpLen, uint64_t off, int *prval) { RadosObjectReadOp *readOp=static_cast(op); bufferlist bl; @@ -752,8 +746,7 @@ void RadosReadOpCmpext(rados_op_t op, const char *cmpBuf, readOp->op.cmpext(off, bl, prval); } -void RadosReadOpCmpXattr(rados_op_t op, const char *name, uint8_t compOperator, - const char *value, size_t valueLen) +void RadosReadOpCmpXattr(rados_op_t op, const char *name, uint8_t compOperator, const char *value, size_t valueLen) { RadosObjectReadOp *readOp=static_cast(op); bufferlist bl; @@ -823,8 +816,7 @@ void RadosGetXattrsEnd(proxy_xattrs_iter_t iter) delete it; } -void RadosReadOpOmapGetVals(rados_op_t op, const char *startAfter, - uint64_t maxReturn, rados_omap_iter_t *iter, +void RadosReadOpOmapGetVals(rados_op_t op, const char *startAfter, uint64_t maxReturn, rados_omap_iter_t *iter, unsigned char *pmore, int *prval) { RadosObjectReadOp *readOp = static_cast(op); @@ -839,8 +831,8 @@ void RadosReadOpOmapGetVals(rados_op_t op, const char *startAfter, *iter = oIter; } -void RadosReadOpOmapGetKeys(rados_op_t op, const char *startAfter, uint64_t maxReturn, - proxy_omap_iter_t *iter, unsigned char *pmore, int *prval) +void RadosReadOpOmapGetKeys(rados_op_t op, const char *startAfter, uint64_t maxReturn, proxy_omap_iter_t *iter, + unsigned char *pmore, int *prval) { RadosObjectReadOp *readOp = static_cast(op); RadosOmapIter *oIter = new(std::nothrow) RadosOmapIter(); @@ -897,7 +889,8 @@ int RadosOmapGetNext(proxy_omap_iter_t iter, char **key, char **val, size_t *key return 0; } -size_t RadosOmapIterSize(proxy_omap_iter_t iter) { +size_t RadosOmapIterSize(proxy_omap_iter_t iter) +{ RadosOmapIter *it = static_cast(iter); return it->values.size(); } @@ -908,8 +901,8 @@ void RadosOmapIterEnd(proxy_omap_iter_t iter) delete it; } -void RadosReadOpOmapCmp(rados_op_t op, const char *key, uint8_t compOperator, - const char *val, size_t valLen, int *prval) +void RadosReadOpOmapCmp(rados_op_t op, const char *key, uint8_t compOperator, const char *val, size_t valLen, + int *prval) { RadosObjectReadOp *readOp = static_cast(op); bufferlist bl; @@ -936,16 +929,15 @@ void RadosReadOpStat(rados_op_t op, uint64_t *psize, time_t *pmtime, int *prval) PROXY_FTDS_END_HIGH(PROXY_FTDS_OPS_OPINIT_READSTAT, ts, ret); } -void RadosReadOpRead(rados_op_t op, uint64_t offset, size_t len, char *buffer, - size_t *bytesRead, int *prval) +void RadosReadOpRead(rados_op_t op, uint64_t offset, size_t len, char *buffer, size_t *bytesRead, int *prval) { uint64_t ts = 0; int32_t ret = 0; PROXY_FTDS_START_HIGH(PROXY_FTDS_OPS_OPINIT_READ, ts); RadosObjectReadOp *readOp = static_cast(op); if (readOp == nullptr || buffer == nullptr || bytesRead == nullptr) { - ProxyDbgLogErr("readOp %p or buffer %p or bytesRead %p or prval %p is invalid", - readOp, buffer, bytesRead, prval); + ProxyDbgLogErr("readOp %p or buffer %p or bytesRead %p or prval %p is invalid", readOp, buffer, bytesRead, + prval); PROXY_FTDS_END_HIGH(PROXY_FTDS_OPS_OPINIT_READ, ts, ret); return; } @@ -975,10 +967,8 @@ void RadosReadOpReadBl(rados_op_t op, uint64_t offset,size_t len, GcBufferList * PROXY_FTDS_END_HIGH(PROXY_FTDS_OPS_OPINIT_READBL, ts, ret); } -void RadosReadOpCheckSum(rados_op_t op, proxy_checksum_type_t type, - const char *initValue, size_t initValueLen, - uint64_t offset, size_t len, size_t chunkSize, - char *pCheckSum, size_t checkSumLen, int *prval) +void RadosReadOpCheckSum(rados_op_t op, proxy_checksum_type_t type, const char *initValue, size_t initValueLen, + uint64_t offset, size_t len, size_t chunkSize, char *pCheckSum, size_t checkSumLen, int *prval) { rados_checksum_type_t rtype = (rados_checksum_type_t)type; RadosObjectReadOp *readOp = static_cast(op); @@ -989,9 +979,8 @@ void RadosReadOpCheckSum(rados_op_t op, proxy_checksum_type_t type, readOp->op.checksum(rtype, bl, offset, len, chunkSize, &(readOp->checksums), prval); } -void RadosReadOpExec(rados_op_t op, const char *cls, const char *method, - const char *inBuf, size_t inLen, char **outBuf, - size_t *outLen, int *prval) +void RadosReadOpExec(rados_op_t op, const char *cls, const char *method, const char *inBuf, size_t inLen, char **outBuf, + size_t *outLen, int *prval) { RadosObjectReadOp *readOp = static_cast(op); bufferlist inbl; @@ -1012,13 +1001,11 @@ int RadosOperationOperate(rados_op_t op, rados_ioctx_t io) RadosObjectReadOp *readOp = dynamic_cast(rop); bufferlist bl; ret = ctx->operate(readOp->objectId, &(readOp->op), &bl); - } - break; + } break; case BATCH_WRITE_OP: { RadosObjectWriteOp *writeOp = dynamic_cast(rop); ret = ctx->operate(writeOp->objectId, &(writeOp->op)); - } - break; + } break; default: break; } @@ -1068,7 +1055,7 @@ void ReadCallback(rados_completion_t c, void *arg) memcpy(bl->entrys[curEntryIndex].buf, cbl.c_str(), size); leftLen -= size; curEntryIndex++; - if (curEntryIndex >= ENTRY_PER_BUFFERLIST) { + if (curEntryIndex >= ENTRY_PER_BUFFLIST) { curEntryIndex = 0; bl = bl->nextBufferList; } @@ -1078,15 +1065,15 @@ void ReadCallback(rados_completion_t c, void *arg) } } else { if (ret == -2) { - ProxyDbgLogWarn("pool(%ld) or objects(%s) is not exists: %d", readOp->poolId, readOp->objectId.c_str(), ret); + ProxyDbgLogWarn("pool(%ld) or objects(%s) is not exists: %d", readOp->poolId, readOp->objectId.c_str(), + ret); } else { ProxyDbgLogErr("read pool(%ld) or objects(%s) failed: %d", readOp->poolId, readOp->objectId.c_str(), ret); } } if (ret == 0 && readOp->reqCtx.xattr.name != nullptr) { - memcpy(*(readOp->reqCtx.xattr.vals), - readOp->xattrs[readOp->reqCtx.xattr.name].c_str(), + memcpy(*(readOp->reqCtx.xattr.vals), readOp->xattrs[readOp->reqCtx.xattr.name].c_str(), readOp->xattrs[readOp->reqCtx.xattr.name].length()); } @@ -1106,9 +1093,7 @@ void ReadCallback(rados_completion_t c, void *arg) } if (ret == 0 && readOp->reqCtx.checksum.pCheckSum != nullptr) { - memcpy(readOp->reqCtx.checksum.pCheckSum, - readOp->checksums.c_str(), - readOp->reqCtx.checksum.chunkSumLen); + memcpy(readOp->reqCtx.checksum.pCheckSum, readOp->checksums.c_str(), readOp->reqCtx.checksum.chunkSumLen); } // TODO: other reqCtx; @@ -1164,8 +1149,7 @@ int RadosOperationAioOperate( rados_client_t client, rados_op_t op, rados_ioctx_ ProxyDbgLogErr("aio_operate failed: %d", ret); } readCompletion->release(); - } - break; + } break; case BATCH_WRITE_OP: { RadosObjectWriteOp *writeOp = dynamic_cast(rop); writeOp->ts = 0; @@ -1179,8 +1163,7 @@ int RadosOperationAioOperate( rados_client_t client, rados_op_t op, rados_ioctx_ ProxyDbgLogErr("aio_operate failed: %d", ret); } writeCompletion->release(); - } - break; + } break; default: ProxyDbgLogErr("unknown op: %u", rop->opType); ret = -EINVAL; diff --git a/src/server_adaptor/class_api.cc b/src/server_adaptor/class_api.cc index ed90c5d..99de22a 100644 --- a/src/server_adaptor/class_api.cc +++ b/src/server_adaptor/class_api.cc @@ -254,6 +254,7 @@ int cls_cxx_stat2(cls_method_context_t hctx, uint64_t *size, ceph::real_time *mt op.rbdObjId.format = pOpReq->vecOps[pctx->opId].rbdObjId.format; op.rbdObjId.poolId = pOpReq->vecOps[pctx->opId].rbdObjId.poolId; op.objName = pOpReq->vecOps[pctx->opId].objName; // ptr->get_oid().name; + op.opFlags = 1; vector ops(1); ops.swap(ptr->ops); diff --git a/src/server_adaptor/msg_module.cpp b/src/server_adaptor/msg_module.cpp index 63fa39a..8ac2918 100644 --- a/src/server_adaptor/msg_module.cpp +++ b/src/server_adaptor/msg_module.cpp @@ -120,7 +120,10 @@ int MsgModule::ConvertClientopToOpreq(OSDOp &clientop, OpRequestOps &oneOp, Opti } } break; case CEPH_OSD_OP_GETXATTRS: - case CEPH_OSD_OP_STAT: + case CEPH_OSD_OP_STAT: { + oneOp.opFlags = clientop.op.flags; + SaDatalog("Converting stat tid=%ld obj=%s flag=%u", tid, oneOp.objName.c_str(), oneOp.opFlags); + } break; case CEPH_OSD_OP_CALL: { string cname, mname; @@ -137,7 +140,7 @@ int MsgModule::ConvertClientopToOpreq(OSDOp &clientop, OpRequestOps &oneOp, Opti } } break; case CEPH_OSD_OP_LIST_SNAPS: { - SaDatalog("Converting COPYUP tid=%ld obj=%s", tid, oneOp.objName.c_str()); + SaDatalog("Converting list snaps tid=%ld obj=%s", tid, oneOp.objName.c_str()); } break; case CEPH_OSD_OP_CREATE: diff --git a/src/server_adaptor/network_module.cpp b/src/server_adaptor/network_module.cpp index 3e294a2..fb4fc43 100644 --- a/src/server_adaptor/network_module.cpp +++ b/src/server_adaptor/network_module.cpp @@ -506,7 +506,7 @@ void NetworkModule::OpHandlerThread(int threadNum, int coreId) GetReadBWCas(opreq->optionLength); } while (copyupFlag.load() == 1) { - usleep(20 * SA_THOUSAND_DEC); + usleep(50); } if (unlikely(opreq->exitsCopyUp == 1)) { SaDatalog("exists copyup, set copyupFlag, tid=%ld", opreq->tid); @@ -536,7 +536,7 @@ void NetworkModule::OpHandlerThread(int threadNum, int coreId) sleep(1); ceph_assert("Lock queue mutex catch std::exception 2" == nullptr); } - sa->FtdsEndHigt(SA_FTDS_LOCK_ONE, "SA_FTDS_OP_LIFE", lockTsOne, 0); + sa->FtdsEndHigt(SA_FTDS_LOCK_ONE, "SA_FTDS_LOCK_ONE", lockTsOne, 0); continue; } try { -- Gitee From 844c0348137b11248d0ea3f331a288edc893d919 Mon Sep 17 00:00:00 2001 From: songyuhang Date: Thu, 17 Nov 2022 17:17:01 +0800 Subject: [PATCH 2/2] spc3 update CA --- patch/ceph-global-cache.patch | 208 ++++++++++++++++++++++------------ 1 file changed, 134 insertions(+), 74 deletions(-) diff --git a/patch/ceph-global-cache.patch b/patch/ceph-global-cache.patch index 8cc38a4..80a7b9f 100644 --- a/patch/ceph-global-cache.patch +++ b/patch/ceph-global-cache.patch @@ -1,5 +1,5 @@ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index 28ec9835..bf4aa6e8 100644 +index 28ec983..bf4aa6e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -103,6 +103,11 @@ if(HAVE_INTEL) @@ -40,7 +40,7 @@ index 28ec9835..bf4aa6e8 100644 if(WITH_TESTS) diff --git a/src/client_adaptor/CMakeLists.txt b/src/client_adaptor/CMakeLists.txt new file mode 100644 -index 00000000..aba70f7e +index 0000000..aba70f7 --- /dev/null +++ b/src/client_adaptor/CMakeLists.txt @@ -0,0 +1,17 @@ @@ -63,7 +63,7 @@ index 00000000..aba70f7e + diff --git a/src/client_adaptor/ClientAdaptorMgr.cc b/src/client_adaptor/ClientAdaptorMgr.cc new file mode 100644 -index 00000000..f9ca79b1 +index 0000000..900be66 --- /dev/null +++ b/src/client_adaptor/ClientAdaptorMgr.cc @@ -0,0 +1,256 @@ @@ -108,7 +108,7 @@ index 00000000..f9ca79b1 + return RET_OK; +} + -+int32_t CcmNodeChangeNotify(NodeInfo *nodeList, uint32_t nodeNum, void *ctx) { ++int32_t CcmNodeChangeNotify(int32_t clusterId, NodeInfo *nodeList, uint32_t nodeNum, void *ctx) { + if (nodeNum == 0) { + return RET_OK; + } @@ -122,7 +122,7 @@ index 00000000..f9ca79b1 + return RET_OK; + } + Objecter *obj = static_cast(ctx); -+ obj->nodeview_change_retry_op_submit(available_nodes); ++ obj->nodeview_change_retry_op_submit(clusterId, available_nodes); + return RET_OK; +} + @@ -325,7 +325,7 @@ index 00000000..f9ca79b1 +} diff --git a/src/client_adaptor/ClientAdaptorMgr.h b/src/client_adaptor/ClientAdaptorMgr.h new file mode 100644 -index 00000000..7ea053f0 +index 0000000..7ea053f --- /dev/null +++ b/src/client_adaptor/ClientAdaptorMgr.h @@ -0,0 +1,189 @@ @@ -520,7 +520,7 @@ index 00000000..7ea053f0 +#endif diff --git a/src/client_adaptor/ClientAdaptorMsg.cc b/src/client_adaptor/ClientAdaptorMsg.cc new file mode 100644 -index 00000000..ee19bbd5 +index 0000000..ee19bbd --- /dev/null +++ b/src/client_adaptor/ClientAdaptorMsg.cc @@ -0,0 +1,348 @@ @@ -874,7 +874,7 @@ index 00000000..ee19bbd5 +} diff --git a/src/client_adaptor/ClientAdaptorMsg.h b/src/client_adaptor/ClientAdaptorMsg.h new file mode 100644 -index 00000000..80afa785 +index 0000000..80afa78 --- /dev/null +++ b/src/client_adaptor/ClientAdaptorMsg.h @@ -0,0 +1,87 @@ @@ -967,7 +967,7 @@ index 00000000..80afa785 +#endif diff --git a/src/client_adaptor/ClientAdaptorPerf.cc b/src/client_adaptor/ClientAdaptorPerf.cc new file mode 100644 -index 00000000..cea78351 +index 0000000..cea7835 --- /dev/null +++ b/src/client_adaptor/ClientAdaptorPerf.cc @@ -0,0 +1,85 @@ @@ -1058,7 +1058,7 @@ index 00000000..cea78351 +} diff --git a/src/client_adaptor/ClientAdaptorPerf.h b/src/client_adaptor/ClientAdaptorPerf.h new file mode 100644 -index 00000000..f7ee5be5 +index 0000000..f7ee5be --- /dev/null +++ b/src/client_adaptor/ClientAdaptorPerf.h @@ -0,0 +1,55 @@ @@ -1119,7 +1119,7 @@ index 00000000..f7ee5be5 +#endif diff --git a/src/client_adaptor/ClientAdaptorPlugin.cc b/src/client_adaptor/ClientAdaptorPlugin.cc new file mode 100644 -index 00000000..c44e3480 +index 0000000..c44e348 --- /dev/null +++ b/src/client_adaptor/ClientAdaptorPlugin.cc @@ -0,0 +1,45 @@ @@ -1170,7 +1170,7 @@ index 00000000..c44e3480 +} diff --git a/src/client_adaptor/ClientAdaptorPlugin.h b/src/client_adaptor/ClientAdaptorPlugin.h new file mode 100644 -index 00000000..fa7d71d2 +index 0000000..fa7d71d --- /dev/null +++ b/src/client_adaptor/ClientAdaptorPlugin.h @@ -0,0 +1,39 @@ @@ -1215,7 +1215,7 @@ index 00000000..fa7d71d2 +#endif diff --git a/src/client_adaptor/open_ccm.h b/src/client_adaptor/open_ccm.h new file mode 100644 -index 00000000..50b8b372 +index 0000000..f5ff2a3 --- /dev/null +++ b/src/client_adaptor/open_ccm.h @@ -0,0 +1,224 @@ @@ -1368,7 +1368,7 @@ index 00000000..50b8b372 +/* NodeView callback */ +typedef struct { + void *ctx; -+ int32_t (*notifyNodeChange)(NodeInfo *nodeList, uint32_t nodeNum, void *ctx); ++ int32_t (*notifyNodeChange)(int32_t clusterId, NodeInfo *nodeList, uint32_t nodeNum, void *ctx); +} NodeViewChangeOpHandle; + +/* PTView callback */ @@ -1446,7 +1446,7 @@ index 00000000..50b8b372 \ No newline at end of file diff --git a/src/client_adaptor/open_das.h b/src/client_adaptor/open_das.h new file mode 100644 -index 00000000..6eac9f73 +index 0000000..6eac9f7 --- /dev/null +++ b/src/client_adaptor/open_das.h @@ -0,0 +1,67 @@ @@ -1519,7 +1519,7 @@ index 00000000..6eac9f73 +#endif // OPEN_DAS_H \ No newline at end of file diff --git a/src/common/options.cc b/src/common/options.cc -index 8135ea8f..9d3bb781 100644 +index 8135ea8..9d3bb78 100644 --- a/src/common/options.cc +++ b/src/common/options.cc @@ -1015,7 +1015,7 @@ std::vector