本申请涉及it软件存储领域,具体涉及一种多内容中心的数据存储同步方法。
背景技术:
1、天翼高清内容中心引入内容后,为了更好的为iptv用户提供服务,对于点播注入的内容,多会对注入的点播大文件转为hls的方式存储在存储(ceph)中,易于分发。但是往往单内容中心又难以满足客户就近访问的需求及故障切换,所以就需要创建多个内容中心存储注入内容满足多中心容灾及用户就近访问。多中心存储内容同步成为了实现的难点,如果采用异地多副本的方式不仅对网络要求较高,故障时还可能影响整个集群。本方案实现多内容中心hls数据同步,保证多个内容中心存储数据完全一致并且故障互不影响,实现异地中心真正的高可用。
技术实现思路
1、本申请实施方式提出了一种多内容中心的数据存储同步方法,以改善上述技术问题。
2、本申请实施方式提供了一种多内容中心的数据存储同步方法,包括以下步骤:将多媒体文件进行切片,形成子文件和索引文件;将所述文件和所述索引文件保存;记录所述索引文件至预设数据库;同步所述数据库。
3、在一些实施方式中,所述记录所述索引文件至预设数据库,包括:记录所述文件的唯一标识;注入索引文件。
4、在一些实施方式中,所述方法还包括:删除所述文件的唯一标识。
5、在一些实施方式中,述同步所述数据库内容,包括:获取分布式锁,若未获取所述分布式锁,则遍历moive表。
6、在一些实施方式中,所述遍历moive表限制为1000条。
7、在一些实施方式中,所述方法还包括,对比所述数据库中的storage与通过服务配置storage信息,两个list取差集,若配置的storage信息都在数据库中的storage中,则无需同步,直接更新同步任务状态为已完成。
8、在一些实施方式中,若需要同步,则将所述信息写入同步的消息队列。
9、在一些实施方式中,判断遍历的数据是否为最后一条数据,若不是最后一条数据,则再次对比所述数据库中的storage与通过服务配置storage信息。
10、在一些实施方式中,所述同步所述数据库,还包括:读取队列,获取需要同步的任务,获取hls的m3u8索引key和内容的存储中心。
11、在一些实施方式中,所述方法还包括:删除任务获取进程;获取遍历的数据信息,放入队列,并更新数据库删除状态为删除中;删除任务处理进程。
12、本申请具有以下优势:
13、本申请基于数据库方式对于存储在ceph中的hls内容实时同步,借助hls特性,在数据库中存储m3u8索引key,无需遍历ceph中的对象,仅通过解析m3u8,即可获取所有内容索引,通过数据库记录存储列表,实现多内容中心存储hls内容同步,并保持多内容中心存储一致,借助hls特性,制定特殊的存储m3u8的key格式,通过m3u8找到所有的ts列表索引,并且可清晰知道存储所在的资源池。内容同步及删除都由独立的进程完成,通过消息队列解耦,支持任务获取及任务处理进程动态扩展。需要同步的中心可通过配置文件配置多个,支持增量中心内容同步。
1.一种多内容中心的数据存储同步方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的方法,其特征在于,所述记录所述索引文件至预设数据库,包括:
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
4.根据权利要求1所述的方法,其特征在于,所述同步所述数据库内容,包括:
5.根据权利要求4所述的方法,其特征在于,所述遍历moive表限制为1000条。
6.根据权利要求4所述的方法,其特征在于,所述方法还包括,
7.根据权利要求6所述的方法,其特征在于,若需要同步,则将所述信息写入同步的消息队列。
8.根据权利要求4所述的方法,其特征在于,判断遍历的数据是否为最后一条数据,若不是最后一条数据,则再次对比所述数据库中的storage与通过服务配置storage信息。
9.根据权利要求8所述的方法,其特征在于,所述同步所述数据库,还包括:
10.根据权利要求4所述的方法,其特征在于,所述方法还包括: