• 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03
    • / 12
    • 下载费用:30 金币  

    重庆时时彩3星综合: 一种支持BIGTABLE数据模型的片段缓存方法.pdf

    摘要
    申请专利号:

    重庆时时彩单双窍门 www.4mum.com.cn CN201210095160.X

    申请日:

    2012.04.01

    公开号:

    CN103365897A

    公开日:

    2013.10.23

    当前法律状态:

    撤回

    有效性:

    无权

    法律详情: 发明专利申请公布后的视为撤回IPC(主分类):G06F 17/30申请公布日:20131023|||实质审查的生效IPC(主分类):G06F 17/30申请日:20120401|||公开
    IPC分类号: G06F17/30; G06F12/08; H04L29/08 主分类号: G06F17/30
    申请人: 华东师范大学
    发明人: 周敏奇; 钱卫宁; 魏金仙; 周傲英
    地址: 200062 上海市普陀区中山北路3663号
    优先权:
    专利代理机构: 上海麦其知识产权代理事务所(普通合伙) 31257 代理人: 董红曼
    PDF完整版下载: PDF下载
    法律状态
    申请(专利)号:

    CN201210095160.X

    授权公告号:

    ||||||

    法律状态公告日:

    2017.01.11|||2013.11.20|||2013.10.23

    法律状态类型:

    发明专利申请公布后的视为撤回|||实质审查的生效|||公开

    摘要

    本发明属于数据库技术领域,公开了一种支持Bigtable数据模型的片段缓存方法,主要包括:将服务器的磁盘上存储的行中经常被访问的单元格归并为一组片段,单个片断中的单元格逻辑连续;所述服务器根据所述片段所在行的行关键字,将所述片段存入所述缓存空间。本发明将行中经常被访问的单元格作为片段存放于缓存空间中,且对片段中的单元格数量进行限定,提高缓存空间的利用率,并且能更好地适应社交网络用户邻近性的操作特点。

    权利要求书

    权利要求书
    1.  一种支持Bigtable数据模型的片段缓存方法,其特征在于,包括以下步骤:
    步骤一:将服务器的磁盘上存储的行中经常被访问的单元格归并为一组片段,单个片断中的单元格逻辑连续;
    步骤二:根据所述片段所在行的行关键字进行判断,若所述行关键字已存在于服务器的缓存空间中,则所述服务器将所述片段存入所述缓存空间中行关键字所在的行内;否则,所述服务器将所述片段及其行关键字一并存入所述缓存空间。

    2.  如权利要求1所述支持Bigtable数据模型的片段缓存方法,其特征在于,进一步包括步骤三:当所述服务器接收到客户的请求时,所述服务器对所述缓存空间内部的数据进行查询或维护操作。

    3.  如权利要求1所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述缓存空间中存放片段缓存的方法包括散列表存储方法和列表存储方法。

    4.  如权利要求1所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤二中,所述行关键字后各片段之间通过比较器根据字典序进行先后排序。

    5.  如权利要求1-2所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤二与步骤三中,当所述片段中的单元格数量超过设定的阈值时,进一步包括片段分割方法;所述片段分割方法包括如下步骤:
    步骤A1:将所述片段分割为单元格数量不高于所述阈值的多个片段;
    步骤A2:将所述多个片段依次存入所在的行。

    6.  如权利要求2所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤三中的维护操作包括片段更新操作,当片段因为写操作在磁盘上进行更新时,触发所述缓存空间中所述片段进行更新。

    7.  如权利要求2所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤三中的查询操作包括片段查询方法,所述片段查询方法包括如下步骤:
    步骤B1:将向所述服务器发送的请求作为多个片段的集合;
    步骤B2:将每个所述片段通过二分查找法在所述缓存空间查找所述片段,若所述片段存在于所述缓存空间中,则将所述片段反馈至所述服务器进行响应;否则所述服务器从所述磁盘空间中获取所述片段进行响应,并根据所述步骤二将所述片段存入所述缓存空间中。

    8.  如权利要求2所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤三中的维护操作包括片段合并方法,所述片段合并方法包括如下步骤:
    步骤C:若两个相邻片段的单元格数量之和不高于阈值,则将所述两个相邻片段合并为一个片段。

    9.  如权利要求2所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述步骤三中的维护操作包括片段更新方法,所述片段更新方法包括如下步骤:
    步骤D1:当所述缓存空间处于饱和状态且仍有新的片段加入时,根据同一片段访问间隔数与最近访问间隔数为依据,对所有已存储在所述缓存空间中的片段进行判断,将所述同一片段访问间隔数与最近访问间隔数最高的片段进行删除;
    步骤D2:将所述新的片段根据所述步骤二存入所述缓存空间。

    10.  如权利要求9所述支持Bigtable数据模型的片段缓存方法,其特征在于,所述同一片段访问间隔数与最近访问间隔数分别参照小引用间隔集合算法获得。

    说明书

    说明书一种支持Bigtable数据模型的片段缓存方法
    技术领域
    本发明属数据库技术领域,具体涉及一种支持Bigtable数据模型的片段缓存方法。
    背景技术
    近年来,开心网、微博等社交网络(social network)呈现蓬勃发展的势头。如何高效地存储与管理社交网络中海量的用户及用户产生的数据,如何有效地提供低延时服务提高用户体验成了学术界和工业界共同关注的热点。谷歌公司于2004年初开始开发并于2005年2月投入使用的Bigtable数据库系统提供了一种灵活高效的解决方案,很快被业界接受并获得广泛研究与使用。Bigtable数据库系统首次提出Bigtable数据模型,即一个稀疏的、分布式的、常驻外存的多维排序映射表(map)。这个映射表依靠行关键字(row key)、列名(column name)和时间戳(timestamp)检索数据(如公式1所示),表中的值都是未经解释的字符数组。
    (row: string, column: string, time: int64)-> string   公式1
    受Bigtable数据模型的启发,Hbase、Cassandra等数据库系统随后诞生,并部署在Facebook、Twitter等流行社交网站存储与管理海量数据。为方便理解同时也为更好的通用性,下面介绍简化版(不包含column family即列族的介绍)的Bigtable数据模型(以下简称类Bigtable数据模型)中主要概念。在类Bigtable数据模型中,行(row)由行关键字(key)和行的具体内容两部分组成。而行的具体内容又由一个个单元格(cell)拼接而成。每一个单元格有一个名字和具体的值。从列(column)的角度来看,名字相同的单元格属于同一列。不同的列依据列名通过指定的比较器(comparator)排序。需要注意的是,行没有大小的限制,即对一行中单元格的数目不作限制。图1给出用类Bigtable数据模型存储微博转发信息的片段并标注了在此示例中各个概念的代表例子。
    由于这些数据库系统广泛地为社交网络服务,而低延时又是社交网络用户体验的关键,学术界和工业界都在致力于提升这些系统的性能。通过将常访问的数据放在内存中以减少磁盘I/O(输入/输出)次数从而提升查询性能,缓存技术(caching)自诞生以来一直被用来加速查询处理(query processing)??悸堑缴缃煌缰械娜鹊阆窒螅ㄈ缛鹊闳宋?、热点事件)和内存容量的持续增大,在类Bigtable数据库系统中采用缓存技术会有效减小这些系统查询请求的响应延时。
    现有的构建在类Bigtable数据模型上的缓存策略有行缓存(row cache)和行关键字缓存(key cache)两种。其中,行关键字缓存只缓存一个行关键字和它对应的行在磁盘上的位置;行缓存则缓存一个行关键字所对应的整行内容。因为行关键字缓存没有存放行的内容只存放了地址,所以虽然它比较节约缓存空间但最多只能减少一次磁盘寻址,即使命中(hit)对性能的提升也不明显。行缓存如果命中就可以避免磁盘的访问,但行缓存所消耗的空间过大,尤其考虑到类Bigtable数据模型中对行没有大小的限制,如果采用行缓存在很多情况下能够缓存的行的数量不多;此外,实际应用中,一行中的所有单元格未必都会被访问,如微博用户往往只关心最近一段时间内上传的微博内容,一旦选用行缓存会有大量不被访问的单元格被缓存到内存中,大大地降低了内存的有效利用率。
    本发明克服了现有技术中缓存空间利用率不高的缺陷,提出一种支持Bigtable数据模型的片段缓存方法。本发明将行中经常被访问的单元格以片段的形式存放于缓存空间中,且对单个片段中的单元格数量进行限定,提高缓存空间的利用率。由于社交网络如微博中,用户浏览了一条微博后点击其相邻微博的可能性远远高过其它微博,所以应用本发明的支持Bigtable数据模型的片段缓存方法更适应这种用户的邻近性行为特点,在社交网络的数据缓存中具有优势。
    发明内容
    本发明公开了一种支持Bigtable数据模型的片段缓存方法,包括以下步骤:
    步骤一:将服务器的磁盘上存储的行中经常被访问的单元格归并为一组片段,单个片断中的单元格逻辑连续。
    步骤二:根据所述片段所在行的行关键字进行判断,若所述行关键字已存在于服务器的缓存空间中,则所述服务器将所述片段存入所述缓存空间中行关键字所在的行内;否则,所述服务器将所述片段及其行关键字一并存入所述缓存空间。
    本发明方法,进一步包括步骤三:当所述服务器接收到客户的请求时,所述服务器对所述缓存空间内部的数据进行查询或维护操作。
    本发明中,所述缓存空间中存放片段缓存的方法包括散列表存储方法和列表存储方法。
    本发明中,所述步骤二中,所述行关键字后各片段之间通过比较器根据字典序进行先后排序。
    本发明中,所述步骤二与步骤三中,当所述片段中的单元格数量超过设定的阈值时,进一步包括片段分割方法;所述片段分割方法包括如下步骤:
    步骤A1:将所述片段分割为单元格数量不高于所述阈值的多个片段;
    步骤A2:将所述多个片段依次存入所在的行。
    本发明中,所述步骤三中的维护操作包括片段更新操作,当片段因为写操作在磁盘上进行更新时,触发所述缓存空间中所述片段进行更新。
    本发明中,所述步骤三中的查询操作包括片段查询方法,所述片段查询方法包括如下步骤:
    步骤B1:将向所述服务器发送的请求作为多个片段的集合;
    步骤B2:将每个所述片段通过二分查找法在所述缓存空间查找所述片段,若所述片段存在于所述缓存空间中,则将所述片段反馈至所述服务器进行响应;否则所述服务器从所述磁盘空间中获取所述片段进行响应,并根据所述步骤二将所述片段存入所述缓存空间中。
    本发明中,所述步骤三中的维护操作包括片段合并方法,所述片段合并方法包括如下步骤:
    步骤C:若两个相邻片段的单元格数量之和不高于阈值,则将所述两个相邻片段合并为一个片段。
    本发明中,所述步骤三中的维护操作包括片段更新方法,所述片段更新方法包括如下步骤:
    步骤D1:当所述缓存空间处于饱和状态且仍有新的片段加入时,根据同一片段访问间隔数与最近访问间隔数为依据,对所有已存储在所述缓存空间中的片段进行判断,将所述同一片段访问间隔数与最近访问间隔数最高的片段进行删除;
    步骤D2:将所述新的片段根据所述步骤二存入所述缓存空间。
    本发明中,所述同一片段访问间隔数与最近访问间隔数分别参照小引用间隔集合算法获得。
    本发明具有以下有益效果:
    本发明采用片段缓存,将经常访问的单元格以片段的形式存放于缓存空间中,单个片断中的单元格必须是逻辑连续的,较好地适应了类Bigtable的数据模型,提高了缓存空间的利用率,并且能够提高数据查找的速度。
    本发明将逻辑连续的单元格放入一个片段,能够较好地应对社交网络中用户行为邻近性的特点。
    本发明在片段查找时采用二分查找法,二分查找法能够较快地定位到待查的片段。
    本发明在缓存过程中设定片段中单元格数量的阈值,能够使缓存空间保留尽可能多的常被访问的单元格,有利于提高缓存空间的利用率,有利于减小缓存片段替换带来的不利影响。
    本发明利用小引用间隔集合算法(LIRS算法)进行缓存片段的替换,能够最有可能被将来请求访问的数据保留在缓存空间中。
    附图说明
    图1为现有技术中类Bigtable数据模型的示意图。
    图2为本发明支持Bigtable数据模型的片段缓存方法的步骤示意图。
    图3为本发明支持Bigtable数据模型的片段缓存方法的缓存结构示意图。
    图4为本发明中利用片段分割方法分割片段的步骤示意图。
    图5为本发明中片段查询方法的步骤示意图。
    图6为本发明参照的小引用间隔集合算法中两个参数的示意图。
    具体实施方式
    结合以下具体实施例和附图,对本发明作进一步的详细说明,本发明的?;つ谌莶痪窒抻谝韵率凳├?。在不背离发明构思的精神和范围下,本领域技术人员能够想到的变化和优点都被包括在本发明中,并且以所附的权利要求书为?;し段?。
    本发明支持Bigtable数据模型的片段缓存方法,如图2所示,包括以下步骤:
    步骤一:将服务器的磁盘上存储的行中经常被访问的单元格作为一组片段,单个片断中的单元格必须是逻辑连续的;
    步骤二:根据片段所在行的行关键字进行判断,若行关键字已存在于服务器的缓存空间中,则服务器将片段存入缓存空间中行关键字所在的行内;否则,服务器将片段及其行关键字一并存入缓存空间;
    本发明还进一步包括步骤三:当服务器接收到客户的请求时,服务器对缓存空间内部的数据进行查询或维护操作。
    缓存空间中存放片段缓存的方法包括散列表存储方法和列表存储方法,如图3所示,在本发明中,存放片段缓存的数据结构为散列表(hash table)和排序列表。散列表的关键码(key)为行关键字,散列表的值(value)为一个排序列表,该列表包含一行中被缓存选中的各个片段,片段间按所含单元格列名排序。
    如图3中,行关键字后的各片段之间通过比较器根据字典序进行先后排序。关键字为key1的行被缓存了两个片段,而根据比较器k1n5在k1n1之后,所以k1n5所在的片段排在k1n1所在片段之后。
    如图4所示,当片段中的单元格数量超过设定的阈值时,采用片段分割方法将片段分成多个长度符合阈值的片段。片段分割方法包括如下步骤:
    步骤A1:将片段分割为单元格数量不高于阈值的多个片段;
    步骤A2:将多个片段依次存入所在的行。
    如图5所示,步骤三中的查询操作包括片段查询方法,本发明的片段查询方法在处理查询时须先确定查询请求在缓存空间的命中情况,会有“完全命中”、“部分命中”、“没有命中”、“无法判断”四种可能性,片段查询方法包括如下步骤:
    步骤B1:将向缓存空间发送的请求作为多个片段的集合;
    步骤B2:将每个那段通过二分查找法在缓存空间查找片段,若请求的片段存在于缓存空间中,则将请求的片段反馈至服务器;否则从磁盘获取数据,根据步骤二存入缓存空间中,并将数据反馈至服务器。
    步骤三中的维护操作包括片段合并方法,片段合并方法包括如下步骤:
    步骤C:若两个相邻片段的单元格数量之和不高于阈值,则将两个相邻片段合并为一个片段。
    步骤三中的维护操作还包括片段更新方法,片段更新方法包括如下步骤:
    步骤D1:当缓存空间处于饱和状态且仍有新的片段加入时,根据同一片段访问间隔数与最近访问间隔数为依据,对所有已存储在缓存空间中的的缓存片段进行判断,将同一片段访问间隔数与最近访问间隔数最高的片段进行删除。同一片段访问间隔数与最近访问间隔数分别通过LIRS算法(Low Inter-Reference Recency Set Algorithm, 小引用间隔集合算法)获得,如图6所示。
    步骤D2:将新的片段根据步骤二存入缓存空间。
    上述的片段更新操作,当片段因为写操作在磁盘上进行了更新,在缓存空间中也一并更新该片段。
    实施例1:片段缓存存储
    本发明中,片段缓存由行关键字和片段组成。存放片段缓存的数据结构为散列表(hash table)和列表。散列表的关键码(key)为行关键字,散列表的值(value)为一个列表,该列表包含一行中被选缓存的各个片段,片段间按照指定的比较器排好序,排序的方法按照字典序。片段缓存的结构如图3所示。
    对于一个即将加入片段缓存的目标片段,需先通过其所在行的行关键字判断该行是否已有片段在缓存空间中。如果是,那么将目标片段加入其行关键字所对应的排序列表的合适位置即可;如果此片段所在行尚没有一个片段在缓存空间中,那么需在散列表中新创建一项,该项的关键码为其行关键字,值为一个只含有目标片段的列表。需要注意的是,如果片段过长(片段所含的单元格过多),需通过片段分割方法对该片段进行分割(参照实施例3),再加入缓存空间。
    实施例2:缓存片段查询
    本发明中,缓存片段的查找主要有两步:先通过目标片段所在行的行关键字确定缓存空间中是否有该行的片段,如果没有,则认为没有找到存片段(miss);如果有,接着在存放该行所有缓存片段的排序列表通过二分查找法确定目标片段是否存在。本发明中,查询处理分以下几种情况讨论:
    1)      可以确定请求结果全部被缓存空间命中。假设当前服务器端缓存内容如图3所示,客户端显式请求行关键字为key1列名为n6和n7的单元格数据,服务器端通过key1这个关键码在缓存空间的散列表中找到了相应的列表,接着,在列表中通过二分查找确定请求数据只可能出现在第二个片段:[k1n5:k1v5,k1n6:k1v6,k1n7:k1v7,k1n8:k1v8],进一步查找便找到了n6和n7的数据。这样,直接将这部分数据传输至服务器返回客户端,此查询即处理完毕。参照实施例2,此时第二个片段被视为命中一次。
    2)      可以确定请求结果完全不被缓存空间命中。假设当前服务器端缓存内容如图3所示,客户端请求行关键字为key2的列名为n1到n9所有数据,服务器端通过查找缓存空间发现片段缓存散列表中并没有key2的数据,接着,只能通过磁盘I/O获取数据,这些数据返回客户端后,需要放入缓存空间,在片段长度阈值为5的假设下,需要将列名为n1到n9这九个单元格分为两个片段(长度分别为4和5)连同行关键字key2放入缓存空间。这样,此查询处理完毕。
    3)      可以确定请求结果部分被缓存空间命中部分未被缓存空间命中。假设当前服务器端缓存内容如图3所示,客户端显式请求行关键字为key3列名为n1,n2,n3的单元格数据,服务器端通过key3这个关键码在片段缓存散列表中找到了相应的列表,接着,在列表中通过二分查找发现n1的数据不在缓存空间中,n2和n3的数据在缓存空间中,对n1的处理参照上述情形2),对n2,n3的处理参照上述情形1),最终将这两部分结果合并返回客户端即处理完了此查询。
    4)无法确定请求结果是否被缓存空间完全命中。假设当前服务器端缓存内容如图3所示,客户端请求行关键字为key1从列名为n2的单元格开始往后的四个单元格。此时,服务器端先确定n2在缓存中,但无法判断n3,n4,n5是否在缓存中,因为只知道列名为n5的单元格在列名为n2的单元格之后,但不知道两者具体的间隔位置,所以需要访问磁盘,通过磁盘存储的数据发现n3和n4尚没有被存入缓存空间,而n5已在缓存空间中,对n3,n4的处理参照情形2),对n5的处理参照情形1)。值得注意的是,在这样的查询请求下,即使缓存中,行关键字为key1的缓存信息为:key1{[k1n1:k1v1,k1n2:k1v2,k1n3:k2v3,k1n4:k1v4] [k1n5:k1v5]},仍然需要访问磁盘以确定k1n5:k1v5为n5的数据,当然,此时不必从磁盘请求数据。
    实施例3:缓存片段分割
    本发明中,如果待缓存的片段所含的单元格数量超过了事先设定的阈值θ,那么需将分裂该片段,直至单个片段大小都小于θ。以θ=5为例,假设缓存空间中有key2{[k2n1:k2v1,k2n2:k2v2,k2n3:k2v3,k2n4:k2v4,k2n5:k2v5,k2n6:k2v6,k2n7:k2v7,k2n8:k2v8,k2n9:k2v9]},key2的片段中含有9个单元格,单元格的数量大于了阈值θ=5。所以将前5个单元格从原有片段中分割出来组成新的片段。分割之后原有片段中的单元格数量为4,小于阈值θ=5,所以不用再次分割。分割后的片段为key2{[k2n1:k2v1,k2n2:k2v2,k2n3:k2v3,k2n4: k2v4,k2n5:k2v5],[k2n6:k2v6,k2n7:k2v7,k2n8:k2v8,k2n9:k2v9]}。片段分裂的过程如图4所示。
    实施例4:缓存片段合并
    本发明中,为了减小后续查询的延时,会根据一定的规则合并片段。必要的规则有1)待合并片段必须相邻,2)合并后的片段长度不超过阈值θ。片段合并操作由查询触发。举例来说,假设现在缓存空间中有key2{[k2n1:k2v1,k2n2:k2v2],[k2n3:k2v3,k2n4:k2v4]}, 而θ=5,此时,如果可以从后续的查询获知列名n3与n2相邻,那么,缓存片段的合并结果为:key2{[k2n1:k2v1,k2n2:k2v2,k2n3:k2v3,k2n4:k2v4]}。 
    实施例5:缓存片段替换
    本发明中,当有新的片段需要加入缓存但缓存空间处于饱和状态时需要替换已有的缓存片段。选择目标片段时,主要依据片段最近两次命中的间隔和片段最近一次命中到现在的间隔,其中间隔是指这段时间内有多少其它片段被命中(不计重复)??梢圆握找延械腖IRS(Low Inter-Reference Recency Set,小引用间隔集合)算法。 在 LIRS算法中有IRR(Inter-Reference Recency,前后引用间隔)和R(Recency,最近一次访问到现在的间隔)这两个参数,分别对应第一个和第二个替换依据。IRR 和R参数的计算示例如图5所示。在如图6所示的信息下,片段C会首先从缓存空间移除。
    如果从缓存空间中移除一个缓存片段仍然不能满足新加入片段的空间需求,那么按照上述规则继续移除其它缓存片段直到新的片段能加入缓存空间为止。
    如果被移除的片段恰好为其所在行的最后一个片段,那么直接删除片段缓存散列表中的项,即将行关键字连同其对应的列表一并删除;如果不是,那么从对应列表删除该片段即可。
    实施例6:缓存片段更新
    本发明中,如果已缓存的片段因为写操作在磁盘上更新了,那么须将缓存空间中的片段也一并更新。具体为,当客户端对服务器端发起写请求时,服务器端先更新磁盘上的对应的片段内容,再判断该片段是否存在于缓存空间中,如果是那么更新缓存空间中的片段跟磁盘保持同步。

    关 键 词:
    一种 支持 BIGTABLE 数据模型 片段 缓存 方法
      专利查询网所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:一种支持BIGTABLE数据模型的片段缓存方法.pdf
    链接地址://www.4mum.com.cn/p-5779331.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们

    [email protected] 2017-2018 www.4mum.com.cn网站版权所有
    经营许可证编号:粤ICP备17046363号-1 
     


    收起
    展开
  • 四川郎酒股份有限公司获第十二届人民企业社会责任奖年度环保奖 2019-05-13
  • 银保监会新规剑指大企业多头融资和过度融资 2019-05-12
  • 韩国再提4国联合申办世界杯 中国网友无视:我们自己来 2019-05-11
  • 中国人为什么一定要买房? 2019-05-11
  • 十九大精神进校园:风正扬帆当有为 勇做时代弄潮儿 2019-05-10
  • 粽叶飘香幸福邻里——廊坊市举办“我们的节日·端午”主题活动 2019-05-09
  • 太原设禁鸣路段 设备在测试中 2019-05-09
  • 拜耳医药保健有限公司获第十二届人民企业社会责任奖年度企业奖 2019-05-08
  • “港独”没出路!“梁天琦们”该醒醒了 2019-05-07
  • 陈卫平:中国文化内涵包含三方面 文化复兴表现在其中 2019-05-06
  • 人民日报客户端辟谣:“合成军装照”产品请放心使用 2019-05-05
  • 【十九大·理论新视野】为什么要“建设现代化经济体系”?   2019-05-04
  • 聚焦2017年乌鲁木齐市老城区改造提升工程 2019-05-04
  • 【专家谈】上合组织——构建区域命运共同体的有力实践者 2019-05-03
  • 【华商侃车NO.192】 亲!楼市火爆,别忘了买车位啊! 2019-05-03