CN101382959B - 一种多媒体资源获取方法、装置及*** - Google Patents
一种多媒体资源获取方法、装置及*** Download PDFInfo
- Publication number
- CN101382959B CN101382959B CN2008102249687A CN200810224968A CN101382959B CN 101382959 B CN101382959 B CN 101382959B CN 2008102249687 A CN2008102249687 A CN 2008102249687A CN 200810224968 A CN200810224968 A CN 200810224968A CN 101382959 B CN101382959 B CN 101382959B
- Authority
- CN
- China
- Prior art keywords
- server
- hash bucket
- hash
- point
- database
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000004891 communication Methods 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 9
- 230000006870 function Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 8
- 238000003860 storage Methods 0.000 claims description 7
- 230000032683 aging Effects 0.000 claims description 5
- 230000001143 conditioned effect Effects 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 9
- 230000009466 transformation Effects 0.000 description 7
- 230000000694 effects Effects 0.000 description 6
- 230000004044 response Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 4
- 230000004048 modification Effects 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000000151 deposition Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 210000000352 storage cell Anatomy 0.000 description 1
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种多媒体资源获取方法,该方法为:由第一服务器统一存放经散列处理后以向量点形式保存的多媒体资源,该第一服务器根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将其携带在通知消息中发送至第二服务器,所述第二服务器在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端。这样,便在一定程度上缓解了第一服务器的运行压力,从而加快了整个***在提供多媒体资源查询服务时的响应速度,进而大大提升了用户体验。本发明同时公开了一种通信装置和一种通信***。
Description
技术领域
本发明涉及计算机领域,特别涉及一种多媒体资源获取方法、装置及***。
背景技术
随着多媒体资源(包含音频资源、视频资源等等)在互联网应用中的普及,如何在海量的网络资源中快速准确地查到到所需的多媒体资源,便日渐成为了迫切需要解决的问题。
目前,互联网中的多媒体资源一般采用通用方法进行保存,通用方法为:将一份多媒体资源划分为若干个关键帧,针对每一个关键帧,通过CBIR(Content Based Image Retrieval基于内容的图片检索)方法从关键帧中抽取若干条关键信息,得到一个由一组数字表示的向量点,而一份多媒体资源便可以通过由若干个关键帧经CBIR处理得到的一定数目的向量点来表示。接着,将采用上述方法进行转换得到的向量点保存在数据库中。所谓散列文件,是采用散列存储方式组织的文件,其存储单位称为桶(Bucket),以下称为散列桶。参阅图1所示,若干个散列桶组成一张散列表,而数据库中存在多张如图1所示的散列表,每张散列表均包含若干个散列桶。管理人员可以根据实际需要在散列表中划分出相应数目的散列桶,原则是:每个散列桶中保存的多媒体资源都具有相同或相近的属性;例如,同一视频资源经过放大变换、缩小变换、格式变换以及添加字幕等处理后得到的新的视频拷贝。
通常情况下,将采用上述方法进行保存的一份多媒体资源称为一组高维度的向量点(所谓高维度可以理解为多媒体资源具有的多种属性)。现有技术下,用于在互联网上查询高维度向量点的算法有很多,其中,LSH(位置敏感散列,Locality Sensitive Hashing)算法的查询效果相对于其他算法较为突出,其原理为:假设用户提供的查询点为q,而数据库中的点P是与点q最接近的点,即相对于其他向量点到点q的距离,点p与点q之间的距离d最短,那么,给定一个大于d的常数R,若另一向量点o与点q之间的距离小于R,则这两点经过散列变换后冲突的概率很大,而如果点o与点q之间的距离大于R,则这两点经过散列变换后冲突的概率很小,换言之,即说明空间距离相近的点在经过散列变换后归属至同一个散列桶内的概率很大,那么,使用LSH算法从互联网上的海量网络资源中查询用户所需的多媒体资源,便可以看作是在一个存储海量高维度向量点的数据库中,从各散列桶内查询与用户提出的查询点在距离上最为接近的向量点。
然而,现有技术下,使用上述方法在互联网中央服务器上的数据库内查询以向量点形式保存的多媒体资源时,会出现以下问题:
目前,中央服务器上的数据库中存储了数量非常庞大的高维度向量点,并且向量点的数量会随着多媒体资源的更新(包括增加/删除/修改)而经常性的变化,显然,当数据库中各散列桶内存储的向量点的数目过多时,中央服务器应用户要求,在各散列桶内线性查询与用户提出的查询点最为接近的向量点,便会耗费大量的CPU资源,从而严重影响了整个***的响应速度,进而严重降低了用户体验。
发明内容
本发明实施例提供一种多媒体资源获取方法、装置及***,用以提高***提供多媒体资源查询服务时的响应速度。
一种多媒体资源获取方法,***中的多媒体资源经散列处理后以向量点的形式进行保存,包括:
第一服务器根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,所述查询点由用户所需的多媒体资源经散列处理获得;
所述第一服务器向第二服务器发送通知消息,该通知消息中携带所述查询点及其归属的散列桶的标识;
所述第二服务器根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的至少一个向量点,并将该至少一个向量点发送给用户终端;
所述第二服务器根据所述标识确定本地不存在对应该标识进行保存的散列桶时,请求第一服务器将所述散列桶下发至本地,接收第一服务器下发的散列桶后,对应所述标识进行保存,以及在所述散列桶中获取与所述查询点之间的距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端。
一种通信装置,包括:
存储单元,用于保存散列桶,该散列桶中包含经散列处理后以向量点形式存储的多媒体资源;
接收单元,用于接收保存有海量向量点的第一服务器发送的通知消息,该通知消息中携带用户所需查询点及该查询点归属的散列桶的标识,所述查询点由多媒体资源经散列处理后获得;
处理单元,用于在根据所述标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的至少一个向量点;以及在根据所述标识确定本地不存在对应该标识进行保存的散列桶时,通过所述发送单元请求第一服务器将所述散列桶下发至本地,并通过所述接收单元接收第一服务器下发的散列桶,以及在所述散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并通过所述发送单元将该至少一个向量点发送给用户终端。
一种通信***,***中的多媒体资源经散列处理后以向量点的形式进行保存,包括:
第一服务器,用于根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至第二服务器,所述查询点由多媒体资源经散列处理后获得;
第二服务器,用于在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端,以及在根据所述标识确定本地不存在对应该标识进行保存的散列桶时,请求第一服务器将所述散列桶下发至本地,并在接收到所述第一服务器下发的散列桶时,在所述散列桶中获取与所述查询点之间距离最短的的至少一个向量点,以及将该至少一个向量点发送给用户终端。
本发明实施例中,采用分布式的网络结构,由第一服务器统一存放经散列处理后以向量点形式保存的多媒体资源,该第一服务器根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至第二服务器,所述第二服务器在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端。这样,便在一定程度上缓解了第一服务器的运行压力,减少了第一服务器的CPU负荷,也为其节省了大量的CPU资源,从而加快了整个***在提供多媒体资源查询服务时的响应速度,进而大大提升了用户体验。
附图说明
图1为本发明现有技术下散列表结构示意图;
图2A为本发明实施例中通信***体系架构图;
图2B为本发明实施例中二级服务器功能结构图;
图3为本发明实施例中***查询用户所需的多媒体资源流程图;
图4为本发明实施例中***重新构建数据流程图。
具体实施方式
为了提高***在提供多媒体资源查询服务时的响应速度,本发明实施例中,采用分布式的网络结构,由第一服务器统一存放经散列处理后以向量点形式保存的多媒体资源,该第一服务器根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至第二服务器,所述第二服务器在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端,这样,便在一定程度上缓解了第一服务器的运行压力。
下面结合附图对本发明优选的实施方式进行详细说明。
参阅图2A所示,本实施例中,通信***内包括用户终端20、主中央服务器21和二级服务器22,其中,
用户终端20,用于向主中央服务器21发送用以获取多媒体资源的请求消息,该请求消息中携带用户指定的查询点及该查询点归属的散列桶的标识,所述查询点由用户所需的多媒体资源经散列处理获得;
主中央服务器21,用于根据用户终端20发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至二级服务器22;
二级服务器22,用于在根据接收的通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端20。
如图2A所示,***中还包括从中央服务器23,用于在本地备份主中央服务器21中的数据库,并在确定本地数据库中净增加或者净减少的向量点的总数量超过设定阈值时,重新构建本地数据库,并将重新构建的数据库与第一服务器中的数据库进行数据同步。
参阅图2B所示,本发明实施例中,二级服务器22包括存储单元220、接收单元221、处理单元222和发送单元223,其中,
存储单元220,用于保存散列桶,该散列桶中包含经散列处理后以向量点形式存储的多媒体资源;
接收单元221,用于接收保存有海量向量点的第一服务器发送的通知消息,该通知消息中携带用户所需查询点及该查询点归属的散列桶的标识,所述查询点由多媒体资源经散列处理后获得;
处理单元222,用于在根据所述标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的至少一个向量点;
发送单元223,用于将获得的至少一个向量点发送给用户终端。
基于上述***架构,本实施例中,需要使用到两个参数,分别为数据库中的散列表数目L,和数据库中每个散列函数gj(v)中包含的子散列函数hi(v)的数目k,在以下流程中将进行详细介绍。另一方面,主中央服务器21中存储的是海量的高维向量点,需要使用硬盘来存放,然而单纯从硬盘中读取数据效率明显不高。本***采用了分级缓存的办法来解决这个问题。在主中央服务器21上,数据以散列桶为单位存放在硬盘中,为每一个非空的散列桶建立一个索引结点,记录相应的散列桶中保存的元素(即向量点)的个数、该散列桶的点击率、该散列桶在硬盘中的存储位置,以及该散列桶的标识,以及内存中当前是否保存有该散列桶中的向量点等信息;而在内存中长期保存有L个散列表以及每张散列表上非空散列桶的索引结点,同时还会保存在设定时间范围内被访问过的所有向量点。
那么,参阅图3所示,本实施例中,***响应用户终端20的查询请求,为其查询用户所需的多媒体资源的详细流程如下:
步骤300:主中央服务器21接收用户终端20发送的用于获得多媒体资源的查询请求消息,在该查询请求中携带用户所需多媒体资源的相关信息。
在实际应用中,用户终端20可以在本地将自身所需的多媒体资源的相关信息(例如,视频资源的颜色,亮度和物体纹理特征等等)用基于内容的图片检索(Content Based Image Retrieval,CBIR)方法进行散列处理,将生成的查询点携带在查询请求消息中发送至主中央服务器21;或者,直接将自身所需的多媒体资源发送至主中央服务器21,由主中央服务器21将其进行散列处理以转换为相应的查询点;本实施例中,为了减轻主中央服务器21的处理压力,采用上述第一种方式发送查询请求消息,即在该查询请求消息中携带用户所需的查询点。
步骤310:主中央服务器21从接收的查询请求消息中获取用户所需的查询点,并确定该查询点归属的散列桶的标识。
本实施例中,采用公式gj(v)=(h1(v),h2(v)......hk(v))将查询点做一次散列变换,得到一个k维的向量,再对这个向量做二次散列变换确定查询点归属的散列桶的标识;其中,v是输入的n(n≥1)维的向量点,h1(v),h2(v)....hk(v)是k个不同的散列函数,而 其中,i=1,2...k,a为一个n维的向量,a包含的各个分量是随机变量,各个分量的分布满足设定的概率,对于每个gi(v)而言,w和b是固定的常数,的作用是将多维度的向量点转换为1维的数值。例如,假设存在一个10维的向量点v,表示为如下形式:
v=(100,20,99,23,40,111,2,3,23,56),
同时假设k=3,即存在:h1(v),h2(v),h3(v),其中,h1(v)=10,h2(v)=15,h3(v)=20,那么,gj(v)=(h1(v),h2(v),h3(v))=(10,15,20),此时,已将gj(v)转换为一个3维的数据,接着,再对此3维数据进行二次散列变换,并将变换结果映射到一个散列桶中,如,将h1(v)+h2(v)+....hk(i)得到的结果做线性划分,即h1(v)+h2(v)+h3(v)=10+15+20=45,假设将40~50这一区间划分为一个散列桶并将“40~50”作为该散列桶的标识,那么便可以将向量点v划分在标识为“40~50”的散列桶中,在上述过程中,为了增大空间距离相近的向量点映射在同一个散列桶中的概率,较佳地,使用L个gj(v)函数,即g1(v),g2(v),......gL(v),每个gj(v)函数用于唯一标识一张散列表,这样一个向量点经过L个gj(v)函数处理后,便会分别落在这L个散列表各自管理的对应的散列桶中。
另一方面,本实施例中,计算出查询点归属的散列桶的标识,根据标识再并找到对应的索引结点后,还要更新该索引结点中散列桶的点击率,以便于后期将其作为参考数值对各散列桶进行相应管理。
步骤320:主中央服务器21根据预设条件对所有二级服务器22进行筛选,确定最终执行查询操作的二级服务器22。
本实施例中,设置的预设条件包含但不限于以下内容:
1、根据各二级服务器22上报的其自身的CPU占用率和内存使用率来确定最为空闲的二级服务器22;
2、根据各二级服务器22上报的其自身执行的查询进程数目来确定当前执行任务量最少的二级服务器22;
3、根据二级服务器22上报的其自身缓存中已保存的的散列桶的标识来确定缓存有最新向量点的二级服务器22。
当前,设置的预设条件也可以是上述各内容的一种或者任意组合,在此不再赘述。
另一方面,在二级服务器22数量有仅的情况下,主中央服务器21也可以不对各二级服务器22进行筛选,而直接随机选择一个二级服务器22执行后续操作,在此亦不再赘述。
步骤330:主中央服务器21向二级服务器22发送通知消息,该通知消息中携带有用户所需的查询点以及该查询点归属的散列桶的标识,用于指示二级服务器22代为查询与该查询点最为接近的至少一个向量点。
步骤340:二级服务器22接收主中央服务器21下发的通知消息,并根据该通知消息中携带的散列桶的标识判断该散列桶是否缓存在本地,若是,则进行步骤350;否则,进行步骤360。
步骤350:二级服务器22根据通知消息中携带的散列桶的标识在本地缓存中确定该散列桶的存储位置,并从该散列桶中获取与用户所需查询点最为接近的至少一个向量点,以及将获得的至少一个向量点返回给用户终端20,接着,进行步骤370。
本实施例中,所谓最为接近的向量点是指和用户查询点的之间的欧式距离最短的向量点,使用公式sqrt(∑(v1i-v2i)2)进行计算,其中,srqt是平方根计算,v1,v2是两个指定的向量点,v1i,v2i分别是这两个向量点的第i个分量。
步骤360:二级服务器22向主中央服务器21发送请求消息,要求主中央服务器21将用户所需查询点归属的散列桶包含的相关数据下发至本地,接着,进行步骤370。
步骤370:二级服务器22接收主中央服务器21下发的相关数据,并从该相关数据中获取与用户所需查询点最为接近的至少一个向量点,以及将获得的至少一个向量点返回给用户终端20,接着,进行步骤380。
步骤380:用户终端20对接收的至少一个向量点进行还原处理,并得到自身所需要的多媒体资源。这里可以采用的方法包括但不限于:在向量点中添加冗余的索引数据,表明向量归属于何种多媒体资源,冗余数据不参与查询,还原时使用冗余数据找到对应的多媒体资源。
在上述步骤320中,主中央服务器21在确定最终执行查询操作的二级服务器22的过程中,或者,在确定最终执行查询操作的二级服务器22之后,需要在本地的数据库中更新用户所需的查询点所归属的散列桶的点击率以及对数据库中保存的海量数据进行更新。更新时,可以采用两种方案,第一、主中央服务器21自行执行数据库更新流程,第二、参阅图2所示,在***中另行设置从中央服务器23,用于备份主中央服务器21中数据库内的相关数据,并且定期执行数据库更新流程,以-及在更新完毕后,将本地的更新后的数据库与主中央服务器21内保存的数据库进行同步,这样,主中央服务器21内的数据库也得到了相应的更新。本发明实施例中,为了节省主中央服务器的运行负荷,采用上述第二种方法进行数据库的更新(也称为数据库重构)。其具体流程如下:
基于上述实施例,本实施例中,从中央服务器23重构数据库时所遵循的原则为:保证L和k的选取结果使得查询用户所需查询点时,查询效率最优。一般情况下,当数据库中发生变化的向量点的数量(净增加的数量或者净减少的数量)超过设定阈值时(可根据经验设定),为了保证查询效率的最优化,从中央服务器23便会重新构建数据库,参阅图4所示,本实施例中,从中央服务器23重新构建数据库的详细流程如下:
步骤400:对数据库中保存的每个散列桶的点击率进行统计,从中确定点击率超过设定门限值的散列桶(以下称为热点散列桶)和点击率未超过设定门限值的散列桶(以下称为非热点散列桶)。
步骤410:分别从每个热点散列桶和非热点散列桶中随机选取设定数目的向量点作为测试样本。
在实际应用中,可以根据所需的查询效果来设置从热点散列桶中选取的向量点的数目,以及从非热点散列桶中选取的向量点的数目。例如,为了在最短时间内获得热点散列桶中的向量点,可以从热点散列桶中选取数量较多的测量样本,又例如,为了兼顾热点散列桶中的向量点和非热点散列桶中的向量点的查询速度,可以采用适当比例分别在热点散列桶和非热点散列桶中选取相应数目的向量点,如,1∶1。本实施例仅以第二种情况为例进行介绍,在此不再赘述。
步骤420:获取根据经验值预设的k的取值范围(如,3~100),基于测试样本,在该取值范围内遍历每一个取值来重新构建数据库,以及确定实现效果最优的取值,将其作为k的最终取值。
在实际应用中,k的取值实现效果最优的衡量标准有很多种,例如:计算量最少,查询时间最短等等,管理人员可以根据实际需要来设置实现效果最优的衡量标准,在此不再赘述。
步骤430:根据k的最终取值,以及公式L≥logδ/log(1-P1 k)来获得满足此公式的L的最小取值,其中,1-δ为在数据库中成功获得与查询点最接近的向量点的概率,P1为预设的常数可以看作是一个常数。
步骤440:根据最新确定的L和k来重新构建数据库。
所谓重新构建数据库,即是通过最新获得的L和k来重新规划散列桶的设置方式,并将数据库中的海量向量点重新分配到新的散列桶中,本实施例中,重新规划的目的是为了获得最短的查询时间,提高查询效率。
重构数据库完成后,需要将L、k和非空散列桶的索引结点进行备份,以防止突然掉电/宕机而造成数据丢失。
步骤450:将本地的数据库与主中央服务器21上的数据库进行数据同步,使主中央服务器21上的数据库更新为最新的版本。
上述实施例中,主中央服务器21在本地数据库更新完毕后,需要通知各二级服务器22清空其本地缓存,另一方面,主中央服务器21在工作过程中,需要根据老化算法定期将内存中的经老化算法淘汰的散列桶置换至硬盘,同时,将硬盘中的符合设定条件(如,点击率超过设定阈值)的散列桶置换至内存中。此外,各二级服务器22在本地缓存的数据过多时会执行老化算法来删除缓存中的部分向量点,以提高查询效率。
综上所述,本发明实施例中,采用分布式的网络结构来提供多媒体资源查询服务,由中央服务器21统一存放经散列处理后以向量点形式保存的多媒体资源,中央服务器21在接收到用户终端20发送的请求消息时,根据该请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至二级服务器22,二级服务器22在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端20。这样,便在一定程度上缓解了第一服务器的运行压力,减少了第一服务器的CPU负荷,也为其节省了大量的CPU资源,从而加快了整个***在提供多媒体资源查询服务时的响应速度,进而大大提升了用户体验。
显然,本领域的技术人员可以对本发明中的实施例进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明实施例中的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明中的实施例也意图包含这些改动和变型在内。
Claims (15)
1.一种多媒体资源获取方法,***中的多媒体资源经散列处理后以向量点的形式进行保存,其特征在于,包括:
第一服务器根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,所述查询点由用户所需的多媒体资源经散列处理获得;
所述第一服务器向第二服务器发送通知消息,该通知消息中携带所述查询点及其归属的散列桶的标识;
所述第二服务器根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的至少一个向量点,并将该至少一个向量点发送给用户终端;
所述第二服务器根据所述标识确定本地不存在对应该标识进行保存的散列桶时,请求第一服务器将所述散列桶下发至本地,接收第一服务器下发的散列桶后,对应所述标识进行保存,以及在所述散列桶中获取与所述查询点之间的距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端。
2.如权利要求1所述的方法,其特征在于,所述第一服务器向第二服务器发送通知消息之前,根据预设条件对各第二服务器进行筛选,确定当前CPU占用率最低、当前执行任务量最少或者当前保存有最新散列桶的第二服务器,并向该第二服务器发送所述通知消息。
3.如权利要求1所述的方法,其特征在于,第一服务器根据老化算法定期将内存中的经老化算法淘汰的散列桶置换至硬盘,同时,将硬盘中的符合设定条件的散列桶置换至内存中。
4.如权利要求1-3任一项所述的方法,其特征在于,将第一服务器中的数据在第三服务器中进行备份,所述第三服务器确定本地数据库中净增加或者 净减少的向量点的总数量超过设定阈值时,重新构建本地数据库,并将重新构建的数据库与第一服务器中的数据库进行数据同步。
5.如权利要求4所述的方法,其特征在于,所述第三服务器重建构建数据库之前,执行以下步骤:
选取测试样本;
基于所述测试样本在预设范围内对散列函数包含子函数数目k的取值进行遍历;
将令查询时间最短或者令计算量最少的取值确定为k的最终取值;
根据k的最终取值重新获得散列表数目L。
6.如权利要求5所述的方法,其特征在于,所述第三服务器选取测试样本时,包括:
对数据库中保存的每个散列桶的点击率进行统计,确定点击率超过设定门限值的第一类散列桶,或者,确定点击率超过设定门限值的第一类散列桶和第二类散列桶;
从每个第一类散列桶,或者从每个第一类散列桶和第二类散列桶中随机选取设定数目的向量点作为测试样本。
7.如权利要求6所述的方法,其特征在于,所述第三服务器重建构建数据库时,根据获得的k和L重新设置散列表,以及重新规划各散列表内的散列桶,并将数据库中的向量点保存至重新规划的散列桶中。
8.如权利要求4所述的方法,其特征在于:第一服务器上的数据库与第三服务器上的数据库进行数据同步后,该第一服务器通知各第二服务器消除其本地缓存的散列桶。
9.一种通信装置,其特征在于,包括:
存储单元,用于保存散列桶,该散列桶中包含经散列处理后以向量点形式存储的多媒体资源;
接收单元,用于接收保存有海量向量点的第一服务器发送的通知消息,该通知消息中携带用户所需查询点及该查询点归属的散列桶的标识,所述查询点由多媒体资源经散列处理后获得;
处理单元,用于在根据所述标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间的距离最短的至少一个向量点;以及在根据所述标识确定本地不存在对应该标识进行保存的散列桶时,通过所述发送单元请求第一服务器将所述散列桶下发至本地,并通过所述接收单元接收第一服务器下发的散列桶,以及在所述散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并通过所述发送单元将该至少一个向量点发送给用户终端,
发送单元,用于将获得的至少一个向量点发送给用户终端。
10.一种通信***,***中的多媒体资源经散列处理后以向量点的形式进行保存,其特征在于,包括:
第一服务器,用于根据用户终端发送的请求消息确定用户指定的查询点及该查询点归属的散列桶的标识,并将该查询点及其归属的散列桶的标识携带在通知消息中发送至第二服务器,所述查询点由多媒体资源经散列处理后获得;
第二服务器,用于在根据所述通知消息中携带的标识确定本地存在对应该标识进行保存的散列桶时,在该散列桶中获取与所述查询点之间距离最短的的至少一个向量点,并将该至少一个向量点发送给用户终端,以及在根据所述标识确定本地不存在对应该标识进行保存的散列桶时,请求第一服务器将所述散列桶下发至本地,并在接收到所述第一服务器下发的散列桶时,在所述散列桶中获取与所述查询点之间距离最短的的至少一个向量点,以及将该至少一个向量点发送给用户终端。
11.如权利要求10所述的通信***,其特征在于,所述第一服务器向第二服务器发送通知消息之前,根据预设条件对各第二服务器进行筛选,确定当前CPU占用率最低、当前执行任务量最少或者当前保存有最新散列桶的第二 服务器,并向该第二服务器发送所述通知消息。
12.如权利要求10或11所述的通信***,其特征在于,还包括:
第三服务器,用于备份第一服务器中的数据库,并在确定本地数据库中净增加或者净减少的向量点的总数量超过设定阈值时,重新构建本地数据库,以及将重新构建的数据库与第一服务器中的数据库进行数据同步。
13.如权利要求12所述的通信***,其特征在于,所述第三服务器重建构建数据库之前,先选取测试样本,并基于所述测试样本在预设范围内对散列函数包含子函数数目k的取值进行遍历,以及将令查询时间最短或者令计算量最少的取值确定为k的最终取值,并根据k的最终取值重新获得散列表数目L。
14.如权利要求13所述的通信***,其特征在于,所述第三服务器重建构建数据库时,根据获得的k和L重新设置散列表,以及重新规划各散列表内的散列桶,并将数据库中的向量点保存至重新规划的散列桶中。
15.如权利要求12所述的通信***,其特征在于,所述第三服务器上的数据库与第一服务器上的数据库进行数据同步后,该第一服务器通知各第二服务器消除其本地缓存的散列桶。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102249687A CN101382959B (zh) | 2008-10-28 | 2008-10-28 | 一种多媒体资源获取方法、装置及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008102249687A CN101382959B (zh) | 2008-10-28 | 2008-10-28 | 一种多媒体资源获取方法、装置及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101382959A CN101382959A (zh) | 2009-03-11 |
CN101382959B true CN101382959B (zh) | 2011-01-26 |
Family
ID=40462797
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008102249687A Active CN101382959B (zh) | 2008-10-28 | 2008-10-28 | 一种多媒体资源获取方法、装置及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101382959B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101951591B (zh) * | 2010-08-17 | 2012-11-07 | 优视科技有限公司 | 根据移动终端的ua匹配资源的方法和装置 |
CN107679561A (zh) * | 2017-09-15 | 2018-02-09 | 广东欧珀移动通信有限公司 | 图像处理方法和装置、***、计算机设备 |
CN109362079B (zh) * | 2018-11-05 | 2023-09-12 | 北京小米移动软件有限公司 | 数据处理方法及装置 |
-
2008
- 2008-10-28 CN CN2008102249687A patent/CN101382959B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101382959A (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109447277B (zh) | 一种通用的机器学习超参黑盒优化方法及*** | |
EP2050001B1 (en) | System and apparatus for optimally trading off the replication overhead and consistency level in distributed applications | |
CN100428244C (zh) | 同步企业应用变化历史的装置、***以及方法 | |
AU2009258015B2 (en) | Paging hierarchical data | |
CN112860695B (zh) | 监控数据查询方法、装置、设备、存储介质及程序产品 | |
US9774676B2 (en) | Storing and moving data in a distributed storage system | |
CN111026727A (zh) | 基于日志文件的表维度检索数据同步方法、***及装置 | |
EP2380090B1 (en) | Data integrity in a database environment through background synchronization | |
JP2008508575A (ja) | エコシステムを使用した集約および検索の方法、並びに、それらの関連技術 | |
WO2009031915A1 (fr) | Système et procédés de stockage, de recherche et d'extraction des informations sur la base d'ensembles de données faiblement organisés et décentralisés | |
CN108509437A (zh) | 一种ElasticSearch查询加速方法 | |
Gök et al. | Transmission of continuous query results in mobile computing systems | |
US8655920B2 (en) | Report updating based on a restructured report slice | |
CN112163001A (zh) | 高并发查询方法、智能终端及存储介质 | |
CN100534084C (zh) | 远程xml数据更新方法以及*** | |
CN101382959B (zh) | 一种多媒体资源获取方法、装置及*** | |
CN115114296A (zh) | 一种基于TemplateB+Tree的索引结构布局方法 | |
CN111666344A (zh) | 异构数据同步方法及装置 | |
CN109978513A (zh) | 获得技术标准的方法和装置、项目任务管理设备和介质 | |
Brunner et al. | Network-aware summarisation for resource discovery in P2P-content networks | |
CN105468728A (zh) | 一种获取截面数据的方法和*** | |
CN102325098A (zh) | 群信息获取方法和*** | |
CN112181302A (zh) | 一种数据多级存储和访问方法及*** | |
Swaroop et al. | Mobile distributed real time database systems: A research challenges | |
CN111444249A (zh) | 基于热数据的用户画像生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |