Simple cache architecture

Preview:

DESCRIPTION

 

Citation preview

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!

Recommended