simple cache architecture
DESCRIPTION
TRANSCRIPT
Simple Cache Architecture
What is Cache?
Cache == Speed
Disk Accessing is too late
Operation Time is too long
Client
Business Object
Memory
Disk
Client Client Client
Client
Business Object
Distributed Cache
DB
Client Client Client
Connect via Business Object
Don’t Connect Client between DB directly
Distributed Cache
Consistent Hashing
Proxy
Server
Server
Server
Server
Server
User Request
K = 10000 N = 5
Origin
Proxy
Server
Server
Server
Server
Server
User Request
K = 10000 N = 4
FAIL : Redistribution about 2000 Users
Proxy
Server
Server
Server
Server
Server
User Request
K = 10000 N = 5
RECOVER: Redistribution about 2500 Users
A
Add A,B,C Server
A
B
Add A,B,C Server
A
B
C
Add A,B,C Server
A
B
C
1
Add Item 1
A
B
C
1
2
Add Item 2
A
B
C
1
2
3
4
5
Add Item 3,4,5
A
B
C 2
3
4
5
Fail!! B Server
A
B
C
1
2
3
4
5
Add Item 1 Again -> Allocated C Server
A
B
C
1
2
3
4
5
1
Recover B Server -> Add Item 1
A
B
C
Real Implementation
A+1
A+2
A+3 B+1
B+2
C+1
C+2
A+4
C+3
B+3
Mistake
A
DB Cache
B
Normal Step
1. A:DB:W 2. A:Cache:W 3. B:DB:W 4. B:Cache:W
A
DB Cache
B
Race Condition Step
1. A:DB:W 3. B:Cache:W 2. B:DB:W 4. A:Cache:W
Solution?
Global Lock?
CAS?
Thank You!