MCPcopy Create free account
hub / github.com/Snapchat/KeyDB / replicationNotifyLoadedKey

Function replicationNotifyLoadedKey

src/replication.cpp:5573–5595  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5571}
5572
5573void replicationNotifyLoadedKey(redisDb *db, robj_roptr key, robj_roptr val, long long expire) {
5574 if (!g_pserver->fActiveReplica || listLength(g_pserver->slaves) == 0)
5575 return;
5576
5577 // Send a digest over to the replicas
5578 rio r;
5579
5580 createDumpPayload(&r, val, key.unsafe_robjcast());
5581
5582 redisObjectStack objPayload;
5583 initStaticStringObject(objPayload, r.io.buffer.ptr);
5584 redisObjectStack objTtl;
5585 initStaticStringObject(objTtl, sdscatprintf(sdsempty(), "%lld", expire));
5586 redisObjectStack objMvcc;
5587 initStaticStringObject(objMvcc, sdscatprintf(sdsempty(), "%" PRIu64, mvccFromObj(val)));
5588 redisObject *argv[5] = {shared.mvccrestore, key.unsafe_robjcast(), &objMvcc, &objTtl, &objPayload};
5589
5590 replicationFeedSlaves(g_pserver->slaves, db->id, argv, 5);
5591
5592 sdsfree(szFromObj(&objTtl));
5593 sdsfree(szFromObj(&objMvcc));
5594 sdsfree(r.io.buffer.ptr);
5595}
5596
5597void replicateSubkeyExpire(redisDb *db, robj_roptr key, robj_roptr subkey, long long expire) {
5598 if (!g_pserver->fActiveReplica || listLength(g_pserver->slaves) == 0)

Callers 1

processJobMethod · 0.85

Calls 8

createDumpPayloadFunction · 0.85
sdscatprintfFunction · 0.85
sdsemptyFunction · 0.85
mvccFromObjFunction · 0.85
replicationFeedSlavesFunction · 0.85
sdsfreeFunction · 0.85
szFromObjFunction · 0.85
unsafe_robjcastMethod · 0.80

Tested by

no test coverage detected