SlideShare une entreprise Scribd logo
1  sur  143
Télécharger pour lire hors ligne
초보자를 위한 분산 캐시 이야기


       charsyam@naver.com
       http://charsyam.wordpress.com
잉여서버개발자 In NHN
관심분야!!!

Cloud, Big Data


특기!!!
발표 날로 먹기!!!
What is Cache?
Cache is a component
that transparently stores data so

that future requests for that

data can be served faster.


                   In Wikipedia
Cache 는 나중에 요청올 결과를
미리 저장해두었다가 빠르게
서비스해 주는 것
Lots of
Data
Cache
Lots of
        Data


Cache
CPU Cache
Browser Cache
Why is Cache?
Use Case: Login
Use Case: Login
Common Case
Use Case: Login
  Common Case
         Read From DB
Select * from Users where id=‘charsyam’;
일반적인 DB구성
     Master

         REPLICATION/FailOver

     Slave
일반적인 DB구성
모든 Traffic은 Master 가 처리 Slave는 장애 대비
                Master

                     REPLICATION/FailOver

                 Slave
이러니깐 부하가!!!
선택의 기로!!!
Scale UP
   Vs
Scale OUT
Scale
 UP
초당 1000 TPS
초당 3000 TPS




3배 처리 가능한 서버를 투입
Scale
OUT
초당 1000 TPS
초당 2000 TPS
초당 3000 TPS
Scale Out을 선택!!!
Scale Out을 선택!!!
   돈만 많으면 Scale Up도 좋습니다.
Request 분석
읽기 70%, 쓰기 30%
분석 결론
읽기 70%,
읽기를 분산하자!!!
One Write
    Master
       +
Multi Read Slave
Client
     ONLY
     WRITE             Only READ
    Master

REPLICATION
     Slave     Slave         Slave
Eventual
Consistency
Ex) Replication
        Master

   REPLICATION
   Slave에 부하가 있거나, 다른 이유로, 복제가
   느려질 수 있다. 그러나 언젠가는 같아진다.
         Slave
Login 정보 중에 잠시
라도 서로 다르면 안되
는 경우는?
Login 정보 중에 잠시
라도 서로 다르면 안되
는 경우는?
=> 다시 처음으로!!!
초반에는 행복했습니다.
Client



    Master

REPLICATION
  Slave      Slave    Slave   Slave   Slave
부하가 더 커지니!!!
Client



   Master   REPLICATION

Slave Slave Slave   Slave Slave Slave

Slave Slave Slave   Slave Slave Slave
성능 향상이 미비함!!!
    WHY?
머신의 I/O는 Zero섬
Partitioning
Scalable Partitioning
              Client


   PART 1               PART 2
 Web Server            Web Server
   DBMS                  DBMS
Paritioning
성능
Paritioning
성능
관리이슈
Paritioning
성능
관리이슈
비용
간단한 해결책
DB 서버 Disk는 SSD
메모리도 데이터보다 많이
DB 서버 Disk는 SSD
메모리도 데이터보다 많이

=> 돈돈돈!!!
Why is Cache?
Use Case: Login
Use Case: Login

      Read From Cache

Get charsyam
Use Case: Login

Apply Cache For Read
General Cache Layer
                         Storage Layer
                             Cache
   Application   READ
                                WRITE

     Server                     UPDATE


                 WRITE
                             DBMS
Type 1: 1 Key – N Items
        KEY        Value
Profile:User_ID   Profile
                  - LastLoginTime
                  - UserName
                  - Host
                  - Name
Type 2: 1 Key – 1 Item
         KEY            Value
name:User_ID
                        UserName
LastLoginTime:User_ID   LastLoginTime
Pros And Cons
Type 1: 1 Key – N Items
         Pros: Just 1 get.
Pros And Cons
Type 1: 1 Key – N Items
         Pros: Just 1 get.
         Cons: if 1 item is
         changed. Need Cache
         Update
         And Race Condition
Pros And Cons
Type 2: 1 Key – 1 Item
        Pros: if 1 item is
        changed, just change
        that item.
Pros And Cons
Type 2: 1 Key – 1 Item
        Pros: if 1 item is
        changed, just change
        that item.
        Cons: Some Items can
        be removed
변화하는 데이터
변화하지 않는 데이터
변화하는 데이터

  Divide
변화하지 않는 데이터
Don’t Try Update After didn’t Read DB

  Value
 Profile
 - LastLoginTime
 - UserName
 - Host
 - Name
Don’t Try Update After didn’t Read DB

  Value            EVENT: Update Only LastLoginTime

 Profile
 - LastLoginTime
 - UserName
 - Host
 - Name
