用于支持用户内容馈送的机制的制作方法

文档序号:6359709阅读:265来源:国知局
专利名称:用于支持用户内容馈送的机制的制作方法
技术领域
本公开概括而言涉及构造多个内容产生者和多个内容消耗者之间的多个内容馈送(content feed),更具体而言涉及分析每个内容馈送以在推送(push)策略和拉取(pull)策略之间为该内容馈送作出选择。
背景技术
因特网用户想要保持跟进最新资讯。为此,诸如Twitter和Facebook之类的社交联网站点向用户提供由用户的朋友生成的状态更新、发布照片、电影评论等等的馈送。诸如My Yahoo和iGoogle之类的内容汇总者提供汇总来自多个RSS来源的馈送的定制网页。类似地,诸如Digg和Reddit之类的新闻汇总者提供关于像“娱乐”和“技术”之类的主题的最新报道的馈送,而诸如CNN. com之类的新闻站点则提供追随像“医疗保健争论”这样的细粒度主题的能力。近实时的内容馈送正变成许多流行的web应用的关键特征。示例包括Twitter和Facebook上的用户生成事件,以及iGoogle和My Yahoo上的关于特定主题的新闻报道。因此,能够高效地构造示出来自用户的馈送的最新内容的网页,对于这些web应用来说是越来越重要的。构造这样的馈送必须是快速的,以便网页迅速加载。然而,内容的宽扇出(fan-out)(例如一些来源具有许多追随者)和高偏差(skew)(例如扇出和速率在大范围中变化)使得难以缩放这种应用。

发明内容
本公开概括而言涉及构造多个内容产生者和多个内容消耗者之间的多个内容馈送,更具体而言涉及分析每个内容馈送以在推送策略和拉取策略之间为该内容馈送作出选择。在特定实施例中,对于一个或多个内容产生者中的每一个,访问该内容产生者产生一个或多个内容项的内容产生速率;并且对于一个或多个内容消耗者中的每一个,访问该内容消耗者消耗一个或多个内容项的内容消耗速率。对于多个消耗者-产生者对中的每一对,基于内容消耗者的内容消耗速率和内容产生者的内容产生速率,在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从内容产生者递送到内容消耗者,其中消耗者-产生者对包括内容消耗者之一和内容产生者之一并且该内容消耗者关注该内容产生者。根据推送策略,内容项中的每一项是在该内容项由内容产生者产生时被从内容产生者递送到内容消耗者的。根据拉取策略,内容项中的每一项是在该内容项被内容消耗者消耗时被从内容产生者递送到内容消耗者的。
下面在具体实施方式
部分中结合接下来的附图更详细描述本公开的这些和其他特征、方面和优点。


