CN105847362A - 用于集群的分发内容缓存方法及系统 - Google Patents
用于集群的分发内容缓存方法及系统 Download PDFInfo
- Publication number
- CN105847362A CN105847362A CN201610184530.5A CN201610184530A CN105847362A CN 105847362 A CN105847362 A CN 105847362A CN 201610184530 A CN201610184530 A CN 201610184530A CN 105847362 A CN105847362 A CN 105847362A
- Authority
- CN
- China
- Prior art keywords
- content
- eigenvalue
- cache
- cache node
- node
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/568—Storing data temporarily at an intermediate stage, e.g. caching
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1097—Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明提供了一种用于集群的分发内容缓存方法,包括:确定与内容分发请求对应的第一特征值;确定集群中各缓存节点的各个第二特征值;从各缓存节点中选择满足:符合工作要求;第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近的至少一个缓存节点缓存待分发内容。本发明还提供了相应的系统。本发明对内容和节点均进行了特征值的确定和比较,将内容相对于节点的缓存位置进行了排序。当集群中节点减少时,只需将下线节点中的内容全部移至第二特征值大于且最接近该下线节点的节点中即可完成数据迁移,避免了通过简单哈希确定缓存位置的方法在节点减少时大量数据的缓存位置需要重新确定且确定后的缓存位置随机的缺陷。
Description
技术领域
本发明涉及集群领域,具体涉及一种用于集群的分发内容缓存方法及系统。
背景技术
随着Internet的快速发展和业务量的不断提高,基于网络的数据访问流量迅速增长,数据中心、大型企业以及门户网站等的服务器逐渐被数据淹没。相对于网络技术的发展,服务器处理器速度和内存访问速度的增长却远远低于网络带宽和应用服务的增长,网络带宽增长的同时带来的用户数量的增长,也使得服务器资源消耗严重,服务器成为了网络瓶颈。为此,通过组建服务器集群,利用负载均衡技术在服务器间进行业务均衡,成为一种低成本、可扩展的有效解决办法。集群是一组相互独立的、通过高速网络互联的计算机,它们构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。和传统的高性能计算机技术相比,集群技术可以利用各档次的服务器作为节点,系统造价低,可以实现很高的运算速度,完成大运算量的计算,具有较高的响应能力,能够满足当今日益增长的信息服务的需求。
现有技术中,为了实现负载均衡,调度中心向服务器分发内容时是根据不同的内容文件地址的哈希值,例如将N台服务器(即节点)进行哈希取模,将key值为X的内容分发到hash(X)mod N对应的服务器中,以使服务器将分发得到的内容进行缓存。由于调度中心的物理环境距离每个集群较远,当集群中某些服务器传输存在延迟或丢包现象,或要对集群进行扩容时,集群内服务器的数量发生了变化。此时,相同文件地址的内容可能被分发至不同的服务器,该集群内各个服务器也要对已缓存的内容重新进行整理,工作量较多,不便于缓存的管理。此外,当调度中心对多个集群的内容分发进行调度时,若集群数目过多,则会造成中心控制器负载过重,影响系统性能。
发明内容
本发明实施例提供一种用于集群的分发内容缓存方法及系统,用以解决现有技术中集群在缓存被分发的内容时采用简单哈希从而当集群中节点数目发生变化时同一地址的内容缓存至不同节点的问题,通过由内容和节点的特征信息得到二者的特征值并共同根据二者特征值的大小来实现对被分发的内容进行缓存的方式。
一方面本发明提供了一种用于集群的分发内容缓存方法,包括:
确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
另一方面本发明提供了一种用于集群的分发内容缓存系统,包括:
内容特征值确定单元,用于确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
节点特征值确定单元,用于确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
缓存节点确定单元,用于从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
本发明提供的用于集群的分发内容缓存方法及系统,通过将待分发内容的特征信息及集群中所有节点的特征信息均进行相应的处理得到内容的第一特征值和节点的各个第二特征值,并根据内容的第一特征值和节点的第二特征值二者的大小确定缓存待分发内容的节点。由于对待分发内容和节点均进行了特征值的确定,并将二者的特征值进行比较,待分发内容被缓存至其第一特征值小于且最接近的第二特征值对应的节点中,因而待分发内容的缓存位置不是随机的,而是相对于节点的位置进行了排序。当集群中节点减少时,只需将下线的节点中的内容全部移至第二特征值大于且最接近该下线节点的第二特征值的节点中即可完成数据的迁移过程,避免了现有技术中通过简单哈希确定缓存位置的方法在节点数目减少时大量数据的缓存位置需要重新确定且确定后的缓存位置随机的缺陷。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例的用于集群的分发内容缓存方法的流程图;
图2是本发明一实施例的用于集群的分发内容缓存系统的结构示意图。
具体实施例
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1是本发明一实施例的用于集群的分发内容缓存方法的流程图。如图1所示,该方法包括:
S101:确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
S102:确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
S103:从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
本实施例步骤S103中所述工作要求包括:缓存节点在其所在的集群在线。例如,缓存节点和其他服务器之间的传输没有延迟、丢包等现象,且缓存节点未超载。通过将待分发内容的特征信息及集群中所有节点的特征信息均进行相应的处理得到内容的第一特征值和节点的各个第二特征值,并根据内容的第一特征值和节点的第二特征值二者的大小,确定缓存待分发内容的节点。由于对内容和节点均进行了特征值的确定,并将二者的特征值进行比较,待分发内容被缓存至其第一特征值小于且最接近的第二特征值对应的节点中,因而待分发内容的缓存位置不是随机的,而是相对于节点的位置进行了排序。当集群中节点减少时,只需将下线的节点中的内容全部移至第二特征值大于且最接近该下线节点的第二特征值的节点中即可完成数据的迁移过程,避免了现有技术中通过简单哈希确定缓存位置的方法在节点数目减少时大量数据的缓存位置需要重新确定且确定后的缓存位置随机的缺陷。
作为图1所示实施例的进一步优化,步骤S103中至少一个缓存节点的数量与待分发内容的预期访问量的大小正相关。当待分发内容的预期访问量较大时,例如通过用户访问日志得知某一内容近期访问量急剧增加,可能需要多个缓存节点来对待分发内容进行缓存才能满足用户的访问频次。缓存该预期访问量较大的待分发内容的缓存节点的选择也是根据图1所示实施例进行的。例如,某内容需要10G的流量/带宽进行缓存,而集群中每个缓存节点的流量/带宽为2G,一个缓存节点无法满足该内容的缓存需求,从而需要至少五个缓存节点才能缓存该内容并在用户访问时提供给用户。因此,图1所示实施例能够将相同地址的文件缓存至集群中的同一缓存节点上,方便缓存的管理,而本实施例所示的方法能够满足访问频次较高的内容的缓存,避免了单个缓存节点缓存超载的情况。
在一些实施例中,所述待分发内容的特征信息至少包括文件标识码和/或文件地址;所述缓存节点的具备唯一标识的特征信息至少包括ID、密码、IP地址、端口中的一种。无论特征信息是哪一种,都具备唯一标识,即集群中每一个缓存节点的ID、密码、IP地址、端口等都是不相同的。
作为图1所示实施例的进一步优化,所述第一特征值和第二特征值至少包括基于哈希算法确定的MD5值或SHA1值。
对于本发明实施例所示的方法的执行对象可以是调度中心,也可以是集群中的调度节点。当所示方法应用在调度节点上时,内容分发请求可以来自调度中心,通过在调度节点上进行缓存节点的确定,可以减轻调度中心的负担。
图2是本发明一实施例的用于集群的分发内容缓存系统的结构示意图。本发明所述的用于集群的分发内容缓存方法可以基于本实施例中的用于集群的分发内容缓存系统实施。如图2所示,该系统包括内容特征值确定单元201、节点特征值确定单元202和缓存节点确定单元203。
内容特征值确定单元201用于确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
节点特征值确定单元202用于确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
缓存节点确定单元203用于从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
在本发明实施例中,所述工作要求包括:缓存节点在其所在的集群在线。例如,缓存节点和其他服务器之间的传输没有延迟、丢包等现象,且缓存节点未超载。
作为图2所示系统实施例的进一步说明,图2所示实施例中,所述至少一个缓存节点的数量与所述待分发内容的预期访问量的大小正相关。
在本发明一些实施例中,所述待分发内容的特征信息至少包括文件标识码和/或文件地址;所述缓存节点的具备唯一标识的特征信息至少包括ID、密码、IP地址、端口中的一种。
作为图2所示实施例系统的进一步说明,所述第一特征值和第二特征值至少包括基于哈希算法确定的MD5值或SHA1值。
本发明实施例所示的系统可以搭载在调度中心上,也可以搭载在集群中的调度节点上。
本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
下面以本发明实施例所示的方法其执行对象为集群中的调度节点为例对本发明做进一步的说明。
假设集群A中有5个缓存节点,分别为A1-A5。通过对这5个缓存节点的IP地址进行处理,得到它们的特征值如下表所示。
缓存节点 | A1 | A2 | A3 | A4 | A5 |
第二特征值 | 5 | 16 | 34 | 59 | 77 |
表1各个缓存节点的第二特征值
此时调度节点接收到多个内容分发请求,从所述多个内容分发请求中可以得到多个待分发内容B1-B10的特征信息,并通过计算得到其第一特征值及流量/带宽如下表所示。
待分发内容 | B1 | B2 | B3 | B4 | B5 | B6 | B7 | B8 | B9 | B10 |
流量/带宽 | 100 | 250 | 580 | 80 | 950 | 4650 | 2654 | 987 | 120 | 490 |
第一特征值 | 3 | 8 | 12 | 25 | 31 | 40 | 53 | 67 | 70 | 76 |
表2多个待分发内容的第一特征值
根据本发明实施例所示方法,多个待分发内容B1-B10对应的缓存节点如下表:
表3待分发内容与缓存节点对应关系(未考虑缓存节点大小)
考虑到每个缓存节点的流量/带宽为3000,待分发内容B4的流量/带宽为3650,超过了缓存节点A3的负载能力,因此待分发内容B4还需在缓存节点A4中缓存,缓存节点A4的第二特征值59大于待分发内容B4的第一特征值40,且二者的差距为19,相对于未选择的缓存节点A5的第二特征值77与B4的第一特征值40的差距37更小。故考虑到缓存节点负载大小的待分发内容与缓存节点的对应关系如下表:
表4待分发内容与缓存节点对应关系(考虑到缓存节点大小)
即待分发内容B1缓存在缓存节点A1中,待分发内容B2缓存在缓存节点A2中,待分发内容B3缓存在缓存节点A2中,待分发内容B4缓存在缓存节点A3和A4中,待分发内容B5缓存在缓存节点A3中,待分发内容B6缓存在缓存节点A4中,待分发内容B7缓存在缓存节点A4中,待分发内容B8缓存在缓存节点A5中,待分发内容B9缓存在缓存节点A5中,待分发内容B1缓存在缓存节点A5中。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施例的描述,本领域的技术人员可以清楚地了解到各实施例可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种用于集群的分发内容缓存方法,所述方法包括:
确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
2.根据权利要求1所述的方法,其中,所述至少一个缓存节点的数量与所述待分发内容的预期访问量的大小正相关。
3.根据权利要求1所述的方法,其中,所述工作要求包括:缓存节点在所述集群在线。
4.根据权利要求1所述的方法,其中,所述待分发内容的特征信息至少包括文件标识码和/或文件地址;所述缓存节点的具备唯一标识的特征信息至少包括ID、密码、IP地址、端口中的一种。
5.根据权利要求1-4中任一项所述的方法,其中,所述第一特征值和第二特征值至少包括基于哈希算法确定的MD5值或SHA1值。
6.一种用于集群的分发内容缓存系统,包括:
内容特征值确定单元,用于确定与内容分发请求对应的第一特征值,所述第一特征值至少根据所述内容分发请求的待分发内容的特征信息确定;
节点特征值确定单元,用于确定集群中各缓存节点的各个第二特征值,所述第二特征值至少根据所述各缓存节点的具备唯一标识的特征信息确定;
缓存节点确定单元,用于从各缓存节点中选择满足下述条件的至少一个缓存节点缓存所述待分发内容:
-符合工作要求;
-第二特征值大于第一特征值,且与第一特征值的差距相对于未选择的剩余节点而言更接近。
7.根据权利要求6所述的系统,其中,所述至少一个缓存节点的数量与所述待分发内容的预期访问量的大小正相关。
8.根据权利要求6所述的系统,其中,所述工作要求包括:缓存节点在所述集群在线。
9.根据权利要求6所述的系统,其中,所述待分发内容的特征信息至少包括文件标识码和/或文件地址;所述缓存节点的具备唯一标识的特征信息至少包括ID、密码、IP地址、端口中的一种。
10.根据权利要求6-9中任一项所述的系统,其中,所述第一特征值和第二特征值至少包括基于哈希算法确定的MD5值或SHA1值。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184530.5A CN105847362A (zh) | 2016-03-28 | 2016-03-28 | 用于集群的分发内容缓存方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610184530.5A CN105847362A (zh) | 2016-03-28 | 2016-03-28 | 用于集群的分发内容缓存方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105847362A true CN105847362A (zh) | 2016-08-10 |
Family
ID=56583936
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610184530.5A Pending CN105847362A (zh) | 2016-03-28 | 2016-03-28 | 用于集群的分发内容缓存方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105847362A (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497389A (zh) * | 2011-11-11 | 2012-06-13 | 中国科学技术大学 | 一种iptv 中基于大雨伞缓存算法的流媒体协作缓存管理方法及系统 |
CN102882939A (zh) * | 2012-09-10 | 2013-01-16 | 北京蓝汛通信技术有限责任公司 | 负载均衡方法、设备及泛域名加速访问系统 |
CN103685351A (zh) * | 2012-09-04 | 2014-03-26 | 中国移动通信集团公司 | 一种基于云计算平台的缓存服务节点的调度方法和设备 |
CN104469392A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇艺世纪科技有限公司 | 一种视频文件存储方法及装置 |
CN104980478A (zh) * | 2014-05-28 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 内容分发网络中缓存共享方法、设备及系统 |
-
2016
- 2016-03-28 CN CN201610184530.5A patent/CN105847362A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102497389A (zh) * | 2011-11-11 | 2012-06-13 | 中国科学技术大学 | 一种iptv 中基于大雨伞缓存算法的流媒体协作缓存管理方法及系统 |
CN103685351A (zh) * | 2012-09-04 | 2014-03-26 | 中国移动通信集团公司 | 一种基于云计算平台的缓存服务节点的调度方法和设备 |
CN102882939A (zh) * | 2012-09-10 | 2013-01-16 | 北京蓝汛通信技术有限责任公司 | 负载均衡方法、设备及泛域名加速访问系统 |
CN104980478A (zh) * | 2014-05-28 | 2015-10-14 | 深圳市腾讯计算机系统有限公司 | 内容分发网络中缓存共享方法、设备及系统 |
CN104469392A (zh) * | 2014-12-19 | 2015-03-25 | 北京奇艺世纪科技有限公司 | 一种视频文件存储方法及装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102882973B (zh) | 基于p2p技术的分布式负载均衡系统和方法 | |
CN105491138B (zh) | 一种基于负载率分级触发的分布式负载调度方法 | |
US10268726B1 (en) | Partition key management for improved throughput | |
Ren et al. | A dynamic load balancing strategy for cloud computing platform based on exponential smoothing forecast | |
CN110401657B (zh) | 一种访问日志的处理方法及装置 | |
Xu et al. | Blending on-demand and spot instances to lower costs for in-memory storage | |
CN102724277B (zh) | 虚拟机热迁移和部署的方法、服务器及集群系统 | |
CN104601664B (zh) | 一种云计算平台资源管理与虚拟机调度的控制系统 | |
Ren et al. | The load balancing algorithm in cloud computing environment | |
CN103338252B (zh) | 一种分布式数据库并发存储虚拟请求机制的实现方法 | |
US8713125B2 (en) | Method and system for scaling usage of a social based application on an online social network | |
CN108196935B (zh) | 一种面向云计算的虚拟机节能迁移方法 | |
US20030028636A1 (en) | System and method for workload-aware request distribution in cluster-based network servers | |
CN109062668B (zh) | 一种基于5g接入网络的多优先级的虚拟网络功能迁移方法 | |
CN102868542B (zh) | 一种服务分发网络中服务质量的控制方法及系统 | |
CN107450855A (zh) | 一种用于分布式存储的模型可变的数据分布方法及系统 | |
CN102932271A (zh) | 负载均衡的实现方法和装置 | |
Kim et al. | Using content-addressable networks for load balancing in desktop grids | |
US7085815B2 (en) | Scalable memory management of token state for distributed lock managers | |
CN110597598A (zh) | 一种云环境中的虚拟机迁移的控制方法 | |
Liao et al. | Block placement in distributed file systems based on block access frequency | |
CN107589980A (zh) | 一种云计算资源的调度方法 | |
Yadgar et al. | Cooperative caching with return on investment | |
CN109981794B (zh) | 基于区块链节点网络的处理方法、装置及电子设备 | |
Liu et al. | A Modified Round-Robin load balancing algorithm based on content of request |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20160810 |