一种在安卓系统上实现存储加速的方法
技术领域
本发明涉及数据存储
技术领域
,特别涉及一种在安卓系统上实现存储加速的方法。背景技术
随着云手机应用领域的不断扩展,用户对云手机的使用体验要求越来越高,特别是对云手机的存储性能要求几乎超过了实体手机的需求,由于用户的办公及生活甚至连娱乐活动都或多或少的开始从传统的实体手机搬至了云手机上,因此来自方方面面的数据存储需求不仅对存储的容量空间有要求,甚至在某些高I/Ops等游戏需求方面也丝毫没有降低,而这些需求给传统的云手机存储方案带来了沉重的负担。
用户对于存储容量的需求,云手机拥有天然的优势,他可以通过网络连接到外部存储池,同时可以根据用户对存储数据的需求提供定制化的配置方案,而对于某些需要高I/Ops的应用需求,此时网络存储的劣势就明显的显现出来了,而如何有效的发挥传统存储的优势的同时,又能最大限度的弥补其不足,因此我们需要在现有的传统方案的基础上扬长避短充分发挥存储的优势,来满足用户的需求。
发明内容
针对现有技术存在的问题,本发明提供一种在安卓系统上实现存储加速的方法;通过将本地flash存储和网络挂载块存储设备进行组合,提升应用运行时的数据存储性能。
为实现上述目的,本发明的具体方案如下:
本发明提供一种在安卓系统上实现存储加速的方法,包括以下步骤:
S1,将本地flash存储和通过网络方式挂载的块存储设备进行组合,形成组合存储设备;S2,通过组合存储设备进行数据的下载和读取;
进一步地,步骤S1具体包括:
S11,对本地flash存储进行分区规划,预置一个分区空间备用;
S12,通过网络方式挂载块存储设备;
S13,将本地flash存储预置的一个分区与通过网络方式挂载的块存储设备进行组合,将组合后的设备用于android系统的用户数据存储;
所述本地flash存储与云手机处于同一硬件平台。
进一步地,步骤S12还包括,对块存储设备进行格式化操作。
进一步地,S2具体包括以下步骤:
S21,用户数据存储先下发至本地flash存储上;
S22,数据下发至本地flash存储后采用异步I/O方式同步至以网络方式所挂载的块存储设备上。
进一步地,所述异步I/O是数据先下刷至本地flash存储,当本地flash存储的数据存储达到预设的阈值时,触发数据从本地flash存储下刷到以网络方式所挂载的块存储设备上;数据写入本地flash存储的过程与写入网络挂载块存储设备的过程不是同时进行。
进一步地,当应用需要读取某些数据时,首先在本地flash存储中检索或查找数据。
采用本发明的技术方案,具有以下有益效果:
通过将本地flash存储和网络挂载块存储设备进行组合,提升应用运行时的数据存储性能,当手机上的app有大量数据需要写入存储或有小I/O需要高频率写入时,当用户自网络下载大量照片及视频文件时,或当云手机运行大型手机游戏并且有大量随机I/O的写入需求时,将大幅提升相关app的数据存储性能,从而极大的提升用户云手机的使用体验。
附图说明
图1是本发明
具体实施方式
的流程图;
图2是本发明具体实施方式的各组成部分示意图。
具体实施方式
以下结合附图和具体实施例,对本发明进一步说明。
结合图1-图2对本发明进行具体的说明:
首先云手机需要对所运行的硬件平台的本地flash存储进行分区规划,预置一段可用的分区空间留给后续方法使用。
云手机通过网络方式挂载集群存储提供的大容量块存储设备,并对此块存储设备进行格式化操作,留待设备组合使用。
通过将本地flash存储预置的一个分区与android系统通过网络方式所挂载的块存储设备进行组合,形成组合设备,将组合后的设备用于android系统的用户数据存储。
后续用户数据的存储将首先下发至组合设备的本地flash存储上,此时这块本地flash存储分区即相当于组合设备的缓存分区,数据下发至本地flash存储后会配合直写或者回写的缓存策略进行异步I/O方式同步至以网络方式所挂载的大容量存储设备上,从而实现了数据的快速存操作,提升数据写入性能。
当用户应用需要读取某些数据时,此时将首先在缓存分区中检索或查找数据,当查找命中后即可快速响应app的数据请求,从而实现了数据的快速读取操作,提升数据读取性能。
当用户登陆应用app后,此时用户app程序所对应的数据目录均指向了这个组合后的存储设备,由于此存储设备由本地flash和网络块存储设备组合而成,因此在具备了灵活的可扩展性的同时,其性能也与实体手机的存储性能几乎相同。
通过调整或修改该设备的I/O存储策略可以有效灵活的应对当用户有不同使用需求及场景下,应用app对存储的苛刻要求。
异步I/O指的是数据的一种同步策略,首先本方案中数据会下刷至缓存分区,当缓存分区数据存储达到预设的阈值时,此时将触发数据从缓存分区下刷到网络方式所挂载的大容量存储设备上。数据写入缓存分区的过程与写入网络挂载设备的过程不是同时进行,此处称为异步I/O。
下载到flash存储分区的数据不会超出flash分区的大小,此处的策略是当flash分区存储的文件达到分区大小的30%~50%时即可触发数据同步操作,因此不会遇到数据大小超出flash分区的问题。
数据下刷到本地flash存储的速率明显高于数据从flash下刷到网络存储设备的速率,这个时候如果持续的大I/O下发确实会出现数据拥塞的情况,此时系统将掉速,速度恢复到没有flash的场景。此特殊场景需要针对实际的案例进行额外的优化,例如针对这种场景提供更大容量的缓存flash分区,同时也可以优化后端存储,为后端存储也加入类似的大容量缓存,因此缓存模式并不能解决所有问题,只能针对特定使用场景进行适配评估。
异步I/O的主要目的是减少I/O下发次数,将随机的I/O请求转变为顺序的I/O请求,flash的优势为高随机高并发高带宽高成本,网络挂载的大容量设备的优势是存储容量大,存储顺序I/O时的处理带宽高,低成本,本方案充分利用物理存储介质的不同优势,将其进行结合。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的保护范围内。