图I图示了用于为各个内容馈送确定策略的示例方法。图2图示了示例连接网络。图3图示了用于为各 个内容馈送确定策略的示例系统体系结构。图4图示了示例网络环境。图5图示了示例计算机系统。
具体实施例方式现在参考如附图中图示的本公开的几个实施例来详细描述本公开。在以下描述中,阐述了许多具体细节以提供对本公开的透彻理解。然而,本领域的技术人员很清楚,没有这些具体细节中的一些或全部,也可实现本公开。在其他场合中,没有详细描述公知的过程步骤和/或结构,以免不必要地模糊本公开。此外,虽然是结合特定实施例来描述本公开的,但应当理解这里的描述并不想要将本公开限于所描述的实施例。相反,描述想要覆盖包括在如所附权利要求限定的本公开的精神和范围内的替换、修改和等同。内容馈送也称为web馈送或者简称为“馈送”,是一种用于在网络用户之间递送内容尤其是频繁更新的内容的机制。内容馈送可采取各种格式。例如,RSS(最常见的全称是“Really Simple Syndication”(真正简单整合))是广泛用于递送内容的web馈送格式族。类似地,经由内容馈送递送的内容可以是各种格式的,例如但不限于博客条目、新闻头条、事件、音频和视频。本公开设想到了任何可应用的内容馈送和内容。内容馈送概念上在各端连接内容产生者和内容消耗者。在特定实施例中,内容产生者或简称为产生者是产生可被一个或多个内容消耗者消耗的内容的实体。另一方面,内容消耗者或简称为消耗者是消耗由一个或多个内容产生者产生的内容的实体。在这个意义上,可以说消耗者“追随”(follow)由一个或多个产生者产生的内容或者是这些内容的追随者。内容可经由连接产生者和消耗者的馈送被从产生者递送到消耗者。注意,实体可以既是产生者也是消耗者,因为该实体可在某一时间产生内容供他人消耗,并且在另一时间消耗由他人产生的内容。从而,对于一实体为另一实体产生内容的馈送,该实体被称为产生者;而对于同一实体消耗来自另一实体的内容的另一馈送,该实体被称为消耗者。有时,两个实体,实体A和实体B,可以是彼此相互的产生者和消耗者。也就是说,在一些情况下,实体A可产生内容供实体B消耗;而在其他情况下,实体B可产生内容供实体A消耗。从而,可以有两个分开的馈送,两者都连接实体A和实体B。对于一个馈送,实体A是产生者并且实体B是消耗者;而对于另一馈送,实体B是产生者并且实体A是消耗者。此外,产生者可以是或不是其产生的内容的原始创建者。例如,产生者可产生原本由其他新闻记者撰写的新闻报道或者原本由其他摄影师拍摄的数字照片或者由该产生者自己记录的视频剪辑。在特定实施例中,追随应用(follows application)使得用户能够追随一个或多个兴趣(interest),其中兴趣可以例如是但不限于是另一用户或内容类别或主题。这里,追随兴趣的用户是消耗者。追随应用的目标是为追随兴趣的用户(即消耗者)产生馈送,该馈送是跨用户正追随的所有产生者的最近或最新内容的组合列表。例如,馈送可组合来自用户在社交站点上的所有朋友的最近状态更新,或者关于用户在内容汇总站点上的所有主题的最近报道。在一些情况下,用户可能偏好组合馈送,其既包括社交更新也包括主题更新。在特定实施例中,结合追随应用,产生者可为特定的可追随兴趣生成一系列按时间排序的、人类可读的内容。从而,对于用户(即消耗者),产生者可以是朋友、网站或从多个来源收集的关于特定主题的内容的汇总者。众所周知,追随应用是难以缩放的。该应用必须持续跟上高吞吐量的内容。例如,Twitter工程师著名地描述了多次重架构(re-architect) Twitter的后端以跟上随着系统变得更流行而发生的吞吐量迅速增大。同时,追随兴趣的用户期望其馈送页面迅速加载,这意味着必须严格限制延迟。这经常导致广泛的具体化(materialization)和缓存,相关联的有高资金和运营花费。例如,Digg选择了对大量数据进行去正规化(de-normalize)和具体化,以为其“绿色徽章应用”(例如追随我的朋友发掘了什么报道)减小延迟,这导致存储的数据从数十G字节到三T字节的爆增。 这种追随应用难以缩放的原因有若干个。首先,内容扇出,导致了系统中的负荷上的倍增效应。例如,每当Ashton Kutcher “发微博(tweet) ”时,他的状态更新就被传播到超过380万个追随者。即使是更温和的普通扇出也会引起缩放问题。第二,扇出具有高偏差,这使得难以选择适当的策略。例如,Facebook据报道对于像乐队和政治人物之类的宽扇出用户采用与具有窄得多的扇出的大多数用户相比不同的馈送具体化策略。为了解决例如追随应用所面对的问题中的至少一些并且改善应用性能,特定实施例选择性地具体化每个消耗者的馈送。在特定实施例中,来自高速率产生者的内容在查询时被取回(即,拉取策略),而来自较低速率产生者的内容则被预先具体化(即,推送策略)。另外,对问题的形式分析暗示着适当的策略取决于给定产生者的内容产生速率与给定消耗者的内容消耗速率(例如页面查看速率)之间的比率。从而,一些产生者对于一些消耗者可被具体化,而对于其他消耗者则不;并且消耗者的馈送的一些部分可被具体化,而其他部分则不。利用真实web数据库基础设施的实验结果表明,此混合策略在多种工作负荷下引起最低的系统负荷,因此改善了可缩放性。如上所述,产生者可产生被一个或多个消耗者消耗的内容;并且消耗者可消耗由一个或多个产生者产生的内容。另外,内容经由连接产生者和消耗者的馈送被从产生者递送到消耗者。理论上,给定的内容可在该内容由产生者产生的时间和该内容被消耗者消耗的时间之间的任何时间被从产生者递送到消耗者。对于内容,其由产生者产生的时间可被称为“具体化”时间(即,内容具体化),其被消耗者消耗的时间可被称为“查询”时间(即,消耗者查询或请求内容以便消耗)。在特定实施例中,存在用于在产生者和消耗者之间管理内容的两个策略推送和拉取。在特定实施例中,对于推送策略,内容在产生者产生该内容时被递送(即,推送)到追随该内容的每个消耗者;从而,推送策略利用传统数据库术语也可被称为“具体化”策略。与之不同,对于拉取策略,消耗者所追随的内容是在消耗者请求消耗内容时从产生内容的每个产生者取回(即,拉取)的;从而,再次利用传统数据库术语,拉取策略也可被称为“查询”策略。有时,推送是更好的策略,使得当消耗者准备好消耗其追随的内容(例如利用追随应用查询内容)时,其馈送已被预计算,这样减小了系统负荷和延迟。与之不同,如果与产生者产生内容的速率相比,消耗者不那么频繁地消耗内容,则拉取策略可能更好。由于通常只需要显示最近的N个内容,所以在消耗者有机会消耗(例如查看或下载)内容之前,推送并具体化以后会被更新的内容取代的大量内容,是浪费的。特定实施例的方法是基于如下见解的即使在同一应用内,有时是推送更好,而其他时候则是拉取更好。实际上,在特定实施例中,特定消耗者的馈送可以是推送和拉取两者的组合。这是因为内容产生速率的偏差。例如,每小时一次请求内容的特定消耗者可比一个产生者的内容产生速率更频繁地消耗内容(也就是说,该消耗者的内容消耗速率高于一个产生者的内容产生速率,因此推送更好),并且与另一产生者的内容产生速率相比不那么频繁地消耗内容(也就是说,该消耗者的内容消 耗速率低于另一产生者的内容产生速率,因此拉取更好)。特定实施例以每(P,c)的方式作出推送/拉取决定,其中P表示产生者,并且c表示消耗者。关于实际追随应用的实验和经验表明,此方法比
权利要求
1.一种方法,包括由一个或多个计算设备, 对于一个或多个内容产生者中的每一个,访问该内容产生者产生一个或多个内容项的内容产生速率; 对于一个或多个内容消耗者中的每一个,访问该内容消耗者消耗一个或多个内容项的内容消耗速率;以及 对于多个消耗者-产生者对中的包括内容消耗者之一和内容产生者之一并且该内容消耗者追随该内容产生者的每个消耗者-产生者对,基于该内容消耗者的内容消耗速率和该内容产生者的内容产生速率,在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从该内容产生者递送到该内容消耗者,其中 根据推送策略,内容项中的每一项是在该内容项由内容产生者产生时被从内容产生者递送到内容消耗者的;并且 根据拉取策略,内容项中的每一项是在该内容项被内容消耗者消耗时被从内容产生者递送到内容消耗者的。
2.如权利要求I所述的方法,其中,对于消耗者-产生者对中的每一对, 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率大于阈值,则选择推送策略;并且 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率小于阈值,则选择拉取策略。
3.如权利要求I所述的方法,其中,对于消耗者-产生者对中的每一对,通过在维持全局连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且全局连贯性保证对于内容消耗者中的每一个,内容项是按根据该内容消耗者追随的所有内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
4.如权利要求3所述的方法,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者, P表示内容产生者, P。表示c追随的所有内容产生者,其中包括p, Pj表示P。中的内容产生者, 小。表示C的内容消耗速率, 表示P」的内容产生速率, Cpush表示将内容项推送到c的成本,并且 Cpull表示从p拉取恒定数目的内容项的成本,则 如果</ YJpi - Cpush ICpull,那么选择推送策略,并且 / Pj^pC 如果</ YjKi < cpushIcPUii,那么选择拉取策略。
/ PjspC
5.如权利要求I所述的方法,其中,对于消耗者-产生者对中的每一对,通过在维持按产生者连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且按产生者连贯性保证对于内容消耗者中的每一个,来自该内容消耗者追随的内容产生者中的每一个的内容项是按根据该内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
6.如权利要求5所述的方法,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者, P表示内容产生者, 小。表示c的内容消耗速率, 表示P的内容产生速率, Cpush表示将内容项推送到C的成本,并且 Cpull表示从P拉取恒定数目的内容项的成本,则 如果(A。/cS5p) ^ Cpush/Cpull,那么选择推送束略,并且 如果d/>p) < Cpush/cpull,那么选择拉取策略。
7.如权利要求6所述的方法, 其中,对于消耗者-产生者对中的每一对,通过进一步满足延迟服务水平协定来选择推送策略或拉取策略;并且 所述方法还包括如果不满足所述延迟服务水平协定,则 选择消耗者-产生者对中的具有拉取策略的一个或多个消耗者-产生者对;并且 将所选择的消耗者-产生者对转移到推送策略。
8.如权利要求I所述的方法,还包括对于内容消耗者中的第一内容消耗者,访问关于一时间段的内容消耗模式;以及对于消耗者-产生者对中的包括所述第一内容消耗者和内容产生者之一的第一消耗者-产生者对,进一步基于所述第一内容消耗者的内容消耗模式和内容项的递送时间在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从所述内容产生者递送到所述第一内容消耗者。
9.一种系统,包括 存储一个或多个处理器可执行的指令的存储器;以及 耦合到所述存储器并可操作以执行指令的一个或多个处理器,该一个或多个处理器在执行指令时可操作来 对于一个或多个内容产生者中的每一个,访问该内容产生者产生一个或多个内容项的内容产生速率; 对于一个或多个内容消耗者中的每一个,访问该内容消耗者消耗一个或多个内容项的内容消耗速率;以及 对于多个消耗者-产生者对中的包括内容消耗者之一和内容产生者之一并且该内容消耗者追随该内容产生者的每个消耗者-产生者对,基于该内容消耗者的内容消耗速率和该内容产生者的内容产生速率,在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从该内容产生者递送到该内容消耗者,其中 根据推送策略,内容项中的每一项是在该内容项由内容产生者产生时被从内容产生者递送到内容消耗者的;并且 根据拉取策略,内容项中的每一项是在该内容项被内容消耗者消耗时被从内容产生者递送到内容消耗者的。
10.如权利要求9所述的系统,其中,对于消耗者-产生者对中的每一对, 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率大于阈值,则选择推送策略;并且 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率小于阈值,则选择拉取策略。
11.如权利要求9所述的系统,其中,对于消耗者-产生者对中的每一对,通过在维持全局连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且全局连贯性保证对于内容消耗者中的每一个,内容项是按根据该内容消耗者追随的所有内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
12.如权利要求11所述的系统,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者, P表示内容产生者, P。表示c追随的所有内容产生者,其中包括p, Pj表示P。中的内容产生者, 小。表示C的内容消耗速率, .表示P」的内容产生速率, Cpush表示将内容项推送到c的成本,并且 Cpull表示从p拉取恒定数目的内容项的成本,则 如果
13.如权利要求9所述的系统,其中,对于消耗者-产生者对中的每一对,通过在维持按产生者连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且按产生者连贯性保证对于内容消耗者中的每一个,来自该内容消耗者追随的内容产生者中的每一个的内容项是按根据该内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
14.如权利要求13所述的系统,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者,P表示内容产生者, 小。表示C的内容消耗速率, 表示P的内容产生速率, Cpush表示将内容项推送到C的成本,并且 Cpull表示从p拉取恒定数目的内容项的成本,则 如果(A。/cS5p) ^ Cpush/Cpull,那么选择推送束略,并且 如果d/>p) < Cpush/cpull,那么选择拉取策略。
15.如权利要求14所述的系统, 其中,对于消耗者-产生者对中的每一对,通过进一步满足延迟服务水平协定来选择推送策略或拉取策略;并且 所述一个或多个处理器在执行指令时还可操作来如果不满足所述延迟服务水平协定,贝丨J 选择消耗者-产生者对中的具有拉取策略的一个或多个消耗者-产生者对;并且 将所选择的消耗者-产生者对转移到推送策略。
16.如权利要求9所述的系统,其中,所述一个或多个处理器在执行指令时还可操作来 对于内容消耗者中的第一内容消耗者,访问关于一时间段的内容消耗模式;以及对于消耗者-产生者对中的包括所述第一内容消耗者和内容产生者之一的第一消耗者-产生者对,进一步基于所述第一内容消耗者的内容消耗模式和内容项的递送时间在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从所述内容产生者递送到所述第一内容消耗者。
17.—个或多个包含软件的计算机可读有形存储介质,所述软件在被一个或多个计算机系统执行时可操作来 对于一个或多个内容产生者中的每一个,访问该内容产生者产生一个或多个内容项的内容产生速率; 对于一个或多个内容消耗者中的每一个,访问该内容消耗者消耗一个或多个内容项的内容消耗速率;以及 对于多个消耗者-产生者对中的包括内容消耗者之一和内容产生者之一并且该内容消耗者追随该内容产生者的每个消耗者-产生者对,基于该内容消耗者的内容消耗速率和该内容产生者的内容产生速率,在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从该内容产生者递送到该内容消耗者,其中 根据推送策略,内容项中的每一项是在该内容项由内容产生者产生时被从内容产生者递送到内容消耗者的;并且 根据拉取策略,内容项中的每一项是在该内容项被内容消耗者消耗时被从内容产生者递送到内容消耗者的。
18.如权利要求17所述的介质,其中,对于消耗者-产生者对中的每一对, 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率大于阈值,则选择推送策略;并且 如果内容消耗者的内容消耗速率与内容产生者的内容产生速率之间的比率小于阈值,则选择拉取策略。
19.如权利要求17所述的介质,其中,对于消耗者-产生者对中的每一对,通过在维持全局连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且全局连贯性保证对于内容消耗者中的每一个,内容项是按根据该内容消耗者追随的所有内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
20.如权利要求19所述的介质,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者, P表示内容产生者, P。表示C追随的所有内容产生者,其中包括p, Pj表示P。中的内容产生者, 小。表示C的内容消耗速率,表示P」的内容产生速率, Cpush表示将内容项推送到c的成本,并且 Cpull表示从p拉取恒定数目的内容项的成本,则 如果</ YjKi - cPushIcpun,那么选择推送策略,并且 / Pj^pC 如果</< Cpush/Cpuii,那么选择拉取策略。
/ Pj^pC
21.如权利要求17所述的介质,其中,对于消耗者-产生者对中的每一对,通过在维持按产生者连贯性的同时最小化成本来选择推送策略或拉取策略,其中 成本是在消耗者-产生者对之间递送内容项的总资源成本,并且按产生者连贯性保证对于内容消耗者中的每一个,来自该内容消耗者追随的内容产生者中的每一个的内容项是按根据该内容产生者产生的所有内容项的时间戳的顺序被递送的,其中每个内容项的时间戳指示该内容项的产生时间。
22.如权利要求21所述的介质,其中,对于消耗者-产生者对中的每一对, 令 c表示内容消耗者, P表示内容产生者, 小。表示c的内容消耗速率, 表示P的内容产生速率, Cpush表示将内容项推送到C的成本,并且 Cpull表示从P拉取恒定数目的内容项的成本,则 如果(A。/cS5p) ^ Cpush/Cpull,那么选择推送束略,并且 如果d/>p) < Cpush/cpull,那么选择拉取策略。
23.如权利要求22所述的介质, 其中,对于消耗者-产生者对中的每一对,通过进一步满足延迟服务水平协定来选择推送策略或拉取策略;并且 所述一个或多个处理器在执行指令时还可操作来如果不满足所述延迟服务水平协定,贝丨J : 选择消耗者-产生者对中的具有拉取策略的一个或多个消耗者-产生者对;并且 将所选择的消耗者-产生者对转移到推送策略。
24.如权利要求17所述的介质,其中,所述一个或多个处理器在执行指令时还可操作来对于内容消耗者中的第一内容消耗者,访问关于一时间段的内容消耗模式;以及对于消耗者-产生者对中的包括所述第一内容消耗者和内容产生者之一的第一消耗者-产生者对,进一步基于所述第一内容消耗者的内容消耗模式和内容项的递送时间在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从所述内容产生者递送到所述第一内容消耗者。
全文摘要
在一个实施例中,对于一个或多个内容产生者中的每一个,访问该内容产生者产生一个或多个内容项的内容产生速率;并且对于一个或多个内容消耗者中的每一个,访问该内容消耗者消耗一个或多个内容项的内容消耗速率。对于多个消耗者-产生者对中的每一对,基于内容消耗者的内容消耗速率和内容产生者的内容产生速率,在推送策略和拉取策略之间作出选择来用于将一个或多个内容项从内容产生者递送到内容消耗者,其中消耗者-产生者对包括内容消耗者之一和内容产生者之一并且该内容消耗者追随该内容产生者。
文档编号G06F17/30GK102782681SQ201180011238
公开日2012年11月14日 申请日期2011年2月28日 优先权日2010年3月1日
发明者亚当·艾丽·希尔博斯坦, 布莱恩·弗兰克·库伯, 拉嘎胡娜斯·拉马克里施那, 杰弗里·特雷西 申请人:雅虎公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1