Bolt: Data management for connected homes Trinabh ¡Gupta*, ¡Rayman ¡Preet ¡Singh† ¡ Amar ¡Phanishayee, ¡Jaeyeon ¡Jung, ¡Ratul ¡Mahajan ¡ ¡ *The ¡University ¡of ¡Texas ¡at ¡AusBn ¡ †University ¡of ¡Waterloo ¡ MicrosoE ¡Research ¡
Number of sensors, smart devices is growing In ¡2008, ¡number ¡of ¡sensors ¡exceeded ¡people ¡ ¡ Sensors ¡in ¡commercial ¡spaces ¡ In ¡2020, ¡50 ¡billion ¡sensors. ¡ Wearables ¡and ¡Personal ¡ ¡ hMp://share.cisco.com/internet-‑of-‑things.html ¡ devices ¡ In ¡2017, ¡90 ¡million ¡homes ¡with ¡automaBon ¡ ¡ hMps://www.abiresearch.com/press/90-‑million-‑homes-‑worldwide-‑will-‑employ-‑home-‑automa ¡ Sensors ¡and ¡devices ¡for ¡ ¡ AutomoBve ¡sensors ¡ home ¡automaBon ¡
Need ¡a ¡ new ¡data ¡management ¡system ¡for ¡ connected ¡homes ¡ Energy ¡Data ¡ Neighborhood ¡ PreHeat ¡ DigiSwitch ¡ AnalyBcs ¡ Watch ¡ [Ubicomp ¡2011] ¡ [Medical ¡Systems ¡ [CSCW ¡2013] ¡ 2011] ¡ [Energy ¡and ¡ Building ¡2012] ¡ Apps ¡ HomeOS ¡ Mi ¡Casa ¡Verde ¡ Pla3orms ¡ Devices ¡and ¡ sensors ¡ for ¡the ¡home ¡
Applications generate time-series data and retrieve based on time windows Slot ¡1 ¡ Day ¡1 ¡ Slot ¡2 ¡ IdenBfy ¡days ¡with ¡ . ¡. ¡. ¡ PreHeat ¡ Slot ¡96 ¡ closest ¡occupancy ¡ paMern ¡( least ¡ Slot ¡1 ¡ Occupancy ¡ hamming ¡distance ) ¡ Day ¡2 ¡ Slot ¡2 ¡ Sensors ¡ . ¡. ¡. ¡ to ¡predict ¡future ¡ Slot ¡96 ¡ slot ¡ Slot ¡1 ¡ Day ¡3 ¡ Slot ¡2 ¡ ? ¡ Thermostat ¡ Requirement: ¡Support ¡Bme-‑series ¡data ¡
Applications access data from multiple homes Time ¡ AMributes ¡ Value ¡ Energy ¡Data ¡ Mon, ¡1 ¡AM ¡ Temp ¡= ¡20°C ¡ 0.9 ¡ AnalyBcs ¡ Mon, ¡2 ¡AM ¡ Temp ¡= ¡20°C ¡ 1.1 ¡ Run ¡by ¡uBlity ¡company ¡ Mon, ¡3 ¡AM ¡ Temp ¡= ¡22°C ¡ 1.2 ¡ Energy ¡ ¡ Meter ¡ Mon, ¡4 ¡AM ¡ Temp ¡= ¡22°C ¡ 1.2 ¡ Data ¡from ¡ Perform ¡ neighboring ¡ Analyze ¡and ¡compare ¡ analysis ¡even ¡ energy ¡meters ¡ energy ¡usage ¡ when ¡homes ¡ Avg. ¡for ¡this ¡home ¡ are ¡offline ¡ Avg. ¡of ¡neighboring ¡homes ¡ Requirement: ¡Leverage ¡cloud ¡servers ¡for ¡availability ¡
Applications share sensitive home data Time ¡ AMributes ¡ Value ¡ Sun, ¡11 ¡AM ¡ humans ¡ Mon, ¡1 ¡PM ¡ animal ¡ Perform ¡image ¡ Tue, ¡3 ¡PM ¡ car, ¡red ¡ DNW ¡ similarity ¡matching ¡ Seen ¡a ¡car ¡in ¡the ¡last ¡24 ¡hours? ¡ Neighbor ¡ Neighbor ¡ Requirement: ¡Ensure ¡confidenBality, ¡integrity ¡
Recap of data management requirements • Support ¡Bme-‑series ¡data ¡with ¡efficient ¡Bme ¡and ¡ tags ¡based ¡retrieval ¡ • Leverage ¡reliable ¡and ¡available ¡cloud ¡storage ¡to ¡ facilitate ¡sharing ¡ • Ensure ¡data ¡confidenBality ¡and ¡integrity ¡
Existing systems are not suitable App ¡ Query ¡(start-‑Bme, ¡end-‑Bme, ¡…) ¡ Time ¡series ¡data ¡processing ¡[OpenTSDB] ¡ • Do ¡not ¡maintain ¡confiden8ality ¡or ¡integrity ¡of ¡data ¡ ¡ Exposes ¡ ¡ App ¡ key-‑value ¡API ¡ Secure ¡systems ¡using ¡untrusted ¡storage ¡ ¡ [SUNDR ¡04, ¡Depot ¡10, ¡SPORC ¡10] ¡ • Do ¡not ¡support ¡8me-‑series ¡data ¡
Outline • ApplicaBons ¡requirements ¡and ¡moBvaBon ¡ • Design ¡of ¡Bolt ¡ • Key ¡mechanisms ¡to ¡support ¡requirements ¡ • EvaluaBon ¡ • Feasibility ¡of ¡using ¡Bolt ¡for ¡three ¡applicaBons ¡
Recall the data management requirements of apps for connected homes Support ¡ Leverage ¡ Ensure ¡data ¡ Bme-‑series, ¡ cloud ¡ confidenBality, ¡ tagged ¡data ¡ storage ¡ integrity ¡ How can we address these requirements simultaneously?
Straw man: Store data in a cloud DB App ¡ DB ¡ Query ¡(start-‑Bme, ¡end-‑Bme, ¡…) ¡ • Cloud ¡untrusted ¡for ¡data ¡confidenBality ¡and ¡integrity ¡ • Cloud ¡untrusted ¡for ¡computaBons ¡ (e.g., ¡hamming ¡distance, ¡image ¡similarity) ¡ Design ¡guidelines: ¡ 1. End-‑points ¡perform: ¡encryp8on/decryp8on, ¡data ¡ integrity ¡checking, ¡query ¡evalua8on ¡ 2. ¡ ¡Use ¡cloud ¡providers ¡for ¡(just) ¡storage ¡
Straw man: Using secure key-value datastores Record ¡1 ¡ App ¡ Record ¡2 ¡ Block ¡store ¡ (key-‑value ¡API) ¡ Record ¡3 ¡ Record ¡4 ¡ Logic ¡for ¡security ¡ [SUNDR ¡04, ¡Depot ¡10, ¡SPORC ¡10] ¡ Data ¡records ¡ • Need ¡support ¡for ¡temporal ¡queries. ¡ • High ¡per-‑data-‑record ¡overhead. ¡ • EncrypBon/decrypBon, ¡integrity ¡metadata ¡/ ¡checks ¡ • Remote ¡storage ¡calls ¡and ¡transfers ¡ • Individual ¡data ¡records ¡do ¡not ¡compress ¡well. ¡ Design ¡guideline: ¡Batch ¡con8guous ¡data ¡records, ¡leverage ¡ workload ¡query ¡paKern ¡
Overview of Bolt • Stream ¡(append-‑only) ¡abstracBon ¡ • Records: ¡<Bmestamp, ¡[tag], ¡value> ¡ • Query ¡(start-‑Bme, ¡end-‑Bme, ¡tag) ¡ • Leverage ¡cloud ¡storage ¡ • Cloud ¡resources ¡untrusted ¡for ¡compute ¡and ¡storage ¡ • No ¡cloud ¡query ¡engine ¡with ¡computaBon ¡at ¡endpoints ¡ • Security ¡and ¡privacy ¡guarantees ¡ • ConfidenBality, ¡Tamper ¡evidence, ¡Freshness ¡
Bolt Stream: Index + Log of <ts, tag, val> ts1, ¡tag1, ¡val ¡ ts2, ¡tag1, ¡val ¡ ts3, ¡tag2, ¡val ¡ App ¡ ts4, ¡tag1, ¡val ¡ ts5, ¡tag2, ¡val ¡ ts6, ¡tag2, ¡val ¡ t7, ¡tag1, ¡val ¡ ts8, ¡tag1, ¡val ¡ Stream ¡Log ¡(Disk) ¡ tag1 ¡ ts1, ¡O1 ¡ ts2, ¡O2 ¡ ts4, ¡O4 ¡ ts7, ¡O7 ¡ ts8, ¡O8 ¡ tag2 ¡ ts3, ¡O3 ¡ ts5, ¡O5 ¡ ts6, ¡O6 ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Tag ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Offsets ¡Sorted ¡by ¡8me ¡ ¡ ¡ ¡ ¡ ¡ ¡ Stream ¡Index ¡(In ¡memory, ¡Disk ¡backed) ¡
Batching data for efficiency ts, ¡tag, ¡val ¡ Remote ¡Log ¡ ¡ Hash1 ¡ Chunk ¡1 ¡ Compressed ¡ Metadata ¡ ts, ¡tag, ¡val ¡ Encrypted ¡ & ¡Index ¡ data ¡ ts, ¡tag, ¡val ¡ Chunk ¡1 ¡ Compressed ¡ Signed ¡ Encrypted ¡ App ¡ Hash ¡ ts, ¡tag, ¡val ¡ Hash2 ¡ Chunk ¡2 ¡ data ¡ Compressed ¡ of ¡ ts, ¡tag, ¡val ¡ Encrypted ¡ Hash1, ¡ Chunk ¡2 ¡ data ¡ Compressed ¡ Hash2, ¡ ts, ¡tag, ¡val ¡ Encrypted ¡ Hash3 ¡ Hash3 ¡ Chunk ¡3 ¡ data ¡ & ¡ ts, ¡tag, ¡val ¡ Compressed ¡ Index ¡ Encrypted ¡ Chunk ¡3 ¡ Compressed ¡ ts, ¡tag, ¡val ¡ Hash ¡ Encrypted ¡ ¡ Stream ¡Log ¡and ¡Index ¡ data ¡ Index ¡ Hash ¡ Index ¡ Encrypted ¡Index ¡ Encrypted ¡Index ¡ Improves ¡storage ¡and ¡transfer ¡efficiency. ¡ AmorBzes ¡cost ¡of ¡compression, ¡encrypBon, ¡and ¡hashing ¡
Reads use the index to download chunks App ¡ Encrypted ¡Index ¡ Query ¡(3 ¡AM ¡to ¡5AM, ¡Temp ¡= ¡22) ¡ Chunk ¡1 ¡ Compressed ¡ Temp ¡= ¡22 ¡ 1AM, ¡O1 ¡ 3AM, ¡O3 ¡ 4AM, ¡O4 ¡ Encrypted ¡ data ¡ Temp ¡= ¡24 ¡ 2AM, ¡O2 ¡ 5AM, ¡O5 ¡ Chunk ¡2 ¡ Compressed ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Tag ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡ ¡Offsets ¡Sorted ¡by ¡8me ¡ Encrypted ¡ ¡ ¡Index ¡opBmized ¡to ¡lookup ¡tags, ¡Bmestamps ¡ ¡ ¡ ¡ ¡ ¡ ¡ data ¡ Chunk ¡3 ¡ Compressed ¡ Encrypted ¡ data ¡ Compressed ¡ Compressed ¡ Stream ¡Log ¡ Encrypted ¡ Encrypted ¡ Chunk ¡2 ¡ Chunk ¡3 ¡ Lookups ¡and ¡computaBon ¡are ¡performed ¡locally ¡at ¡home ¡
Batching and prefetching on reads App ¡ Chunk ¡1 ¡ Compressed ¡ Encrypted ¡ data ¡ Query ¡paMerns ¡ • Fixed ¡Window ¡ Chunk ¡2 ¡ Compressed ¡ • Sliding ¡Window ¡ Encrypted ¡ data ¡ • Growing ¡Window ¡ Chunk ¡3 ¡ Compressed ¡ Encrypted ¡ data ¡ Stream ¡Log ¡ ¡ ¡Reduces ¡number ¡of ¡remote ¡calls, ¡ pre-‑fetches ¡data ¡for ¡subsequent ¡queries. ¡
Recommend
More recommend