Feed ¡Following ¡ CompSci ¡590.03 ¡ Instructor: ¡Ashwin ¡Machanavajjhala ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 1 ¡
Feed ¡Following ¡ consumers ¡ producers ¡ Yahoo!: ¡over ¡650 ¡million ¡users ¡ carl ¡ carl ¡ TwiAer: ¡Lady ¡Gaga ¡has ¡over ¡10 ¡ doris ¡ doris ¡ million ¡followers ¡ eric ¡ eric ¡ Facebook: ¡over ¡500 ¡million ¡ users, ¡average ¡of ¡130 ¡friends ¡per ¡ user ¡ frances ¡ frances ¡ george ¡ george ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 2 ¡
Feed ¡Following ¡Architecture ¡ ? ¡ queries ¡ connecEons, ¡events ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 3 ¡
Feed ¡Queries ¡ • Each ¡user ¡may ¡ask ¡queries ¡related ¡to ¡the ¡events ¡generated ¡by ¡the ¡ producers ¡they ¡follow ¡ ¡ – Recent ¡events ¡are ¡more ¡important ¡than ¡older ¡ones ¡ – Collect ¡events ¡from ¡all ¡or ¡subset ¡of ¡producers ¡ – Filter ¡events ¡based ¡on ¡category ¡ • K ¡most ¡recent ¡events ¡(based ¡on ¡criterion ¡q) ¡generated ¡by ¡ producers ¡that ¡the ¡consumers ¡follow ¡ • Queries ¡may ¡be ¡posed ¡by ¡users, ¡or ¡posed ¡on ¡behalf ¡of ¡them ¡by ¡ websites ¡ ¡ – When ¡reading ¡a ¡new ¡arOcle, ¡Google/Yahoo ¡retrieves ¡the ¡latest ¡k ¡tweets ¡ that ¡the ¡user ¡is ¡following ¡related ¡to ¡this ¡arOcle. ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 4 ¡
Constraints ¡ • Latency: ¡Most ¡queries ¡must ¡be ¡answered ¡very ¡quickly. ¡ ¡ • Freshness: ¡Ideally ¡a ¡user ¡would ¡like ¡the ¡answer ¡to ¡their ¡query ¡to ¡ reflect ¡the ¡current ¡state ¡of ¡events ¡generated ¡by ¡the ¡producer. ¡ – But ¡event ¡processing ¡is ¡not ¡instantaneous ¡ • Relaxed ¡Freshness: ¡e.g., ¡Answers ¡may ¡miss ¡events ¡that ¡were ¡ generated ¡in ¡the ¡last ¡few ¡seconds. ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 5 ¡
Constraints ¡ • Time ¡ordered: ¡If ¡e1 ¡was ¡generated ¡before ¡e2, ¡them ¡e1 ¡precedes ¡ e2 ¡in ¡the ¡output. ¡ ¡ • Gapless: ¡Suppose ¡e1, ¡e2 ¡and ¡e3 ¡were ¡all ¡generated ¡by ¡the ¡same ¡ producer, ¡and ¡they ¡all ¡saOsfy ¡the ¡query. ¡If ¡e1 ¡and ¡e3 ¡are ¡output, ¡ then ¡e2 ¡should ¡also ¡be ¡output. ¡ ¡ ¡ ¡ • No ¡duplicates ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 6 ¡
Formalizing ¡Feed ¡Following ¡ • Feed ¡Query: ¡ K ¡most ¡recent ¡events ¡(based ¡on ¡criterion ¡q) ¡ generated ¡by ¡producers ¡that ¡the ¡consumers ¡follow ¡ – E.g., ¡latest ¡K ¡events. ¡ – E.g., ¡latest ¡K ¡events ¡related ¡to ¡sports. ¡ ¡ • Performance ¡Constraints ¡(SLAs): ¡ ¡ – Latency: ¡p L % ¡of ¡queries ¡must ¡be ¡answered ¡in ¡less ¡than ¡t L ¡Ome. ¡ ¡ – Freshness: ¡p F ¡% ¡of ¡the ¡queries ¡must ¡return ¡a ¡feed ¡that ¡was ¡up-‑to-‑date ¡in ¡ the ¡last ¡t F ¡Ome ¡units. ¡ • Minimize ¡Cost(s): ¡ ¡ ¡ – Possible ¡bo_lenecks: ¡CPU, ¡communicaOon, ¡memory ¡footprint ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 7 ¡
Push ¡vs ¡Pull ¡ ¡ • Pull: ¡on ¡receiving ¡a ¡customer ¡query, ¡pull ¡events ¡from ¡each ¡ producer ¡that ¡saOsfy ¡the ¡query, ¡and ¡construct ¡the ¡query ¡answer. ¡ • Push: ¡ ¡ConOnuously ¡keep ¡track ¡of ¡the ¡consumer ¡feed ¡(answer). ¡ When ¡a ¡producer ¡generates ¡a ¡new ¡event, ¡push ¡it ¡to ¡the ¡ consumers ¡who ¡follow ¡the ¡producer ¡and ¡update ¡their ¡feeds. ¡ • Which ¡is ¡beAer? ¡ ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 8 ¡
Push ¡vs ¡Pull ¡ • Bob ¡follows ¡Alice ¡ • If ¡Alice ¡creates ¡an ¡event ¡once ¡a ¡day, ¡but ¡Bob ¡queries ¡for ¡events ¡ every ¡5 ¡minutes ¡ – Push ¡> ¡Pull ¡ • If ¡Alice ¡generated ¡events ¡every ¡second, ¡but ¡Bob ¡queries ¡once ¡a ¡ day ¡ – Pull ¡> ¡Push ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 9 ¡
Cost ¡model ¡ • H: ¡cost ¡of ¡pushing ¡an ¡event ¡to ¡a ¡consumer’s ¡feed ¡ ¡ • Push ¡model: ¡ ¡ Pay ¡a ¡cost ¡of ¡H ¡for ¡every ¡event ¡that ¡is ¡generated ¡in ¡the ¡system. ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 10 ¡
Cost ¡model ¡ • Suppose ¡the ¡query ¡is ¡“K ¡most ¡recent ¡events” ¡ • Lj: ¡cost ¡of ¡pulling ¡from ¡a ¡producer ¡j ¡ • Pull ¡model: ¡ ¡ Cost ¡depends ¡on ¡the ¡rate ¡at ¡which ¡events ¡are ¡produced ¡and ¡ queries ¡are ¡generated. ¡Cost ¡of ¡pulling ¡an ¡event ¡from ¡producer ¡p j ¡ for ¡customer ¡c i : ¡ ¡ � L j φ c i / φ p j Producer ¡rate ¡ Query ¡rate ¡for ¡ p j ∈ F i consumer ¡ci ¡ Producers ¡ followed ¡by ¡ci ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 11 ¡
MinCost ¡ • Policy ¡that ¡minimizes ¡cost ¡for ¡handling ¡events ¡generated ¡by ¡ producer ¡pj ¡for ¡consumer ¡ci: ¡ ¡ � If φ c i / > = H/L j , push for all events by p j φ p j p j ∈ F i � If φ c i / < H/L j , pull for all events by p j φ p j p j ∈ F i • Decision ¡is ¡made ¡on ¡a ¡per-‑edge ¡basis ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 12 ¡
Latency ¡Constrained ¡Problem ¡ • Pull ¡strategy ¡may ¡reduce ¡cost, ¡but ¡increases ¡query ¡latency. ¡ ¡ • If ¡pL% ¡of ¡the ¡queries ¡are ¡required ¡to ¡have ¡low ¡latency, ¡then ¡one ¡ may ¡need ¡to ¡change ¡some ¡of ¡the ¡edges ¡from ¡Pull ¡to ¡Push. ¡ • Equivalent ¡to ¡a ¡Knapsack ¡problem. ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 13 ¡
Summary ¡ Push ¡vs ¡Pull ¡ • If ¡a ¡consumer ¡queries ¡the ¡system ¡more ¡ojen ¡than ¡its ¡producer ¡ create ¡updates, ¡then ¡ use ¡Push ¡ • If ¡a ¡producer ¡creates ¡updates ¡more ¡ojen ¡than ¡queries ¡from ¡a ¡ consumer, ¡then ¡ use ¡Pull ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 14 ¡
OPEN ¡RESEARCH ¡PROBLEMS ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 15 ¡
Open ¡QuesOons ¡ • View ¡SelecOon: ¡ – which ¡views ¡to ¡materialize ¡ ¡ • View ¡Scheduling: ¡ – when ¡to ¡build ¡views, ¡when ¡to ¡incrementally ¡maintain ¡and ¡when ¡to ¡ expire ¡views ¡ • View ¡Placement: ¡ – OpOmally ¡place ¡views ¡in ¡a ¡distributed ¡semng ¡ • Access ¡control ¡and ¡fine ¡grained ¡queries ¡ • Handling ¡Changes ¡in ¡the ¡ConnecOons ¡graphs ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 16 ¡
Materialized ¡views ¡for ¡Feed ¡Following ¡ • Push ¡can ¡be ¡thought ¡of ¡as: ¡ Maintain ¡a ¡view ¡for ¡every ¡consumer ¡which ¡contains ¡the ¡answer ¡to ¡ the ¡consumer ¡query. ¡ On ¡every ¡new ¡event, ¡push ¡ensures ¡these ¡views ¡are ¡up-‑to-‑date ¡ • Pull ¡can ¡be ¡thought ¡of ¡as: ¡ ¡ Maintain ¡a ¡view ¡for ¡each ¡producer ¡(e.g., ¡containing ¡their ¡latest ¡k ¡ events). ¡ When ¡a ¡new ¡query ¡comes, ¡pull ¡answers ¡the ¡consumer ¡query ¡ using ¡the ¡views. ¡ ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 17 ¡
View ¡SelecOon ¡ Which ¡type ¡of ¡views ¡should ¡be ¡materialized? ¡ ¡ OpOmizaOon ¡Criterion: ¡ • Update : ¡Cost ¡of ¡maintaining ¡views ¡when ¡a ¡new ¡event ¡enters ¡the ¡ system ¡ • Query : ¡Cost ¡of ¡generaOng ¡a ¡user ¡feed ¡from ¡views ¡ • Memory ¡footprint : ¡Total ¡size ¡of ¡all ¡views ¡ Lecture ¡16 ¡: ¡590.02 ¡Spring ¡13 ¡ 18 ¡
Recommend
More recommend