CN101635669B - 一种用于数据共享系统中获取数据片段的方法 - Google Patents
一种用于数据共享系统中获取数据片段的方法 Download PDFInfo
- Publication number
- CN101635669B CN101635669B CN2008101171933A CN200810117193A CN101635669B CN 101635669 B CN101635669 B CN 101635669B CN 2008101171933 A CN2008101171933 A CN 2008101171933A CN 200810117193 A CN200810117193 A CN 200810117193A CN 101635669 B CN101635669 B CN 101635669B
- Authority
- CN
- China
- Prior art keywords
- data
- node
- data slot
- information
- slot
- 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.)
- Expired - Fee Related
Links
Images
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明涉及一种用于数据共享系统中获取数据片段的方法,包括:数据共享节点使用二进制0、1序列存储本节点可共享的数据片段的信息;在内存映射交互协议中,使用二进制0、1序列向合作节点报告该节点可共享的数据片段的信息;节点通过按位运算得到自己所能请求的数据片段的信息。本发明具有下列优点:使用二进制序列存储本节点可共享的数据片段的信息,减小了节点的存储开销,并使得信息的获取具有可结合性;减小了通信开销,增加了系统容量;通过按位运算使计算复杂度降低,加快了计算速度;降低了数据获取的延迟,同时降低了对数据内容共享节点,尤其是嵌入式系统设备的处理能力的要求。
Description
技术领域
本发明涉及信息网络技术领域,特别涉及到Peer-to-Peer数据共享系统中,多个节点共享数据内容并进行数据内容交换的方法,
背景技术
在Peer-to-Peer内容共享系统中,包括Peer-to-Peer文件共享系统,Peer-to-Peer直播流媒体系统,Peer-to-Peer视频点播系统等其他需要交互数据内容的系统,通常会面临这样的情况:节点没有完整的数据块,每个节点拥有数据块的一部分数据片段,这些数据片段可能是连续的,也可能是不连续的。节点通过和其合作节点交换内存映射,获得自己所需的数据片段的信息。之后,通过发送数据请求消息,向拥有自己所需数据片段的合作节点请求所需的数据片段。
目前处理这种问题的方法,过程为:节点以链表或者二叉树结构存储自己可共享的数据片段的信息。节点定期的向合作节点发送内存映射消息(我们这里称为Gossip消息),Gossip消息中包含了自己所拥有的数据片段的片断号信息。节点收到合作节点的Gossip消息之后,循环检查本节点的缓存(可能是内存缓存,也可能是硬盘缓存)中,是否缺少对应的数据片段。如果合作节点的Gossip消息中有自己所需的数据片段,则通过一定的策略,决定是否向该节点请求数据片段以及请求哪一部分数据片段。为了减小Gossip消息的大小,降低通信开销,有些协议将Gossip消息中数据片段的粒度设得较大,这样将会影响数据请求判断的准确性,同时有可能增大数据片段获取的延迟。上述过程通信开销大,计算复杂度高,计算时间长,准确性低。
发明内容
为了克服上述过程中涉及到通信开销大,计算复杂度高,计算时间长以及准确性低的缺陷,本发明提供一种用于数据共享系统中获取数据片段的方法,该方法使用二进制0、1序列存储数据片段信息并传递数据片段信息,利用按位运算来减低运算复杂度,加快运算速度的获取数据片段的方法,通过该方法还可以减小节点的存储开销,降低Peer-to-Peer内容共享系统的通信开销,增大系统容量,同时加快计算速度,降低数据获取的延迟,同时降低对数据内容共享节点,尤其是嵌入式系统设备的处理能力的要求。
为达到上述发明目的,本发明提供的用于数据共享系统中获取数据片段的方法包括:
(1)数据内容共享节点使用二进制0、1数字序列储存本节点可共享的数据片段的信息;所述数据片段的信息包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示。
(2)数据内容共享节点通过相互发送内存映射消息Gossip,报告本节点的共享数据片段信息;所述内存映射消息携带各自节点的可共享的数据片段的信息,包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示。
(3)数据内容共享节点收到合作节点的内存映射消息后,根据内存映射消息中合作节点的数据块起始位置和数据块的长度,获取本节点储存的对应数据块的数据片段信息,并通过按位运算:Z=X&(~Y)得到本节点向合作节点请求的数据片段的信息。
其中,X为本节点储存的数据片段对应的二进制0、1数字序列,Y为合作节点储存的数据片段对应的二进制0、1数字序列,Z为本节点向合作节点请求的数据片段对应的二进制0、1数字序列。
其中,如果共享数据块的数据片段是连续的,则共享节点在内存消息中一起发送数据片段信息,该共享数据块的格式为<数据块起始地址add1,数据块长度L1+L2+……+Ln,数据片段信息序列S1S2……Sn>。
其中,所述数据块长度L是该数据块中所包含数据片段的个数。
其中,所述数据片段二进制数字串S中,0表示该数据片段不存在或者无法共享,1表示该数据片段存在并可共享。
其中,所述共享节点以一定的周期向合作节点发送内存映射消息。
其中,所述步骤(3)还包括:共享节点判断接收到的合作节点的内存映射消息中的数据块起始地址是否大于本节点的最大缓存地址,如果大于本节点的最大缓存地址,则丢弃该内存映射消息。
其中,所述最大缓存地址是共享节点的缓存大小与本节点的第一个共享数据块的起始地址之和。
本发明的优点在于:
(1)本发明获取数据片段的方法使用二进制序列存储本节点可共享的数据片段的信息,减小了节点的存储开销,并使得信息的获取具有可结合性。
(2)本发明获取数据片段的方法使用二进制序列向合作节点报告该节点可共享的数据片段的信息,减小了通信开销,一定程度上可以增加系统容量。
(3)本发明获取数据片段的方法通过按位运算计算合作节点可以向本节点提供的数据片段信息,具有计算复杂度低,计算速度快的特点,极大的降低了数据获取的延迟,同时降低了对数据内容共享节点,尤其是嵌入式系统设备的处理能力的要求。
附图说明
图1是本发明节点的数据片段信息的存储格式
图2是现有技术节点的链表存储数据信息的结构
图3是现有技术节点的二叉树存储数据信息的结构
图4是本发明具体实施方式应用场景示意图
图5是本发明按位运算示意图
具体实施方式
本实施例提供了数据共享系统中获取数据片段的方法的一个具体的应用场景。
Peer-to-Peer内容共享节点可以是PC机,也可以是嵌入式终端或者其他的安装使用Peer-to-Peer内容共享软件的设备。节点具有一定大小的缓存,每个节点的缓存大小可能不相同。每个节点存储全部或者部分数据内容,并和其他节点共享数据内容。
Peer-to-Peer合作节点:节点B拥有节点A所需的数据,则节点A向节点B请求数据,B是A的合作节点。B应该将内存映射的变化通过Gossip消息及时通知A。P2P网络中,由于数据传播的无序性,通常情况而言,A和B互为合作节点。
合作节点列表:节点在加入网络之后,可以通过目录服务器或者其他途径,获得可能拥有自己所需数据的节点的列表。
数据片段:数据片段是节点可以和其他节点交换的最小数据单元。该数据单元具有等长的特点。比如,每个数据片段具有k字节,其中k为常数。
数据片段信息缓存以及Peer-to-Peer内容共享节点的缓存大小:假设某个节点用于内容共享的缓存大小为buffer_len(以数据片段大小为单位,即该节点可以缓存 buffer_len个数据片段),该节点的第一个共享数据块的起始地址为add1,则该节点能缓存的数据片段的最大地址为max_addr:max_addr=add1+buffer_len
数据内容共享节点使用二进制0、1数字序列储存本节点可共享的数据片段的信息,其存储格式如图1所示,不同于先有技术的链表和平衡二叉树的存储格式,如图2、图3所示;所述数据片段的信息包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示,比如,节点拥有片断号为100,101,102,105,107的数据片段,则节点存储的数据片段信息三元组为<100,8,11100101>。
数据内容共享节点通过相互发送内存映射消息Gossip,报告本节点的共享数据片段信息;所述内存映射信息携带各自节点的可共享的数据片段信息,包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示。
如图4所示,本实施例提供的获取数据片段的方法包括如下步骤:
(1)节点A加入Peer-to-Peer内容共享网络,通过目录服务器或者其他途径,获得可能拥有自己所需数据的节点B、C的列表。
(2)节点A和合作节点B、C建立连接之后,向合作节点B、C发送自己Gossip消息,报告自己的共享数据片段信息。
(3)合作节点B、C察看缓存中数据块片段信息,并向新节点A发送Gossip消息,报告自己的数据片段拥有状况。如果有多个连续的共享数据块,如果add2=add1+L1,则合作节点B、C可以在Goosip消息中一起发送数据片段信息,信息格式如下:
数据块起始地址(add1) | 数据块长度(L1+L2) | 数据片段信息序列(S1S2) |
如果发送多个连续的数据块片段信息,以此类推。此特性称为数据片段信息的可结合性。
(4)节点A收到合作节点B、C的Gossip消息之后,如果Goosip消息中的数据块起始地址大于max_addr,丢弃该Goosip消息。否则,从本地缓存中获取相对应的数据块的数据片段信息。
(5)如图5所示,节点A通过按位运算,计算合作节点B、C可以提供的数据片段的序列号。并按照一定的原则请求数据片段。
(6)同时合作节点B、C收到新的合作节点A的Gossip消息之后,将新节点A 加入到自己的合作节点列表中。并察看缓存中数据块片段信息。如果Goosip中的数据块起始地址大于max_addr,丢弃该Goosip消息。否则,从本地缓存中获取相对应的数据块的数据片段信息。
(7)合作节点B、C通过按位运算,计算节点A可以提供的数据片段的序列号。并按照一定的原则请求数据片段。
(8)节点A在加入Peer-to-Peer内容共享网络之后,以一定的周期(为了防止消息冲突,发送周期具有一定的随机性)向合作节点B、C发送Gossip消息,为合作节点B、C提供数据片段并从合作节点B、C处获得自己所需的数据片段。
Claims (7)
1.一种用于数据共享系统中获取数据片段的方法,其特征在于,所述方法包括:
(1)数据内容共享节点使用二进制0、1数字序列储存本节点可共享的数据片段的信息;所述数据片段的信息包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示;
(2)数据内容共享节点通过相互发送内存映射消息Gossip,报告本节点的共享数据片段信息;所述内存映射消息携带各自节点的可共享的数据片段的信息,包括:数据块的起始位置,数据块的长度,数据块中数据片段是否可共享的信息,用三元组<数据块的起始位置add,数据块的长度L,数据片段二进制数字串S>表示;
(3)数据内容共享节点收到合作节点的内存映射消息后,根据内存映射消息中合作节点的数据块起始位置和数据块的长度,获取本节点储存的对应数据块的数据片段信息,并通过按位运算:Z=X&(~Y)得到本节点向合作节点请求的数据片段的信息;
其中,X为本节点储存的数据片段对应的二进制0、1数字序列,Y为合作节点储存的数据片段对应的二进制0、1数字序列,Z为本节点向合作节点请求的数据片段对应的二进制0、1数字序列。
2.根据权利要求1所述的获取数据片段的方法,其特征在于,如果共享数据块的数据片段是连续的,则共享节点在内存映射消息中一起发送数据片段信息,该共享数据块的格式为<数据块起始地址add1,数据块长度L1+L2+……+Ln,数据片段信息序列S1S2……Sn>。
3.根据权利要求1或2所述的获取数据片段的方法,其特征在于,所述数据块长度L是该数据块中所包含数据片段的个数。
4.根据权利要求1或2所述的获取数据片段的方法,其特征在于,所述数据片段二进制数字串S中,0表示该数据片段不存在或者无法共享,1表示该数据片段存在并可共享。
5.根据权利要求1所述的获取数据片段的方法,其特征在于,所述共享节点以一定的周期向合作节点发送内存映射消息。
6.根据权利要求1所述的获取数据片段的方法,其特征在于,所述步骤(3)还包括:共享节点判断接收到的合作节点的内存映射消息中的数据块起始地址是否大于本节点的最大缓存地址,如果大于本节点的最大缓存地址,则丢弃该内存映射消息。
7.根据权利要求6所述的获取数据片段的方法,其特征在于,所述最大缓存地址是共享节点的缓存大小与本节点的第一个共享数据块的起始地址之和。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101171933A CN101635669B (zh) | 2008-07-25 | 2008-07-25 | 一种用于数据共享系统中获取数据片段的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101171933A CN101635669B (zh) | 2008-07-25 | 2008-07-25 | 一种用于数据共享系统中获取数据片段的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101635669A CN101635669A (zh) | 2010-01-27 |
CN101635669B true CN101635669B (zh) | 2011-11-09 |
Family
ID=41594735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101171933A Expired - Fee Related CN101635669B (zh) | 2008-07-25 | 2008-07-25 | 一种用于数据共享系统中获取数据片段的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101635669B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101834899B (zh) * | 2010-04-29 | 2013-01-30 | 中科院成都信息技术有限公司 | 一种分布式自适应编码存储方法 |
CN104166628B (zh) * | 2013-05-17 | 2018-05-18 | 华为技术有限公司 | 管理内存的方法、装置和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411967B1 (en) * | 1999-06-18 | 2002-06-25 | Reliable Network Solutions | Distributed processing system with replicated management information base |
CN1859115A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种网络数据的分布式存储下载系统、设备及方法 |
CN1972215A (zh) * | 2006-12-06 | 2007-05-30 | 中国科学院计算技术研究所 | 一种远程内存共享系统及其实现方法 |
WO2007102096A1 (en) * | 2006-03-07 | 2007-09-13 | Koninklijke Philips Electronics N.V. | Message distribution in a communication network |
-
2008
- 2008-07-25 CN CN2008101171933A patent/CN101635669B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6411967B1 (en) * | 1999-06-18 | 2002-06-25 | Reliable Network Solutions | Distributed processing system with replicated management information base |
CN1859115A (zh) * | 2006-01-24 | 2006-11-08 | 华为技术有限公司 | 一种网络数据的分布式存储下载系统、设备及方法 |
WO2007102096A1 (en) * | 2006-03-07 | 2007-09-13 | Koninklijke Philips Electronics N.V. | Message distribution in a communication network |
CN1972215A (zh) * | 2006-12-06 | 2007-05-30 | 中国科学院计算技术研究所 | 一种远程内存共享系统及其实现方法 |
Non-Patent Citations (1)
Title |
---|
齐卫宁,王劲林.一种嵌入式P2P文件共享系统.《计算机工程与应用》.2008,(第15期),76-78. * |
Also Published As
Publication number | Publication date |
---|---|
CN101635669A (zh) | 2010-01-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100542341C (zh) | 实现移动终端间数据共享的方法和设备 | |
CN102651861B (zh) | 用于移动终端的下载方法、移动终端和代理下载服务器 | |
CN112511325B (zh) | 网络拥塞控制方法、节点、系统及存储介质 | |
CN102802227B (zh) | 基于基站直通架构的数据处理方法、设备和系统 | |
US8903972B2 (en) | Method and apparatus for sharing contents using information of group change in content oriented network environment | |
EP2719133A1 (en) | A Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network | |
CN104836821A (zh) | 一种基于路由器设备的网络加速方法、装置和设备 | |
WO2013029569A1 (en) | A Generalized Dual-Mode Data Forwarding Plane for Information-Centric Network | |
CN105208059A (zh) | 一种内容分发方法、终端、服务器,及系统 | |
CN107733813B (zh) | 报文转发方法及装置 | |
CN105592163A (zh) | 一种通信方法及系统 | |
CN113572750B (zh) | 视频数据传输方法及装置 | |
CN101635669B (zh) | 一种用于数据共享系统中获取数据片段的方法 | |
CN103746768A (zh) | 一种数据包的识别方法及设备 | |
US20150026258A1 (en) | Method and apparatus for determining participant discovery message period | |
CN117278628A (zh) | 数据传输方法、装置、系统、计算机设备和存储介质 | |
CN117082054A (zh) | 一种数据传输方法、装置、系统和介质 | |
KR20190064066A (ko) | IoT 로컬 네트워크에서 CoAP 기반의 트래픽 부하 관리 장치 및 방법 | |
CN102647424A (zh) | 一种数据传输方法及其装置 | |
CN109660495B (zh) | 一种文件传输方法和装置 | |
WO2011012034A1 (zh) | 一种自动扩散资源的方法和装置 | |
Wang et al. | Edge caching via content offloading in heterogeneous mobile opportunistic networks | |
CN113709044B (zh) | 数据转发方法、装置、电子设备和存储介质 | |
CN102573021A (zh) | 对无线传感器网络消息进行处理的方法和网关 | |
WO2023185297A1 (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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111109 Termination date: 20160725 |
|
CF01 | Termination of patent right due to non-payment of annual fee |