唯快不破的秘密
|
2020年是物联网浪潮奔涌的一年,5G+IoT的爆发迎来诸多智能商业场景的落地。在这其中,操作系统作为物联网的「大脑」发挥了不可或缺的作用。 物联网操作系统是新一代信息技术的重要组成部分。其英文名称是IoT(Internet of Things),顾名思义,「物联网就是万物相连的互联网」。与传统的个人计算机或个人智能终端(智能手机、平板电脑等)上的操作系统不同,物联网操作系统有其独特的特征。这些特征是为了更好的服务物联网应用而存在的,运行物联网操作系统的终端设备,能够与物联网的其它层次结合的更加紧密,数据共享更加顺畅,能够大大提升物联网的生产效率。 在本文中,我们特地盘点、汇总了2020年最受关注的十大物联网操作系统,一起来认识下都有哪些? Andorid Things
Android Things是Google推出的平台,旨在帮助Android开发者打造物联网设备。这个平台还支持强大的应用,例如视频与音频处理以及通过TensorFlow进行板载机器学习。它继承Brillo的功能外,还增加了Android API和Google服务的支持,以及一些Android Things的支持库。 首先,更新数据还是会判断数据是否存在于Buffer Pool中,不存在则加载。上面我们提到了回滚的问题,在更新Buffer Pool中的数据之前,我们需要先将该数据事务开始之前的状态写入Undo Log中。假设更新到一半出错了,我们就可以通过Undo Log来回滚到事务开始前。
然后执行器会更新Buffer Pool中的数据,成功更新后会将数据最新状态写入Redo Log Buffer中。因为一个事务中可能涉及到多次读写操作,写入Buffer中分组写入,比起一条条的写入磁盘文件,效率会高很多。 这个过程看似没啥问题,实则不讲武德。假设我们修改Buffer Pool中的数据成功,但是还没来得及将数据刷入磁盘MySQL就挂了怎么办?按照上图的逻辑,此时更新之后的数据只存在于Buffer Pool中,如果此时MySQL宕机了,这部分数据将会永久的丢失; 再者,我更新到一半突然发生错误了,想要回滚到更新之前的版本,该怎么办?那不完犊子吗,连数据持久化的保证、事务回滚都做不到还谈什么崩溃恢复? Redo Log & Undo Log 而通过MySQL能够实现崩溃恢复的事实来看,MySQL必定实现了某些骚操作。没错,这就是接下来我们要介绍的另外的两个关键功能,Redo Log和Undo Log。 这两种日志是属于InnoDB存储引擎的日志,和MySQL Server的Binlog不是一个维度的日志。 Redo Log 记录了此次事务「完成后」的数据状态,记录的是更新之「后」的值 Undo Log 记录了此次事务「开始前」的数据状态,记录的是更新之「前」的值 所以这两种日志有明显的区别,我用一种更加通俗的例子来解释一下这两种日志。 Redo Log就像你在命令行敲了很长的命令,敲回车执行,结果报错了。此时我们只需要再敲个↑就会拿到上一条命令,再执行一遍即可。 Undo Log就像你刚刚在Git中Commit了一下,然后再做一个较为复杂的改动,但是改着改着你的心态崩了,不想要刚刚的改动了,于是直接git reset --hard $lastCommitId回到了上一个版本。 实现日志后的更新流程
有了Redo Log和Undo Log,我们再将上面的那张图给完善一下。 (编辑:阳江站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

