Gathers recommended contents from services Learning users preferences & use them to make the next selection Select best ones of the many contents Key function
Data Modeling Type Data format Distribution Key Targeting Redis {User-A}:Service x => Item-A ID, Item-B ID, … {User-A}:Service Y => Item-X ID, Item-Y ID, … {User-B}:Service X => Item-C ID, Item-D, … User ID
Data Modeling Type Data format Distribution Key Targeting Redis {User-A}:Service x => Item-A ID, Item-B ID, … {User-A}:Service Y => Item-X ID, Item-Y ID, … {User-B}:Service X => Item-C ID, Item-D, … User ID Information Redis Item ID
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Item F ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Item F ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Item D ID Item C ID Item F ID Item e ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Fetch Information Process Hypothesis - 1 Fetch Target Process Targeting Redis Item a ID Item B ID Item D ID Item C ID Item F ID Item e ID Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Lettuce (mget)
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Fetch Information Process Hypothesis - 2 Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Problem & Solution # Issue Problem 1 Burst of MGET command • Recommend items increased • Need access to multiple Redis nodes to retrieve information 2 Concentration of Targeting • There is content recommended by many people • Concentration of access to specific node
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D Caffeine Cache time: 5s Eviction: size-based X Y Z
Solution2 - Concentration of Targeting Information Redis Node 1 Node 3 Node 2 Item A Item B Item C Item D Item E Item F Targeting Item a ID Item B ID Item a ID Item F ID Item D ID Item B ID Cache (size=4) Item A Item B Item F Item D Caffeine Cache time: 5s Eviction: size-based X Y Z
Prioritized Delivery Fetch Information Information Fetch Targeting Ranking Prioritized Contents Information Disaster information threshold Japanese earthquake scale >= 6
Prioritized Delivery Fetch Information Information Fetch Targeting Ranking Prioritized Contents Information Disaster information threshold Japanese earthquake scale >= 6 10/7 earthquake scale = 5+
In the design - Be prepared for errors in assumptions and unexpected behavior that can be easily controlled - Define system requirements for the system in numerical terms
In the design - Be prepared for errors in assumptions and unexpected behavior that can be easily controlled - The growth of the service sometimes be a problem. And it usually comes just when you’ve forgotten about it. - Define system requirements for the system in numerical terms
In the trouble - We have to make hypotheses and test them one by one. - The evolution of technology bring us another difficulty. There is no silver bullet yet. - Logs and metrics are very important. If they are missing, add them as needed.