Don’t Try Update After didn’t Read DB

  Value            EVENT: Update Only LastLoginTime

 Profile           Read Cache: User Profile
 - LastLoginTime
 - UserName
 - Host
 - Name
Don’t Try Update After didn’t Read DB

  Value            EVENT: Update Only LastLoginTime

 Profile           Read Cache: User Profile
 - LastLoginTime
 - UserName
                   Update Data & DB
 - Host
 - Name
                   Just Save Cache
Don’t Try Update After didn’t Read DB

  Value               EVENT: Update Only LastLoginTime

 Profile              Read Cache: User Profile
 - LastLoginTime
 - UserName
                      Update Data & DB
 - Host
 - Name
                      Just Save Cache


           It Makes Race Condition
Need
Global Lock
Need
   Global Lock
=> 오늘은 PASS!!!
How to Test
Using Real Data
100,000 Request
   In 25 million User ID
Reproduct From Log
Test Result
Memcache VS Mysql
    136 vs 1613
     seconds
Result of
Applying Cache
Select Query
CPU utility
균등한 속도!!!
      부하 감소!!!
What is Hard?
Key Value – SYNC Easy
            and




  Fail!!!            1. Update To DB



                  2. Fail To Transaction
Key Value – SYNC HARD
            and




                   1. Update To DB



  Fail!!!         2. Update to Cache
Key Value – How
            and




                   1. Update To DB



  Fail!!!         2. Update to Cache


 RETRY                  BATCH          DELETE
Data!
The most important thing
If data is not important
        Cache Updating is not important

              Login Count
            Last Login Time
                 ETC
BUT!
If data is important
        Cache Updating is important

             Server Address
               Data Path
                  ETC
HOW!
RETRY!
Retry, Retry, Retry
Solve Over 9x%.
Or Delete Cache!!!
Batch!
Queuing Service
Error Log
  Queue       Batch
Error Log   Processor
Error Log
Error Log               Cache
Error Log               Server
Error Log
  Queue       Batch
Error Log   Processor
Error Log   Error Log
Error Log               Cache
                        Server
Error Log
  Queue       Batch        UPDATE
Error Log   Processor
Error Log
Error Log                Cache
                         Server
                        Error Log
Caches
Memcache
           Redis
Memcache
Atomic Operation
Memcache
Atomic Operation
         Key:Value
Memcache
Atomic Operation
          Key:Value
  Single Thread
Memcache
    Processing
 Over 100,000 TPS
Memcache
 Max size of item
       1 MB
Memcache
      LRU,
   ExpireTime
Redis
Key:Value
Redis
ExpireTime
Replication
Snapshot
Redis
Key:Value
Collection
 Hash   List   Sorted Set
주의 사항
Item Size
1~XXX KB,
Item 사이즈는 적을수록
좋다.
Cache
      In
Global Service
Memcached In Facebook
• Facebook and Google and Many Companies
• Facebook
  – 하루 Login 5억명(한달에 8억명)(최신, 밑에는 작년 2010/04자료)
  – 활성 사용자 7,000만
  – 사용자 증가 비율 4일에 100만명
  – Web 서버 10,000 대, Web Request 초당 2000만번
  – Memcached 서버 805대 -> 15TB, HitRate: 95%
  – Mysq server 1,800 대 Master/Slave(각각, 900대)
     • Mem: 25TB, SQL Query 초당 50만번
Cache In Twitter(Old)
        API       WEB
     Page Cache




        DB        DB
Cache In Twitter(NEW)
          API                   WEB
       Page Cache
   Fragment Cache

                    Row Cache
            Vector Cache
  DB                DB          DB
Redis In Wonga

Using Redis for DataStore
             Write/Read
Redis In Wonga

        Flash Client
        Ruby Backend
NoCache In Wonga
1 million daily Users
200 million daily HTTP Requests
NoCache In Wonga
1 million daily Users
200 million daily HTTP Requests
100,000 DB Operation Per Sec
40,000 DB update Per Sec
NoCache In Wonga
First Scale Out
First Setting – 3 Month
More Traffic
MySQL hiccups – DB Problems Began
Analysis About DBMS
ActiveRecord’s status Check caused
20% extra DB

60% of All Updates were done
on ‘tiles’ table
Applying Sharding 2xD
Result of Applying Sharding 2xD
Doubling MySQL
Result of Doubling MySQL
50,000 TPS on EC2
Wonga Choose Redis!
But some failure




 => 오늘은 PASS!!!
Result!!!
Consistent Hashing
Origin
     K = 10000            N=5


                           Server

                           Server

   User Request   Proxy    Server

                           Server

                           Server
