Simple cache architecture

Post on 06-Dec-2014

864 views 0 download

description

 

Transcript of Simple cache architecture

Simple Cache Architecture

charsyam@naver.com

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!