Using Arduino as a front end to detect temperature as a streaming data goining MQTT and through Spark streaming for a near realtime process back to mysql database.
Also provide another Arduino lighting on if the counting measure is over than threshold for a realtime experiment case.
(Presentation at COSCUP 2012) Discuss why you should try to develop your own operating system and how you can speed up by taking the microkernel approach.
数据库内核分享,第一期“Buffer Pool Implementation InnoDB vs Oracle”的完整PPT,详细介绍了Buffer Pool在InnoDB与Oracle的实现,以及二者实现的不同之处。对朋友们理解两个数据库如何管理内存,有较大的帮助!注:此版本,彭立勋 同学做了部分注释,相对更易理解,谢谢立勋!
Using Arduino as a front end to detect temperature as a streaming data goining MQTT and through Spark streaming for a near realtime process back to mysql database.
Also provide another Arduino lighting on if the counting measure is over than threshold for a realtime experiment case.
(Presentation at COSCUP 2012) Discuss why you should try to develop your own operating system and how you can speed up by taking the microkernel approach.
数据库内核分享,第一期“Buffer Pool Implementation InnoDB vs Oracle”的完整PPT,详细介绍了Buffer Pool在InnoDB与Oracle的实现,以及二者实现的不同之处。对朋友们理解两个数据库如何管理内存,有较大的帮助!注:此版本,彭立勋 同学做了部分注释,相对更易理解,谢谢立勋!
In the last year, we've gone from millions of pieces of data to billions of pieces of data. I will speak on a solution for scaling up and about the challenges presented. Also covered will be the future of data at Qihoo 360 with MongoDB.
21. Internet
store.farm
App
SCGI MySQL
Master
Lighttpd Memcache Replicate
store.farmr
HTTP Proxy
WebDAV Web Service
Replicate
Lighttpd
(w/ mod_memcache)
MySQL write
Spiders Slave
Lighttpd
WebDAV
Memcache
Static Files
!"#$%
read
Data
Mining
MySQL
Slave
Monday, March 23,
22. 只读数据库
• store增加farmr属性,为一个可用的只读数据库游标
• 头疼的replicate delay问题
• 辅库复制需要时间
• 更新主库后,下一个请求往往就是要读数据(更新数据后刷
新页面)
• 从辅库读会导致cache里存放的是旧数据
• 灵异事件!
• 解决方法:更新数据库后,在预期可能会马上用到的情况下,主
动刷新缓存
• ......不完美,but it works
Monday, March 23,
23. 避免replicate delay引
起的灵异事件
def get_subject(sid):
sbj = mc.get(‘s:’+sid)
if sbj is None:
sbj = flush_subject(sid, store.farmr)
return sbj
def flush_subject(sid, cursor=None):
cursor = cursor or store.farm
cursor.execute(“select ... from subject”)
subject = Subject(*cursor.fetchone())
mc.set(‘s:’+sid, subject)
return subject
def update_subject(subject, props):
store.farm.execute(“update subject ...”)
store.farm.connection.commit()
flush_subject(subject.id, store.farm)
Monday, March 23,
26. Internet
Sphinx
MySQL
Web Service store.farm Master
Replicate
Lighttpd
SCGI
HTTP Proxy App
Memcache
Lighttpd
(w/ mod_memcache) WebDAV
store.farmr
Memcache
Lighttpd
Web Service
WebDAV
Static Files MySQL
Slave
Spiders
Memcache
Memcache
Monday, March 23,
46. Internet
upload.douban.com otho.douban.com
signed POST form Lighttpd 1.5
Uploader
(w/ mod_cache)
HTTP redirect
FileStorage
Gateway
App
DoubanFS DoubanFS
Node Node
Monday, March 23,