CN104516952B - 一种内存分区部署方法与装置 - Google Patents
一种内存分区部署方法与装置 Download PDFInfo
- Publication number
- CN104516952B CN104516952B CN201410767519.2A CN201410767519A CN104516952B CN 104516952 B CN104516952 B CN 104516952B CN 201410767519 A CN201410767519 A CN 201410767519A CN 104516952 B CN104516952 B CN 104516952B
- Authority
- CN
- China
- Prior art keywords
- node
- focus subregion
- focus
- subregion
- memory partitioning
- 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.)
- Active
Links
- 238000000638 solvent extraction Methods 0.000 title claims abstract description 172
- 238000000034 method Methods 0.000 title claims abstract description 61
- 230000008569 process Effects 0.000 description 24
- 230000005012 migration Effects 0.000 description 11
- 238000013508 migration Methods 0.000 description 11
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 8
- 239000004744 fabric Substances 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000009467 reduction Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002269 spontaneous effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009897 systematic effect Effects 0.000 description 1
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/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Fuzzy Systems (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明实施例公开了一种内存分区部署方法,用于合理部署分布式***的内存分区,降低分布式***的时延开销。本发明实施例方法包括:确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,该节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区;确定热点分区被每个节点访问的次数;根据热点分区被每个节点访问的次数,确定热点分区的最优部署节点;将热点分区的最优部署节点告知热点分区当前所在的节点。本发明实施例还提供了相关的内存分区部署装置。
Description
技术领域
本发明涉及数据处理领域,尤其涉及一种内存分区部署方法与装置。
背景技术
分布式内存数据网格(IMDG,In-memory Data Grid)是一种面向广域网上内存资源共享的新型网格***。它的主要目标是在物理内存不足的情况下,提高内存密集型应用或IO密集型应用的***性能。
分布式内存网格技术采用一致性哈希算法将数据分块后尽可能打散分布到分布式***的所有节点的内存分区上,以保证数据均衡性,但这样就使得分布式***的内存分区部署较为随机,导致分布式***往往需要进行跨网络数据访问。例如,位于节点A上的进程App1与App2在访问节点B的内存分区Data1时,就需要进行跨网络访问。跨网络访问的时延开销较大,因此,合理部署内存分区的位置,以降低分布式***跨网络访问的次数,对于降低分布式***时延,提升分布式***性能而言具有重要意义。
为了减小时延开销,现有技术中采用Near-cache技术,将热点内存分区的数据存储到进程所在的节点的缓存区中,使得进程可以直接读取该热点内存分区的数据。例如将节点B的内存分区Data1存储到节点A的缓存区中,这样App1与App2可以直接从节点A的缓存区中访问Data1,减少了跨网络访问的次数。
但Near-cache技术并没有提供一种合理部署内存分区的方案,仅仅是将热点内存分区的数据存储到进程所在的节点的缓存区中,这种方法仅能减少读操作的跨网络访问次数。在进行写操作时,每次进程将数据写入本地缓存区后,该数据仍需要从本地缓存区跨网络的写入其他节点的内存分区,写操作的跨网络访问次数并不会减少。因此,在写操作较多的应用场景下,由于分布式***没有一个合理部署内存分区的方案,***的内存分区只能随机部署,所以分布式***仍需要进行大量的跨网络写操作,***的时延开销大,不能满足实际应用的要求。
发明内容
本发明实施例提供了一种内存分区部署方法,用于减少跨网络访问的次数,降低***的时延开销。
本发明实施例的第一方面提供了一种内存分区部署方法,包括:
确定预置时间段内,分布式***中的热点分区,所述分布式***包括多个节点,所述节点上部署有内存分区,所述热点分区为分布式***中被访问次数排在前列的内存分区;
确定所述热点分区被每个节点访问的次数;
根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点;
将所述热点分区的最优部署节点告知所述热点分区当前所在的节点。
结合本发明实施例的第一方面,本发明实施例的第一方面的第一种实现方式中,所述根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点包括:
将访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
结合本发明实施例的第一方面,本发明实施例的第一方面的第二种实现方式还包括:
确定每个节点所能容纳的内存分区个数的上限;
所述根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点包括:
将所容纳的内存分区个数未达到上限的节点中,访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
结合本发明实施例的第一方面、第一方面的第一种或第二种实现方式,本发明实施例的第一方面的第三种实现方式中,所述确定所述热点分区被每个节点访问的次数包括:
确定每个节点的访问所述热点分区的实际次数;
确定每个节点的权值;
计算所述每个节点的权值与所述访问所述热点分区的实际次数的乘积,得到所述热点分区被每个节点访问的次数。
结合本发明实施例的第一方面、第一方面的第一种或第二种实现方式,本发明实施例的第一方面的第四种实现方式中,所述确定预置时间段内,分布式***中的热点分区包括:
确定预置时间段内,分布式***中M个内存分区的被访问次数,所述M为正整数;
将所述M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,所述N为不大于M的正整数。
本发明实施例的第二方面提供了一种内存分区部署装置,包括:
热点分区确定模块,用于确定预置时间段内,分布式***中的热点分区,所述分布式***包括多个节点,所述节点上部署有内存分区,所述热点分区为分布式***中被访问次数排在前列的内存分区;
访问次数确定模块,用于确定所述热点分区被每个节点访问的次数;
最优节点确定模块,用于根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点;
最优节点告知模块,用于将所述热点分区的最优部署节点告知所述热点分区当前所在的节点。
结合本发明实施例的第二方面,本发明实施例的第二方面的第一种实现方式中,所述最优节点确定模块具体用于:
将访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
结合本发明实施例的第二方面,本发明实施例的第二方面的第二种实现方式中,所述装置还包括:
分区上限确定模块,用于确定每个节点所能容纳的内存分区个数的上限;
所述最优节点确定模块具体用于:将所容纳的内存分区个数未达到上限的节点中,访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
结合本发明实施例的第二方面、第二方面的第一种或第二种实现方式,本发明实施例的第二方面的第三种实现方式中,所述访问次数确定模块包括:
次数确定单元,用于确定每个节点的访问所述热点分区的实际次数;
权值确定单元,用于确定每个节点的权值;
次数计算单元,用于计算所述每个节点的权值与所述访问所述热点分区的实际次数的乘积,得到所述热点分区被每个节点访问的次数。
结合本发明实施例的第二方面、第二方面的第一种或第二种实现方式,本发明实施例的第二方面的第四种实现方式中,所述热点分区确定模块包括:
次数确定单元,用于确定预置时间段内,分布式***中M个内存分区的被访问次数,所述M为正整数;
热点确定单元,用于将所述M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,所述N为不大于M的正整数。
本发明实施例提供的方法中,内存分区部署装置确定预置时间段内分布式***中的热点分区;确定热点分区被每个节点访问的次数;根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;并将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本发明实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本发明实施例提供的方法都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。
附图说明
图1为本发明实施例中内存分区部署方法一个实施例流程图;
图2为本发明实施例中内存分区部署方法另一个实施例流程图;
图3为本发明实施例中内存分区部署装置一个实施例结构图;
图4为本发明实施例中内存分区部署装置另一个实施例结构图;
图5为本发明实施例中内存分区部署装置另一个实施例结构图;
图6为本发明实施例中内存分区部署装置另一个实施例结构图;
图7为本发明实施例中内存分区部署装置另一个实施例结构图。
具体实施方式
本发明实施例提供了一种内存分区部署方法,用于合理部署分布式***的内存分区,降低分布式***的时延开销。本发明实施例还提供了相关的内存分区部署装置,以下将分别进行描述。
本发明实施例提供的内存分区部署方法的基本流程请参阅图1,主要包括:
101、确定预置时间段内,分布式***中的热点分区;
分布式***包括多个节点,节点上部署有内存分区。其中,热点分区为分布式***中被访问次数排在前列的内存分区;
其中,预置时间段可以为人为设定的时间段,也可以为分布式***默认的时间段,此处不做限定。其中,内存分区部署装置确定预置时间段内分布式***的热点分区的方法有很多,具体将在后面的实施例中详述,此处不做限定。
102、确定热点分区被每个节点访问的次数;
内存分区部署装置确定热点分区被每个节点访问的次数,其确定方法有很多,如从热点分区所在的节点处获取热点分区被每个节点访问的次数,也可以通过其他方式确定热点分区被每个节点访问的次数,具体将在后面的实施例中详述,此处不做限定。
103、根据热点分区被每个节点访问的次数,确定热点分区的最优部署节点;
内存分区部署装置根据热点分区被节点访问的次数,确定热点分区的最优部署节点。其具体的确定方法将在后面的实施例中详述,此处不做限定。
104、将热点分区的最优部署节点告知热点分区当前所在的节点。
内存分区部署装置确定了热点分区的最优部署节点后,将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区所在的节点能够将热点分区迁移到最优部署节点上。
本实施例提供的方法中,内存分区部署装置确定预置时间段内分布式***中的热点分区;确定热点分区被每个节点访问的次数;根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;并将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的方法都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。
图1所示的实施例提供了一种内存分区部署方法,根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上。优选的,作为本发明的又一个实施例,步骤103中,内存分区部署装置可以将访问热点分区次数最多的节点确定为热点分区的最优部署节点,以最大程度的降低分布式***跨网络访问的次数。
一个节点所能容纳的内存分区的个数是有上限的,更为优选的,为了避免热点分区迁移时多个热点分区都迁移到同一个节点,超出该节点的容纳能力,本发明提供了一种更为细化的内存分区部署方法,请参阅图2,具体包括:
201、确定预置时间段内,分布式***中的热点分区;
分布式***包括多个节点,节点上部署有内存分区。其中,热点分区为分布式***中被访问次数排在前列的内存分区。其中,预置时间段可以为人为设定的时间段,也可以为分布式***默认的时间段,此处不做限定。
可选的,内存分区部署装置确定预置时间段内分布式***的热点分区的方法可以为:确定预置时间段内,分布式***中M个内存分区的被访问次数,其中M为正整数;然后将该M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,其中N为不大于M的正整数。
202、确定热点分区被每个节点访问的次数;
内存分区部署装置确定热点分区被每个节点访问的次数,具体可以为热点分区被每个节点访问的实际次数,也可以为附加了权值后热点分区被每个节点访问的次数。可选的,附加了权值后热点分区被每个节点访问的次数可以通过如下步骤确定:
步骤A、确定每个节点的访问热点分区的实际次数;
内存分区部署装置可以从热点分区所在的节点处获取每个节点访问热点分区的实际次数,也可以通过其他途径来获取每个节点访问热点分区的实际次数,此处不做限定。
步骤B、确定每个节点的权值;
一般的,分布式***中大部分节点的权值为1,当这些节点访问热点分区时,则热点分区的被访问次数会加1。但是在某些特殊的场景中,某些节点的权值可以不为1,例如若某个节点访问热点分区的时延较大,则可以将该节点的权值设置为大于1的数值,这样能够增大该节点被确认为热点分区的最优部署节点的几率。每个节点的权值可以为用户设置,也可以为内存分区部署装置自发设置,内存分区部署装置也可以通过其他方式确定每个节点的权值,此处不做限定。
步骤C、计算每个节点的权值与访问热点分区的实际次数的乘积,得到热点分区被每个节点访问的次数。
对于每个节点,内存分区部署装置将该节点的权值与该节点访问热点分区的实际次数相乘,得到的乘积就是该节点访问热点分区的次数。
203、确定每个节点所能容纳的内存分区个数的上限;
分布式***中,一个节点所能容纳的内存分区的个数是有上限的。本实施例中,内存分区部署装置确定每个节点所能容纳的内存分区个数的上限,该上限可以用于表示节点容纳内存分区的最大能力,也可以为人为设置的上限,此处不做限定。
204、将所容纳的内存分区个数未达到上限的节点中,访问热点分区次数最多的节点确定为热点分区的最优部署节点。
为了避免热点分区迁移时,多个热点分区都迁移到同一个节点,超出该节点的容纳能力,因此本实施例仅在容纳的内存分区个数未达到上限的节点中确定最优部署节点。若一个节点所容纳的内存分区的个数已达到上限,则该节点不会再被确认为热点分区的最优部署节点,这样后续的热点分区就不再会被迁移到该节点上。
205、将热点分区的最优部署节点告知热点分区当前所在的节点。
内存分区部署装置确定了热点分区的最优部署节点后,将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区所在的节点能够将热点分区迁移到最优部署节点上。
本实施例提供的方法中,内存分区部署装置确定预置时间段内分布式***中的热点分区;确定热点分区被每个节点访问的次数;根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;并将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的方法都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。同时本实施例仅在容纳的内存分区个数未达到上限的节点中确定最优部署节点。若一个节点所容纳的内存分区的个数已达到上限,则该节点不会再被确认为热点分区的最优部署节点,这样后续的热点分区就不再会被迁移到该节点上,不会超出该节点的容纳能力。
可选的,对于所容纳的内存分区个数达到上限的节点,内存分区部署装置可以将这些节点中非热点的内存分区迁移出来,使得该节点所容纳的内存分区个数低于上限,可以继续容纳新的热点分区。例如,若步骤201中确定了位于节点A上的内存分区Data1为热点分区,步骤202中确定了Data1被节点B访问了100次,节点B访问Data1的次数最高,步骤203中确定了节点B能够容纳50个内存分区。若节点B中容纳的内存分区已经达到50个,则内存分区部署装置可以将Data1的信息告知节点B,使得节点B将内存分区中不属于热点分区的Data2迁移到节点A上,然后节点A再将Data1迁移到节点B上。
可选的,步骤201中内存分区部署装置确定预置时间段内,分布式***中M个内存分区的被访问次数,具体可以为M个内存分区的实际被访问次数,也可以为附加了权值后M个内存分区的被访问次数。附加了权值后M个内存分区的被访问次数的确定方法与步骤202中类似,此处不做赘述。
分布式***中,每个节点上可以部署一个或多个进程。特别的,本发明也可以根据热点分区被每个进程访问的次数来确定热点分区的迁移目的地,使得热点分区会被部署到访问该热点分区较多的进程所对应的内存分区位置上。例如图1所示的实施例中,步骤102也可以确定热点分区被每个进程访问的次数;步骤103中根据热点分区被每个进程访问的次数,确定热点分区的最优部署分区位置,该足有部署分区位置可以为访问该热点分区次数最多的进程对应的内存分区的位置;步骤104中将热点分区的最优部署分区位置告知热点分区当前所在的节点,使得该节点将热点分区迁移到该最优部署分区位置上。
为了便于理解上述实施例,下面将以上述实施例的一个具体应用场景为例进行描述。
节点A上部署有内存分区Data1,节点B上部署有内存分区Data2,节点C上部署有内存分区Data3。内存分区部署装置确定在预置时间段4小时内,Data1的被访问次数为2500次;Data2的被访问次数为3100次;Data3的被访问次数2100次。内存分区部署装置将被访问次数最高的前两个内存分区,即Data1与Data2确认为热点分区。
内存分区部署装置确定Data1被位于节点A上的进程App1访问1000次,被位于节点B上的进程App2访问500次;Data2被位于节点B上的进程App2访问800次,被位于节点C上的进程App3访问700次;Data3被位于节点A上的进程App1访问300次,被位于节点B上的进程App2访问600次。
内存分区部署装置确定节点A的权值为1,节点B的权值为3,节点C的权值为1。
内存分区部署装置计算得到Data1被App1访问1000×1=1000次,被App2访问500×3=1500次,因此将App2所在的节点B确认为Data1的最优部署节点;内存分区部署装置计算得到Data2被App2访问800×3=2400次,被App3访问700×1=700次,因此将App2所在的节点B确认为Data2的最优部署节点。
内存分区部署装置告知节点A:节点B为Data1的最优部署节点,使得节点A将Data1迁移到节点B上;且内存分区部署装置告知节点B:节点B为Data2的最优部署节点,因此节点B无需迁移Data2。
本发明实施例还提供了相关的内存分区部署装置,用于实现上述方法,其基本结构请参阅图3,包括:
热点分区确定模块301,用于确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区;
访问次数确定模块302,用于确定热点分区被每个节点访问的次数;
最优节点确定模块303,用于根据热点分区被每个节点访问的次数,确定热点分区的最优部署节点;
最优节点告知模块304,用于将热点分区的最优部署节点告知热点分区当前所在的节点。
本实施例提供的内存分区部署装置中,热点分区确定模块301确定预置时间段内分布式***中的热点分区;访问次数确定模块302确定热点分区被每个节点访问的次数;最优节点确定模块303根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;最优节点告知模块304将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的内存分区部署装置都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。
其中,作为本发明的又一个实施例,最优节点确定模块具体用于:
将访问热点分区次数最多的节点确定为热点分区的最优部署节点,以最大程度的降低分布式***跨网络访问的次数。
图3所示的实施例给出了本发明提供的内存分区部署装置的基本结构,下面的实施例提供了一种更为细化的内存分区部署装置,请参阅图4,包括:
热点分区确定模块401,用于确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区;
访问次数确定模块402,用于确定热点分区被每个节点访问的次数;
分区上限确定模块403,用于确定每个节点所能容纳的内存分区个数的上限;
最优节点确定模块404,用于将所容纳的内存分区个数未达到上限的节点中,访问热点分区次数最多的节点确定为热点分区的最优部署节点;
最优节点告知模块405,用于将热点分区的最优部署节点告知热点分区当前所在的节点。
本实施例提供的方法中,热点分区确定模块401确定预置时间段内分布式***中的热点分区;访问次数确定模块402确定热点分区被每个节点访问的次数;最优节点确定模块404根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;最优节点告知模块405将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的内存分区部署装置都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。同时本实施例中最优节点确定模块404仅在容纳的内存分区个数未达到分区上限确定模块403确定的上限的节点中确定最优部署节点。若一个节点所容纳的内存分区的个数已达到上限,则该节点不会再被确认为热点分区的最优部署节点,这样后续的热点分区就不再会被迁移到该节点上,不会超出该节点的容纳能力。
图3所示的实施例给出了本发明提供的内存分区部署装置的基本结构,下面的实施例将对其中的访问次数确定模块进行细化,请参阅图5,包括:
热点分区确定模块501,用于确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区;
访问次数确定模块502,用于确定热点分区被每个节点访问的次数。本实施例中,访问次数确定模块502包括:
次数确定单元5021,用于确定每个节点的访问热点分区的实际次数;
权值确定单元5022,用于确定每个节点的权值;
次数计算单元5023,用于计算每个节点的权值与访问热点分区的实际次数的乘积,得到热点分区被每个节点访问的次数。
最优节点确定模块503,用于将所容纳的内存分区个数未达到上限的节点中,访问热点分区次数最多的节点确定为热点分区的最优部署节点;
最优节点告知模块504,用于将热点分区的最优部署节点告知热点分区当前所在的节点。
本实施例提供的方法中,热点分区确定模块501确定预置时间段内分布式***中的热点分区;次数确定单元5021确定每个节点的访问热点分区的实际次数;权值确定单元5022确定每个节点的权值;次数计算单元5023计算每个节点的权值与访问热点分区的实际次数的乘积,得到热点分区被每个节点访问的次数访问次数;最优节点确定模块503根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;最优节点告知模块504将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据附加了权值后热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的内存分区部署装置都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。同时本实施例中最优节点确定模块504仅在容纳的内存分区个数未达到分区上限确定模块503确定的上限的节点中确定最优部署节点。若一个节点所容纳的内存分区的个数已达到上限,则该节点不会再被确认为热点分区的最优部署节点,这样后续的热点分区就不再会被迁移到该节点上,不会超出该节点的容纳能力。
图4所示的实施例给出了本发明提供的内存分区部署装置的基本结构,下面的实施例将对其中的热点分区确定模块进行细化,请参阅图6,包括:
热点分区确定模块601,用于确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区。本实施例中,热点分区确定模块601包括:
次数确定单元6011,用于确定预置时间段内,分布式***中M个内存分区的被访问次数,其中M为正整数;
热点确定单元6012,用于将该M个内存分区中,被访问次数最高的前N个内存分区确定为热点分区,其中N为不大于M的正整数。
访问次数确定模块602,用于确定热点分区被每个节点访问的次数;
分区上限确定模块603,用于确定每个节点所能容纳的内存分区个数的上限;
最优节点确定模块604,用于将所容纳的内存分区个数未达到上限的节点中,访问热点分区次数最多的节点确定为热点分区的最优部署节点;
最优节点告知模块605,用于将热点分区的最优部署节点告知热点分区当前所在的节点。
本实施例提供的方法中,次数确定单元6011确定预置时间段内,分布式***中M个内存分区的被访问次数;热点确定单元6012将该M个内存分区中,被访问次数最高的前N个内存分区确定为热点分区;访问次数确定模块602确定热点分区被每个节点访问的次数;最优节点确定模块604根据热点分区被每个节点访问的次数确定热点分区的最优部署节点;最优节点告知模块605将热点分区的最优部署节点告知热点分区当前所在的节点,使得热点分区当前所在的节点能够将热点分区迁移到最优部署节点上。本实施例根据热点分区被每个节点访问的次数来确定最优部署节点,使得热点分区会被部署到访问该热点分区较多的节点上,这样该节点能够直接对该热点分区进行本地访问。无论访问该热点分区的操作是读操作还是写操作,本实施例提供的内存分区部署装置都能够减少跨网络访问的次数,降低***的时延开销,能够满足实际应用要求。同时本实施例中最优节点确定模块604仅在容纳的内存分区个数未达到分区上限确定模块603确定的上限的节点中确定最优部署节点。若一个节点所容纳的内存分区的个数已达到上限,则该节点不会再被确认为热点分区的最优部署节点,这样后续的热点分区就不再会被迁移到该节点上,不会超出该节点的容纳能力。
为了便于理解上述实施例,下面将以上述实施例的一个具体应用场景为例进行描述。
节点A上部署有内存分区Data1,节点B上部署有内存分区Data2,节点C上部署有内存分区Data3。热点分区确定模块501确定在预置时间段4小时内,Data1的被访问次数为2500次;Data2的被访问次数为3100次;Data3的被访问次数2100次。热点分区确定模块501将被访问次数最高的前两个内存分区,即Data1与Data2确认为热点分区。
次数确定单元5021确定Data1被位于节点A上的进程App1访问1000次,被位于节点B上的进程App2访问500次;Data2被位于节点B上的进程App2访问800次,被位于节点C上的进程App3访问700次;Data3被位于节点A上的进程App1访问300次,被位于节点B上的进程App2访问600次。
权值确定单元5022确定节点A的权值为1,节点B的权值为3,节点C的权值为1。
次数计算单元5023计算得到Data1被App1访问1000×1=1000次,被App2访问500×3=1500次,因此最优节点确定模块503将App2所在的节点B确认为Data1的最优部署节点;次数计算单元5023计算得到Data2被App2访问800×3=2400次,被App3访问700×1=700次,因此最优节点确定模块503将App2所在的节点B确认为Data2的最优部署节点。
最优节点告知模块504告知节点A:节点B为Data1的最优部署节点,使得节点A将Data1迁移到节点B上;且最优节点告知模块504告知节点B:节点B为Data2的最优部署节点,因此节点B无需迁移Data2。
上面从单元化功能实体的角度对本发明实施例中的内存分区部署装置进行了描述,下面从硬件处理的角度对本发明实施例中的内存分区部署装置进行描述,请参阅图7,本发明实施例中的内存分区部署装置700另一实施例包括:
输入装置701、输出装置702、处理器703和存储器704(其中内存分区部署装置700中的处理器703的数量可以一个或多个,图4中以一个处理器703为例)。在本发明的一些实施例中,输入装置701、输出装置702、处理器703和存储器704可通过总线或其它方式连接,其中,图4中以通过总线连接为例。
其中,通过调用存储器704存储的操作指令,处理器703用于执行如下步骤:
确定预置时间段内,分布式***中的热点分区,该分布式***包括多个节点,该节点上部署有内存分区,该热点分区为分布式***中被访问次数排在前列的内存分区;
确定热点分区被每个节点访问的次数;
根据热点分区被每个节点访问的次数,确定热点分区的最优部署节点;
将热点分区的最优部署节点告知热点分区当前所在的节点。
本发明的一些实施例中,处理器703还执行如下步骤:
将访问热点分区次数最多的节点确定为热点分区的最优部署节点。
本发明的一些实施例中,处理器703还执行如下步骤:
确定每个节点所能容纳的内存分区个数的上限;
将所容纳的内存分区个数未达到上限的节点中,访问热点分区次数最多的节点确定为热点分区的最优部署节点。
本发明的一些实施例中,处理器703还执行以下操作:
确定每个节点的访问热点分区的实际次数;
确定每个节点的权值;
计算每个节点的权值与访问热点分区的实际次数的乘积,得到热点分区被每个节点访问的次数。
本发明的一些实施例中,处理器703还执行以下操作:
确定预置时间段内,分布式***中M个内存分区的被访问次数,M为正整数;
将该M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,其中N为不大于M的正整数。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (8)
1.一种内存分区部署方法,其特征在于,包括:
确定预置时间段内,分布式***中的热点分区,所述分布式***包括多个节点,所述节点上部署有内存分区,所述热点分区为分布式***中被访问次数排在前列的内存分区;
确定所述热点分区被每个节点访问的次数;
根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点;
将所述热点分区的最优部署节点告知所述热点分区当前所在的节点;
所述根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点包括:
将访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
2.根据权利要求1所述的内存分区部署方法,其特征在于,所述方法还包括:
确定每个节点所能容纳的内存分区个数的上限;
所述根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点包括:
将所容纳的内存分区个数未达到上限的节点中,访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
3.根据权利要求1至2中任一项所述的内存分区部署方法,其特征在于,所述确定所述热点分区被每个节点访问的次数包括:
确定每个节点的访问所述热点分区的实际次数;
确定每个节点的权值;
计算所述每个节点的权值与所述访问所述热点分区的实际次数的乘积,得到所述热点分区被每个节点访问的次数。
4.根据权利要求1至2中任一项所述的内存分区部署方法,其特征在于,所述确定预置时间段内,分布式***中的热点分区包括:
确定预置时间段内,分布式***中M个内存分区的被访问次数,所述M为正整数;
将所述M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,所述N为不大于M的正整数。
5.一种内存分区部署装置,其特征在于,包括:
热点分区确定模块,用于确定预置时间段内,分布式***中的热点分区,所述分布式***包括多个节点,所述节点上部署有内存分区,所述热点分区为分布式***中被访问次数排在前列的内存分区;
访问次数确定模块,用于确定所述热点分区被每个节点访问的次数;
最优节点确定模块,用于根据所述热点分区被每个节点访问的次数,确定所述热点分区的最优部署节点;
最优节点告知模块,用于将所述热点分区的最优部署节点告知所述热点分区当前所在的节点;
所述最优节点确定模块具体用于:
将访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
6.根据权利要求5所述的内存分区部署装置,其特征在于,所述装置还包括:
分区上限确定模块,用于确定每个节点所能容纳的内存分区个数的上限;
所述最优节点确定模块具体用于:将所容纳的内存分区个数未达到上限的节点中,访问所述热点分区次数最多的节点确定为所述热点分区的最优部署节点。
7.根据权利要求5至6中任一项所述的内存分区部署装置,其特征在于,所述访问次数确定模块包括:
次数确定单元,用于确定每个节点的访问所述热点分区的实际次数;
权值确定单元,用于确定每个节点的权值;
次数计算单元,用于计算所述每个节点的权值与所述访问所述热点分区的实际次数的乘积,得到所述热点分区被每个节点访问的次数。
8.根据权利要求5至6中任一项所述的内存分区部署装置,其特征在于,所述热点分区确定模块包括:
次数确定单元,用于确定预置时间段内,分布式***中M个内存分区的被访问次数,所述M为正整数;
热点确定单元,用于将所述M个内存分区中,被访问次数最高的前N个内存分区,确定为热点分区,所述N为不大于M的正整数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767519.2A CN104516952B (zh) | 2014-12-12 | 2014-12-12 | 一种内存分区部署方法与装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410767519.2A CN104516952B (zh) | 2014-12-12 | 2014-12-12 | 一种内存分区部署方法与装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104516952A CN104516952A (zh) | 2015-04-15 |
CN104516952B true CN104516952B (zh) | 2018-02-13 |
Family
ID=52792251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410767519.2A Active CN104516952B (zh) | 2014-12-12 | 2014-12-12 | 一种内存分区部署方法与装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104516952B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105743975B (zh) * | 2016-01-28 | 2019-03-05 | 深圳先进技术研究院 | 基于数据访问分布的缓存放置方法及*** |
CN112076464B (zh) * | 2020-09-04 | 2022-06-21 | 腾讯科技(深圳)有限公司 | 一种数据请求处理方法、装置、计算机设备及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582013A (zh) * | 2009-06-10 | 2009-11-18 | 成都市华为赛门铁克科技有限公司 | 一种在分布式存储中处理存储热点的方法、装置及*** |
WO2012167378A1 (en) * | 2011-06-06 | 2012-12-13 | International Business Machines Corporation | System and method of optimization of in-memory data grid placement |
CN102244685B (zh) * | 2011-08-11 | 2013-09-18 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
CN103336670A (zh) * | 2013-06-04 | 2013-10-02 | 华为技术有限公司 | 一种基于数据温度对数据块自动进行分布的方法和装置 |
CN103365717A (zh) * | 2013-06-25 | 2013-10-23 | 华为技术有限公司 | 内存访问方法、装置及*** |
-
2014
- 2014-12-12 CN CN201410767519.2A patent/CN104516952B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101582013A (zh) * | 2009-06-10 | 2009-11-18 | 成都市华为赛门铁克科技有限公司 | 一种在分布式存储中处理存储热点的方法、装置及*** |
WO2012167378A1 (en) * | 2011-06-06 | 2012-12-13 | International Business Machines Corporation | System and method of optimization of in-memory data grid placement |
CN102244685B (zh) * | 2011-08-11 | 2013-09-18 | 中国科学院软件研究所 | 一种支持负载均衡的分布式缓存动态伸缩方法及*** |
CN103336670A (zh) * | 2013-06-04 | 2013-10-02 | 华为技术有限公司 | 一种基于数据温度对数据块自动进行分布的方法和装置 |
CN103365717A (zh) * | 2013-06-25 | 2013-10-23 | 华为技术有限公司 | 内存访问方法、装置及*** |
Also Published As
Publication number | Publication date |
---|---|
CN104516952A (zh) | 2015-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ebadi et al. | An energy‐aware method for data replication in the cloud environments using a tabu search and particle swarm optimization algorithm | |
JP6416279B2 (ja) | 拡張縮小可能なファイル格納サービス | |
JP6371858B2 (ja) | 複数エクステント動作のための原子書き込み | |
CN109274752A (zh) | 区块链数据的访问方法及装置、电子设备、存储介质 | |
CN104899286B (zh) | 分布式内容存储和取回 | |
US9134908B2 (en) | Logical volume space sharing | |
CN100476742C (zh) | 基于对象存储设备的负载平衡方法 | |
US10915497B1 (en) | Multi-tier storage system with controllable relocation of files from file system tier to cloud-based object storage tier | |
CN105893139A (zh) | 在云存储环境中用于向租户提供存储服务的方法和装置 | |
CN104346345B (zh) | 数据的存储方法及装置 | |
CN107885758A (zh) | 一种虚拟节点的数据迁移方法和虚拟节点 | |
US20120159115A1 (en) | Software architecture for service of collective memory and method for providing service of collective memory using the same | |
CN105183670B (zh) | 用于分布式缓存***的数据处理方法和装置 | |
CN107179878A (zh) | 基于应用优化的数据存储的方法和装置 | |
CN109446114A (zh) | 一种空间数据缓存方法、装置和存储介质 | |
CN107391033B (zh) | 数据迁移方法及装置、计算设备、计算机存储介质 | |
CN103067479A (zh) | 一种基于文件冷热的网盘同步方法及*** | |
CN107465729B (zh) | 基于访问次数排名的虚拟节点副本调整***及方法 | |
CN109151824A (zh) | 一种基于5g架构的图书馆数据服务扩展***及方法 | |
CN108595503A (zh) | 文件处理方法及服务器 | |
CN107807797A (zh) | 数据写入的方法、装置及服务器 | |
CN104956341A (zh) | 数据迁移方法、装置和处理器 | |
CN106331160A (zh) | 一种数据迁移方法及*** | |
Chen et al. | Latency minimization for mobile edge computing networks | |
CN109873839A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20220216 Address after: 550025 Huawei cloud data center, jiaoxinggong Road, Qianzhong Avenue, Gui'an New District, Guiyang City, Guizhou Province Patentee after: Huawei Cloud Computing Technologies Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
TR01 | Transfer of patent right |