FAIL : Redistribution about 2000 Users
       K = 10000                  N=4


                                   Server

                                   Server

     User Request     Proxy        Server

                                   Server

                                   Server
RECOVER:          Redistribution about 2500 Users
     K = 10000                          N=5


                                         Server

                                         Server

   User Request           Proxy          Server

                                         Server

                                         Server
Add A,B,C Server
                   A
Add A,B,C Server
                   A




                       B
Add A,B,C Server
                   A




                       B




                   C
Add Item 1
             A

                 1


                     B




             C
Add Item 2
             A

                     1


                         B




                 2
             C
Add Item 3,4,5
                     A
                 3
                             1
         4


                                     B




                                 5
                         2
                     C
Fail!! B Server
                      A
                  3
          4


                                  B




                              5
                          2
                      C
Add Item 1 Again -> Allocated C Server
                      A
               3
                                 1
         4


                                         B




                                     5
                             2
                      C
Recover B Server -> Add Item 1
                     A
              3
                                 1
         4


                                         B

                                         1
                                     5
                            2
                     C
Thank You!
Real Implementation
                           A
                   C+2         C+3

           B+3                       A+1


     A+4                                   B

      B+2

             C+1                     A+2

                     B+1       A+3
                           C

Contenu connexe

Tendances

Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkAarti Parikh
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUIBongwon Lee
 
A Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityA Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityMikhail Egorov
 
DDD와 이벤트소싱
DDD와 이벤트소싱DDD와 이벤트소싱
DDD와 이벤트소싱Suhyeon Jo
 
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018Scrum Breakfast Vietnam
 
Efficient Use of indexes in MySQL
Efficient Use of indexes in MySQLEfficient Use of indexes in MySQL
Efficient Use of indexes in MySQLAleksandr Kuzminsky
 
Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1Mindfire Solutions
 
Javascript under the hood 2
Javascript under the hood 2Javascript under the hood 2
Javascript under the hood 2Thang Tran Duc
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena DollyJi-Woong Choi
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs3scale
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationKenny Gryp
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Scott Wlaschin
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architectureAnurag
 
Multi thread game server
Multi thread game serverMulti thread game server
Multi thread game serverOnGameServer
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015NAVER / MusicPlatform
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOPDzmitry Naskou
 
Build RESTful API Using Express JS
Build RESTful API Using Express JSBuild RESTful API Using Express JS
Build RESTful API Using Express JSCakra Danu Sedayu
 
Introducing Clean Architecture
Introducing Clean ArchitectureIntroducing Clean Architecture
Introducing Clean ArchitectureRoc Boronat
 

Tendances (20)

Original slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talkOriginal slides from Ryan Dahl's NodeJs intro talk
Original slides from Ryan Dahl's NodeJs intro talk
 
Swift in SwiftUI
Swift in SwiftUISwift in SwiftUI
Swift in SwiftUI
 
Scaling symfony apps
Scaling symfony appsScaling symfony apps
Scaling symfony apps
 
A Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications securityA Hacker's perspective on AEM applications security
A Hacker's perspective on AEM applications security
 
DDD와 이벤트소싱
DDD와 이벤트소싱DDD와 이벤트소싱
DDD와 이벤트소싱
 
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
Reactive programming by spring webflux - DN Scrum Breakfast - Nov 2018
 
Efficient Use of indexes in MySQL
Efficient Use of indexes in MySQLEfficient Use of indexes in MySQL
Efficient Use of indexes in MySQL
 
Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1Asynchronous Programming in C# - Part 1
Asynchronous Programming in C# - Part 1
 
Sql Antipatterns Strike Back
Sql Antipatterns Strike BackSql Antipatterns Strike Back
Sql Antipatterns Strike Back
 
Javascript under the hood 2
Javascript under the hood 2Javascript under the hood 2
Javascript under the hood 2
 
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
[오픈소스컨설팅]이기종 WAS 클러스터링 솔루션- Athena Dolly
 
API 101 - Understanding APIs
API 101 - Understanding APIsAPI 101 - Understanding APIs
API 101 - Understanding APIs
 
Java MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & OptimizationJava MySQL Connector & Connection Pool Features & Optimization
Java MySQL Connector & Connection Pool Features & Optimization
 
Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)Reinventing the Transaction Script (NDC London 2020)
Reinventing the Transaction Script (NDC London 2020)
 
Hibernate architecture
Hibernate architectureHibernate architecture
Hibernate architecture
 
Multi thread game server
Multi thread game serverMulti thread game server
Multi thread game server
 
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
 
