30. RDB - BAD
• Bad Performance in Large memory.
• Twice memory problem.
• Denying write problem when storing
RDB fails.
• If you just want Cache. Turn off RDB
31. RDB – Large Memory
• Performance is relevant to Memory
Size.
117 GB
68.4 GB
17.1 GB
34.2 GB
32. RDB – Twice Memory
• fork() and COW(copy on write) Issue
–In Write Heavy System:
36. Real Case Study
• Background
–Can’t write to Redis Server
–Sentinel doesn’t find Server’s failure.
37. Real Case Study
• Reason
–If redis fails to save RDB, Redis basically
denies write operations from client.
–“MISCONF Redis is configured to save RDB
snapshots, but is currently not able to
persist on disk. Commands that may modify
the data set are disabled. Please check Redis
logs for details about the error.”
38. Real Case Study
• Reason
if (server.stop_writes_on_bgsave_err &&
server.saveparamslen > 0
&& server.lastbgsave_status == REDIS_ERR &&
c->cmd->flags & REDIS_CMD_WRITE)
{
flagTransaction(c);
addReply(c, shared.bgsaveerr);
return REDIS_OK;
}
39. Real Case Study
• Solution #1
config set stop-writes-on-bgsave-error no
• Solution #2
Turn off RDB Setting
64. Promoting
Send Slaveof no one to new master
Send Slaveof [new master ip] [addr] to
Other redis
Notify new master to clietns
+switch-master
Set DEMOTE mark to old-Master
89. Failure of Cell Architecture
User
ID: CharSyam
CellID: 1, Status: Normal
Cell Info
Server
Can’t Service
Cell 0
Cell 1
Cell 2
90. Failure of Cell Architecture
User
ID: CharSyam
Can’t response
Cell Info
Server
Get/set
Cell 0
Cell 1
Cell 2
91. Cell Architecture
• Benefits
–Easy to extend
–Failure is limited to some Users in same cell.
–Can deploy specific feature to some cell users.
• Liabilities
–To need more servers.
• To build full-set