[发明专利]一种读写控制方法、装置及服务器有效
申请号: | 201910516001.4 | 申请日: | 2019-06-14 |
公开(公告)号: | CN110321357B | 公开(公告)日: | 2021-06-29 |
发明(设计)人: | 易帆;康林;段效晨;秦占明;赵艳杰 | 申请(专利权)人: | 北京奇艺世纪科技有限公司 |
主分类号: | G06F16/23 | 分类号: | G06F16/23;G06F16/2458;G06F16/28 |
代理公司: | 北京柏杉松知识产权代理事务所(普通合伙) 11413 | 代理人: | 李欣;马敬 |
地址: | 100080 北京市海淀区*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 读写 控制 方法 装置 服务器 | ||
本发明实施例提供了一种读写控制方法、装置及服务器。该方法包括:监测针对数据仓库的数据请求;数据请求包括:读数据请求或写数据请求;根据数据请求所请求访问的存储位置的写锁节点的占用状态,给数据请求分配写锁节点;当数据请求为读数据请求且数据请求分配得到存储位置的读锁节点时,将写锁节点的占用状态更改为未占用并放行读数据请求;当数据请求为写数据请求且读锁节点未被占用时,放行写数据请求。这样,可以协调读操作和写操作按照顺序进行,避免了并行读写所带来的数据处理结果的错误甚至任务失败的问题。
技术领域
本发明涉及计算机技术领域,特别是涉及一种读写控制方法、装置及服务器。
背景技术
数据数仓(Data Warehouse,DW)是主流的存储海量数据的技术。目前,常常利用数据仓库来存储数据,并利用数据仓库中所存储的数据来进行数据分析和机器学习训练等。
发明人在实现本发明的过程中发现,数据仓库所涉及的数据操作主要是数据查询,即主要是读操作,所涉及的写操作很少。但是,当涉及到写操作并且写操作所请求修改的数据正在被其他数据处理流程所使用时,常常会导致相关数据处理结果的错误甚至任务失败。
发明内容
本发明实施例的目的在于提供一种读写控制方法、装置及服务器,以能够协调读操作和写操作按照顺序进行,避免并行读写所带来的数据处理结果的错误甚至任务失败的问题。具体技术方案如下:
第一方面,本发明实施例提供了一种读写控制方法,该方法可以包括:
监测针对数据仓库的数据请求;数据请求包括:读数据请求或写数据请求;
根据数据请求所请求访问的存储位置的写锁节点的占用状态,给数据请求分配写锁节点;
当数据请求为读数据请求且数据请求分配得到存储位置的读锁节点时,将写锁节点的占用状态更改为未占用并放行读数据请求;
当数据请求为写数据请求且读锁节点未被占用时,放行写数据请求。
可选地,在监测针对数据仓库的数据请求的步骤之前,还可以包括:
通过分布式系统协调服务zookeeper为数据仓库中的每个存储单元创建写锁节点和读锁节点;存储单元包括:数据表或分区数据表中的一个分区。
可选地,根据数据请求所请求访问的存储位置的写锁节点的占用状态,给数据请求分配写锁节点的步骤,可以包括:
在数据请求所请求访问的存储位置的写锁节点下,创建第一临时顺序节点;
当第一临时顺序节点不为写锁节点下唯一的临时顺序节点时,确定写锁节点的占用状态为被占用,放弃给数据请求分配写锁节点;
当第一临时顺序节点为写锁节点下唯一的临时顺序节点时,给数据请求分配写锁节点。
可选地,第一临时顺序节点的序号为:在创建第一临时顺序节点后,写锁节点下临时顺序节点的总数目。
可选地,当数据请求为读数据请求且数据请求分配得到存储位置的读锁节点时,将写锁节点的占用状态更改为未占用并放行读数据请求的步骤,包括:
当数据请求为读数据请求时,在存储位置的读锁节点下创建临时节点,以给数据请求分配存储位置的读锁节点;
将写锁节点的占用状态更改为未占用并放行读数据请求。
可选地,当数据请求为写数据请求且读锁节点未被占用时,放行写数据请求的步骤,可以包括:
当数据请求为写数据请求时,监测读锁节点下的临时节点的数目;
当读锁节点下的临时节点的数目为零时,放行写数据请求。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇艺世纪科技有限公司,未经北京奇艺世纪科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910516001.4/2.html,转载请声明来源钻瓜专利网。