Spring Framework - AOP
Spring Framework - AOPSpring Framework - AOP
Spring Framework - AOP
 
Build RESTful API Using Express JS
Build RESTful API Using Express JSBuild RESTful API Using Express JS
Build RESTful API Using Express JS
 
Introducing Clean Architecture
Introducing Clean ArchitectureIntroducing Clean Architecture
Introducing Clean Architecture
 

En vedette

Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략흥래 김
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기OnGameServer
 
이것이 레디스다.
이것이 레디스다.이것이 레디스다.
이것이 레디스다.Kris Jeong
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서OnGameServer
 
Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프OnGameServer
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows TerminalOnGameServer
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기OnGameServer
 
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기OnGameServer
 
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기OnGameServer
 
Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축OnGameServer
 
해외 취업 이야기
해외 취업 이야기해외 취업 이야기
해외 취업 이야기OnGameServer
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍OnGameServer
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기OnGameServer
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기OnGameServer
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기OnGameServer
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11OnGameServer
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)Sungmin Kim
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheCris Holdorph
 
Android 삽질일지
Android 삽질일지Android 삽질일지
Android 삽질일지Hyunho-Cho
 

En vedette (20)

Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략Spring 3.1에서 ehcache 활용 전략
Spring 3.1에서 ehcache 활용 전략
 
SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기SDC 3rd 안중원님 - InGame CashShop 개발 하기
SDC 3rd 안중원님 - InGame CashShop 개발 하기
 
이것이 레디스다.
이것이 레디스다.이것이 레디스다.
이것이 레디스다.
 
MinWin에 대해서
MinWin에 대해서MinWin에 대해서
MinWin에 대해서
 
Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프Windows os 상에서 효율적인 덤프
Windows os 상에서 효율적인 덤프
 
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
게임 개발에 도움을 주는 CruiseControl.NET과 Windows Terminal
 
C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기C++ 프로젝트에 단위 테스트 도입하기
C++ 프로젝트에 단위 테스트 도입하기
 
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기SDC 3rd 최흥배님 - Boost.multi_index 사용하기
SDC 3rd 최흥배님 - Boost.multi_index 사용하기
 
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
안준석님 - 안드로이드 프로세스들의 통신 메커니즘 : 바인더 이야기
 
Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축Microsoft SharePoint를 활용한 개발환경 구축
Microsoft SharePoint를 활용한 개발환경 구축
 
해외 취업 이야기
해외 취업 이야기해외 취업 이야기
해외 취업 이야기
 
IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍IPv6 이론과 소켓 프로그래밍
IPv6 이론과 소켓 프로그래밍
 
이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기이욱진님 - 메모리 관리자로부터 배우기
이욱진님 - 메모리 관리자로부터 배우기
 
Mongo db 시작하기
Mongo db 시작하기Mongo db 시작하기
Mongo db 시작하기
 
임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기임영기님 - 코드 리뷰 시스템 도입하기
임영기님 - 코드 리뷰 시스템 도입하기
 
Boost 라이브리와 C++11
Boost 라이브리와 C++11Boost 라이브리와 C++11
Boost 라이브리와 C++11
 
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
KGC 2014, 'Software Enginner in Test' in Game Development (Bluehole Studio)
 
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCacheClustering Made Easier: Using Terracotta with Hibernate and/or EHCache
Clustering Made Easier: Using Terracotta with Hibernate and/or EHCache
 
Android 삽질일지
Android 삽질일지Android 삽질일지
Android 삽질일지
 
Redis edu 2
Redis edu 2Redis edu 2
Redis edu 2
 

Similaire à 초보자를 위한 분산 캐시 이야기

Random 111203223949-phpapp02
Random 111203223949-phpapp02Random 111203223949-phpapp02
Random 111203223949-phpapp02DaeMyung Kang
 
Scaling a Web Service
Scaling a Web ServiceScaling a Web Service
Scaling a Web ServiceLeon Ho
 
Simple cache architecture
Simple cache architectureSimple cache architecture
Simple cache architectureDaeMyung Kang
 
Apply cache for beginner#1
Apply cache for beginner#1Apply cache for beginner#1
Apply cache for beginner#1DaeMyung Kang
 
Server modeling with mysql
Server modeling with mysqlServer modeling with mysql
Server modeling with mysqlDaeMyung Kang
 
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)Amazon Web Services Korea
 
Load Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesLoad Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesSeveralnines
 
Performance scalability brandonlyon
Performance scalability brandonlyonPerformance scalability brandonlyon
Performance scalability brandonlyonDigitaria
 
