CN102419756A - 一种分布式数据翻页方法和*** - Google Patents
一种分布式数据翻页方法和*** Download PDFInfo
- Publication number
- CN102419756A CN102419756A CN2010102995389A CN201010299538A CN102419756A CN 102419756 A CN102419756 A CN 102419756A CN 2010102995389 A CN2010102995389 A CN 2010102995389A CN 201010299538 A CN201010299538 A CN 201010299538A CN 102419756 A CN102419756 A CN 102419756A
- Authority
- CN
- China
- Prior art keywords
- data
- page turning
- dimension
- order priority
- sequence
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/957—Browsing optimisation, e.g. caching or content distillation
- G06F16/9577—Optimising the visualization of content, e.g. distillation of HTML documents
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明实施方式公开了一种分布式***的数据翻页方法和***。包括:针对存储于服务器中的无序数据元组序列S进行排序,直到序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。应用本发明实施方式以后,可以用一种统一的标识方法来充分利用数据的每一个维度,直到能够唯一的定位一个数据项,因此多维数据可以在长序列中获得唯一的定位,从而提高翻页的准确率(甚至可以达到100%),而且同时节省50%以上的查询时间。
Description
技术领域
本发明涉及互联网应用技术领域,更具体地,本发明涉及一种分布式数据翻页方法和***。
背景技术
目前在分布式***中,数据一般存储在后台服务器中,上层用户会请求各个服务器中的数据。由于数据是用户产生的,海量的用户必然会催生出海量的数据,同时又会带来海量的读写量。如何存储这些海量数据,以及如何提供高并发的读写服务,都是UGC业务***必然面临的问题。比如,在目前微博***中,需要以页为单位(页是一定量数据的集合)将大量的数据展示给前台客户端,这就涉及到数据的翻页技术问题。前台客户端可以根据需求,进行向上,向下翻页,或者跳跃到第一页或最后一页。好的分页方案,可以在翻页动态计算时,避免出现前后两页数据重复,或部分数据丢失的问题。其中:向下翻页一般指一定量的数据按时间从新到旧的顺序返回,越往下翻,就越能查看到最新的数据。向上翻页则相反。
在目前的数据翻页技术中,单一以时间为基准轴进行数据分页。当同一时间点内有相同类型的数据,且分布在不同的服务器时,则单纯根据数据在服务器中的存储位置(也就是服务器的读取顺序)来确定分页点。
然而,当同一时间点的数据存储位置发生相对变动时,若还用原来的翻页标记来翻页,则会漏掉部分数据或给前端重复的数据。
例如,设有数据元组{time,id}序列如下:
序列:{1000,9},{1000,11},{1000,16},{1000,7},....
对应存储机器:服务器0 服务器1 服务器2 服务器0
当用户请求数据时,若按照服务器0→服务器1→服务器2→服务器0的顺序依次请求,假设读出的数据顺序如上序列所示,且上次给出的翻页点是{1000,16},则用户的下一次请求向下翻页应该返回{1000,7}及以后的数据,这样才能保证同一个用户能请求到所有完整且不重复的数据。但是当在服务器1上,同一时间点来了数据元组{1000,88},并导致元组序列变动如下时:
序列:{1000,88},{1000,11},{1000,16},{1000,7},{1000,9},....,
存储机器:服务器1 服务器1 服务器2 服务器0 服务器0
若此时分页点仍然是{1000,16},而服务器读取顺序改为服务器1→服务器2→服务器0→服务器1,则服务器1上的数据{1000,88}将无法呈现给客户端,即数据会被漏掉。这表明,只要服务器读取顺序前后两次请求不一样,则同一个用户请求相同时间点内的数据时,会漏掉部分数据。
而且,在分布式***中,由于有多套备份设备同时提供读的能力,是没有办法强制每次请求时,按同样的顺序读取机器数据的。同样,当向上翻页时,若同一时间内数据再次有变化,将导致某些数据不能正确的给到前台。同时,若要在数据中查找{1000,88},需要遍历所有time为1000的数据元组,效率非常低下。
发明内容
本发明实施方式提出一种分布式数据翻页方法,以提高数据翻页的准确性。
本发明实施方式提出一种分布式数据翻页***,以提高数据翻页的准确性。
本发明实施方式的技术方案如下:
一种分布式***的数据翻页方法,包括:
针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;
按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
所述设置维度顺序优先级为:根据所述n维的重要性为所述n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。
所述n为2,所述n维为时间和数据ID。
所述对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端包括:
根据翻页标记对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
根据权利要求4所述的分布式***的数据翻页方法,其特征在于,所述翻页标记为数据元组或位置索引。
一种分布式***的数据翻页***,包括排序单元和翻页单元,其中:
排序单元,用于针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
翻页单元,用于对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
所述排序单元,用于根据所述n维的重要性为所述n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。
所述n为2,所述n维为时间和数据ID。
所述翻页单元,用于根据翻页标记对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
所述翻页标记为数据元组或位置索引。
从上述技术方案可以看出,在本发明实施方式中,首先针对存储于服务器中的无序数据元组序列S进行排序,直到序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;然后再对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端,因此,应用本发明实施方式以后,可以用一种统一的标识方法来充分利用数据的每一个维度,直到能够唯一的定位一个数据项,因此多维数据可以在长序列中获得唯一的定位,从而提高翻页的准确率(甚至可以达到100%),而且同时节省50%以上的查询时间。
附图说明
图1为根据本发明实施方式的分布式数据翻页方法流程图;
图2为根据本发明实施方式的分布式数据翻页***结构图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附图及具体实施方式对本发明再作进一步详细的说明。
在本发明实施方式中,对于存储于服务器中的无序多维数据元组,用一种统一的标识方法来充分利用数据的每一个维度,直到能够唯一的定位一个数据项。
图1为根据本发明实施方式的分布式数据翻页方法流程图。
如图1所示,该方法包括:
步骤101:针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;
按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
其中,可以根据n维的重要性为n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。比如,维度可以为时间和数据ID。
更具体地,在通用情况下,假设有无序数据元组序列S={T1,T2,T3...Tn}存储于服务器中,其中S中的第x项Tx(x=1,2...n)是一个多维数据集合{k1,k2,k3,...kn}。
此时,首先设置n维(即k1,k2,k3,...kn)的维度顺序优先级,然后对S中的每个元素Tx(x=1,2...n),首先按照维度顺序优先级最高的维度来排序(假设为k1),当k1相同的情况下,转而按k1的下一维度顺序优先级(假设为k2)来排序。当k2相同的情况下,转而按k2的下一维度顺序优先级(假设为k3)来排序......直到Tx可以在整个序列中S找到一个唯一确定的位置为止。
此时,若将元组序列S放在一个一维数组中,则每一个Tx的数组下标是固定的。每***一个新的元组,整个S会重新排序,每个元素重新找到自己的固定位置。这样,对于给定分页Tx或数组下标索引,都可以唯一的找到一个项T来确定分界点。
比如,假如有数据元组{time,id},则无论数据在服务器中的各个储状态如何,无论服务器的读取顺序如何,在逻辑上它们应确保其顺序无语义歧义。比如,可以先按时间维度倒序排序,其中在同一时间点下,再按数字id倒序排序。例如:
{2000,7},{1000,7},{1000,9},{1000,11},{1000,16},{1000,88},{500,7},...
这样当新增{1000,19}数据项时,它有唯一确定的位置(即再{1000,16},{1000,88}之间)。此时,无论翻页标记是一个数据元组,还是一个位置索引,都能唯一准确的给出分页数据,而且数据在底层的存储可以无序,不影响上层逻辑。
不仅与此,当需要查找数据项{1000,11}时,可以先二分查找时间为1000的数据项,然后根据数字id来决定左移或右移,而无需遍历所有时间为1000的数据项列表。平均情况下,时间节省50%。对于微博这种同一时刻巨大并发流量的应用来讲,效验收益非常好。
步骤102:对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
在这里,可以根据翻页标记对经过排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。更具体地,翻页标记可以为数据元组或位置索引。也就是说,翻页标记可以是数据元组序列中的任一项或者预先指定的位置索引。
基于上述分析,本发明实施方式还提出了一种分布式***的数据翻页***。
图2为根据本发明实施方式的分布式数据翻页***结构图。
如图2所示,该***包括排序单元201和翻页单元201,其中:
排序单元201,用于针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
翻页单元201,用于对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
其中,排序单元201,可以用于根据所述n维的重要性为所述n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。而且,n可以具体为2,此时n维可以为时间和数据ID。
而且,翻页单元201,可以用于根据翻页标记对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。更具体地,翻页标记可以为数据元组或位置索引。
综上所述,在本发明实施方式中,首先针对存储于服务器中的无序数据元组序列S进行排序,直到序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;然后再对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端,因此,应用本发明实施方式以后,可以用一种统一的标识方法来充分利用数据的每一个维度,直到能够唯一的定位一个数据项,因此多维数据可以在长序列中获得唯一的定位,从而提高翻页的准确率(甚至可以达到100%),而且同时节省50%以上的查询时间。
以上所述,仅为本发明的较佳实施方式而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种分布式***的数据翻页方法,其特征在于,包括:
针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;
按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
2.根据权利要求1所述的分布式***的数据翻页方法,其特征在于,所述设置维度顺序优先级为:根据所述n维的重要性为所述n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。
3.根据权利要求1所述的分布式***的数据翻页方法,其特征在于,所述n为2,所述n维为时间和数据ID。
4.根据权利要求1所述的分布式***的数据翻页方法,其特征在于,所述对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端包括:
根据翻页标记对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
5.根据权利要求4所述的分布式***的数据翻页方法,其特征在于,所述翻页标记为数据元组或位置索引。
6.一种分布式***的数据翻页***,其特征在于,包括排序单元和翻页单元,其中:
排序单元,用于针对存储于服务器中的无序数据元组序列S进行排序,其中S所包含的项为n维数据集合,所述排序包括:
设置所述n维的维度顺序优先级;按照所述维度顺序优先级对S中的项进行排序,其中对于维度顺序优先级相同的项,进一步按照该相同的维度顺序优先级的下一维度顺序优先级对所述维度顺序优先级相同的项进行排序,直到所述序列S的每一项都可以在整个序列S中确定唯一位置,其中n为自然数;
翻页单元,用于对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
7.根据权利要求6所述的分布式***的数据翻页***,其特征在于,所述排序单元,用于根据所述n维的重要性为所述n维设置维度顺序优先级,其中重要性越大,维度顺序优先级越高。
8.根据权利要求6所述的分布式***的数据翻页***,其特征在于,所述n为2,所述n维为时间和数据ID。
9.根据权利要求6所述的分布式***的数据翻页***,其特征在于,所述翻页单元,用于根据翻页标记对经过所述排序后的数据元组序列S进行翻页,并将翻页后的数据呈现给客户端。
10.根据权利要求9所述的分布式***的数据翻页***,其特征在于,所述翻页标记为数据元组或位置索引。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102995389A CN102419756A (zh) | 2010-09-28 | 2010-09-28 | 一种分布式数据翻页方法和*** |
PCT/CN2011/080321 WO2012041235A1 (zh) | 2010-09-28 | 2011-09-28 | 一种分布式数据翻页方法和*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102995389A CN102419756A (zh) | 2010-09-28 | 2010-09-28 | 一种分布式数据翻页方法和*** |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102419756A true CN102419756A (zh) | 2012-04-18 |
Family
ID=45891967
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102995389A Pending CN102419756A (zh) | 2010-09-28 | 2010-09-28 | 一种分布式数据翻页方法和*** |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN102419756A (zh) |
WO (1) | WO2012041235A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827721A (zh) * | 2016-04-20 | 2016-08-03 | 努比亚技术有限公司 | 一种数据传输方法及装置 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237347A (zh) * | 2008-02-19 | 2008-08-06 | 中兴通讯股份有限公司 | 告警数据的分页处理方法 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100495392C (zh) * | 2003-12-29 | 2009-06-03 | 西安迪戈科技有限责任公司 | 一种智能搜索方法 |
US8788517B2 (en) * | 2006-06-28 | 2014-07-22 | Microsoft Corporation | Intelligently guiding search based on user dialog |
EP2074505A4 (en) * | 2006-10-05 | 2010-01-13 | Splunk Inc | CHRONOLOGICAL SERIES SEARCH ENGINE |
US8341513B1 (en) * | 2007-05-21 | 2012-12-25 | Amazon.Com Inc. | Incremental updates of items |
CN101699440B (zh) * | 2009-11-24 | 2011-12-07 | 中国电信股份有限公司 | 按业务检索的方法及*** |
-
2010
- 2010-09-28 CN CN2010102995389A patent/CN102419756A/zh active Pending
-
2011
- 2011-09-28 WO PCT/CN2011/080321 patent/WO2012041235A1/zh active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101237347A (zh) * | 2008-02-19 | 2008-08-06 | 中兴通讯股份有限公司 | 告警数据的分页处理方法 |
Non-Patent Citations (1)
Title |
---|
周忠荣等: "《离散数学及其应用》", 31 December 2007, article "《字典排序和拓扑排序》", pages: 141-142 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105827721A (zh) * | 2016-04-20 | 2016-08-03 | 努比亚技术有限公司 | 一种数据传输方法及装置 |
CN105827721B (zh) * | 2016-04-20 | 2019-06-21 | 努比亚技术有限公司 | 一种数据传输方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
WO2012041235A1 (zh) | 2012-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102867071B (zh) | 一种网管海量历史数据管理方法 | |
CN104133867A (zh) | 分布式顺序表片内二级索引方法及*** | |
CN102609452B (zh) | 数据的存储方法及装置 | |
CN104615677A (zh) | 一种图数据存取方法及*** | |
TW201530328A (zh) | 爲半結構化資料構建NoSQL資料庫索引的方法及裝置 | |
CN102890722A (zh) | 应用于时序历史数据库的索引方法 | |
CN101996250A (zh) | 一种基于Hadoop的海量流数据存储和查询方法及*** | |
CN102682108B (zh) | 一种行列混合的数据库存储方法 | |
CN102306168B (zh) | 日志操作方法、装置及文件*** | |
CN102129458A (zh) | 关系型数据库的存储方法及装置 | |
CN109284273B (zh) | 一种采用后缀数组索引的海量小文件查询方法及*** | |
CN100458784C (zh) | 在数字图书馆中所采用的检索***和检索方法 | |
CN107992492B (zh) | 一种数据区块的存储方法、读取方法、其装置及区块链 | |
CN103345496A (zh) | 多媒体信息检索方法和*** | |
CN103164490A (zh) | 一种不固定长度数据的高效存储实现方法和装置 | |
CN102033948A (zh) | 一种数据更新方法和装置 | |
CN102207956A (zh) | 数据库管理方法、数据库管理***及其程序 | |
CN107515931B (zh) | 一种基于聚类的重复数据检测方法 | |
CN105630934A (zh) | 一种数据统计方法及*** | |
CN102779138A (zh) | 实时数据的硬盘存取方法 | |
CN113177090A (zh) | 数据处理方法及装置 | |
CN103279489A (zh) | 一种元数据的存储方法、装置 | |
CN101963993B (zh) | 一种数据库单表记录快速查找的方法 | |
CN102945270B (zh) | 并行化分布式网络舆情数据管理方法及*** | |
CN104571946A (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 | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20120418 |