Sql server 2012 - always on deep dive - bob duffy
Sql server 2012 - always on deep dive - bob duffySql server 2012 - always on deep dive - bob duffy
Sql server 2012 - always on deep dive - bob duffyAnuradha
 
"Intro to Stateful Services or How to get 1 million RPS from a single node", ...
"Intro to Stateful Services or How to get 1 million RPS from a single node", ..."Intro to Stateful Services or How to get 1 million RPS from a single node", ...
"Intro to Stateful Services or How to get 1 million RPS from a single node", ...Fwdays
 
MongoDB.local Sydney: MongoDB Atlas for Your Enterprise
MongoDB.local Sydney: MongoDB Atlas for Your EnterpriseMongoDB.local Sydney: MongoDB Atlas for Your Enterprise
MongoDB.local Sydney: MongoDB Atlas for Your EnterpriseMongoDB
 
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...SQLExpert.pl
 
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...StreamNative
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsGavin Roy
 
Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster WebsiteRayed Alrashed
 
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...Amazon Web Services
 
Scale Fail: How I Learned to Love the Downtime
Scale Fail: How I Learned to Love the DowntimeScale Fail: How I Learned to Love the Downtime
Scale Fail: How I Learned to Love the DowntimePostgreSQL Experts, Inc.
 
Scaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersScaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersAmazon Web Services
 

Similaire à 초보자를 위한 분산 캐시 이야기 (20)

Random 111203223949-phpapp02
Random 111203223949-phpapp02Random 111203223949-phpapp02
Random 111203223949-phpapp02
 
Scaling a Web Service
Scaling a Web ServiceScaling a Web Service
Scaling a Web Service
 
Simple cache architecture
Simple cache architectureSimple cache architecture
Simple cache architecture
 
Apply cache for beginner#1
Apply cache for beginner#1Apply cache for beginner#1
Apply cache for beginner#1
 
Server modeling with mysql
Server modeling with mysqlServer modeling with mysql
Server modeling with mysql
 
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
AWS CLOUD 2018- Amazon DynamoDB기반 글로벌 서비스 개발 방법 (김준형 솔루션즈 아키텍트)
 
Load Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - SlidesLoad Balancing MySQL with HAProxy - Slides
Load Balancing MySQL with HAProxy - Slides
 
Performance scalability brandonlyon
Performance scalability brandonlyonPerformance scalability brandonlyon
Performance scalability brandonlyon
 
Sql server 2012 - always on deep dive - bob duffy
Sql server 2012 - always on deep dive - bob duffySql server 2012 - always on deep dive - bob duffy
Sql server 2012 - always on deep dive - bob duffy
 
"Intro to Stateful Services or How to get 1 million RPS from a single node", ...
"Intro to Stateful Services or How to get 1 million RPS from a single node", ..."Intro to Stateful Services or How to get 1 million RPS from a single node", ...
"Intro to Stateful Services or How to get 1 million RPS from a single node", ...
 
MongoDB.local Sydney: MongoDB Atlas for Your Enterprise
MongoDB.local Sydney: MongoDB Atlas for Your EnterpriseMongoDB.local Sydney: MongoDB Atlas for Your Enterprise
MongoDB.local Sydney: MongoDB Atlas for Your Enterprise
 
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
Always On - Wydajność i bezpieczeństwo naszych danych - High Availability SQL...
 
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...
Take Kafka-on-Pulsar to Production at Internet Scale: Improvements Made for P...
 
MySQL Replication
MySQL ReplicationMySQL Replication
MySQL Replication
 
Scaling PostgreSQL with Skytools
Scaling PostgreSQL with SkytoolsScaling PostgreSQL with Skytools
Scaling PostgreSQL with Skytools
 
Tips for a Faster Website
Tips for a Faster WebsiteTips for a Faster Website
Tips for a Faster Website
 
When the connection fails
When the connection failsWhen the connection fails
When the connection fails
 
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...
AWS APAC Webinar Week - AWS MySQL Relational Database Services Best Practices...
 
Scale Fail: How I Learned to Love the Downtime
Scale Fail: How I Learned to Love the DowntimeScale Fail: How I Learned to Love the Downtime
Scale Fail: How I Learned to Love the Downtime
 
Scaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million UsersScaling Up to Your First 10 Million Users
Scaling Up to Your First 10 Million Users
 

Dernier

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024The Digital Insurer
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processorsdebabhi2
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...Neo4j
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 

Dernier (20)

GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...Workshop - Best of Both Worlds_ Combine  KG and Vector search for  enhanced R...
Workshop - Best of Both Worlds_ Combine KG and Vector search for enhanced R...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 

초보자를 위한 분산 캐시 이야기