成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

多核查找-順序查找也瘋狂

開發(fā) 前端
在去年的軟件開發(fā)2.0技術(shù)大會(huì)上,我講了一個(gè)支持動(dòng)態(tài)負(fù)載均衡的多核查找設(shè)計(jì)方法。基本思想是采用數(shù)據(jù)結(jié)構(gòu)分拆的方法,使用了多級(jí)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。下面先簡(jiǎn)要介紹一下這種多級(jí)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)思路,然后給出一個(gè)采用數(shù)組順序查找作為查找表實(shí)現(xiàn)的多級(jí)數(shù)據(jù)結(jié)構(gòu)類CDHashArray。

在去年的軟件開發(fā)2.0技術(shù)大會(huì)上,我講了一個(gè)支持動(dòng)態(tài)負(fù)載均衡的多核查找設(shè)計(jì)方法。基本思想是采用數(shù)據(jù)結(jié)構(gòu)分拆的方法,使用了多級(jí)的數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)。下面先簡(jiǎn)要介紹一下這種多級(jí)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)思路,然后給出一個(gè)采用數(shù)組順序查找作為查找表實(shí)現(xiàn)的多級(jí)數(shù)據(jù)結(jié)構(gòu)類CDHashArray

CDHashArray中,對(duì)數(shù)組的插入和刪除都是順序化的操作,查找也是近似于順序化的操作,看起來(lái)似乎會(huì)很慢。實(shí)際上對(duì)于小數(shù)組,比如只有幾個(gè)或十來(lái)個(gè)數(shù)組,其效率并不慢,這使得以前在單核時(shí)代無(wú)法用于大型查找的數(shù)組順序查找,在多核時(shí)代卻可以得到很好應(yīng)用前景。

二級(jí)查找結(jié)構(gòu)基本思想

要了解多級(jí)數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì),首先得知道基本的二級(jí)查找數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)思想。

二級(jí)查找結(jié)構(gòu)就是在第1級(jí)查找時(shí)找到二級(jí)子表的位置,然后在找到的二級(jí)子表中進(jìn)行第二次查找來(lái)找到對(duì)應(yīng)的目標(biāo)數(shù)據(jù)。

典型的二級(jí)查找結(jié)構(gòu)示意圖如下:

圖 16.2.1: 二級(jí)查找結(jié)構(gòu)示意圖

二級(jí)查找結(jié)構(gòu)由一級(jí)查找表和二級(jí)子表構(gòu)成,一個(gè)查找表中的每個(gè)節(jié)點(diǎn)指向一個(gè)二級(jí)查找子表。查找時(shí),先將關(guān)鍵詞映射成一級(jí)查找表的位置,然后將對(duì)應(yīng)位置的二級(jí)子表取出,在子表中找到對(duì)應(yīng)的查找目標(biāo)數(shù)據(jù)。

Intel Threading Building Blocks(TBB)開源項(xiàng)目中,其中的concurrent_hash_map使用的就是一種最簡(jiǎn)單的二級(jí)查找結(jié)構(gòu)。它使用了哈希表式的數(shù)據(jù)結(jié)構(gòu),并給哈希表的每個(gè)桶設(shè)一把鎖。

對(duì)于普通的查找,這種簡(jiǎn)單的二級(jí)查找結(jié)構(gòu)也許夠用了,但是對(duì)于一些大型的查找,這種簡(jiǎn)單的二級(jí)查找結(jié)構(gòu)并不能滿足。首先的問(wèn)題是如果子表數(shù)量過(guò)多,則鎖的數(shù)量也非常多,鎖本身需要占用大量的內(nèi)存開銷。

如 果子表數(shù)量過(guò)少,那么又會(huì)引起另外一個(gè)重要的問(wèn)題,那就是負(fù)載平衡問(wèn)題。因?yàn)檫@種情況中有可能各個(gè)二級(jí)子表中的數(shù)據(jù)數(shù)量相差非常大,這將導(dǎo)致某些子表的訪 問(wèn)量很少,而某些子表的訪問(wèn)量很大。這些訪問(wèn)量大的表很容易發(fā)生多個(gè)線程同時(shí)訪問(wèn)的情況,從而導(dǎo)致集中式鎖競(jìng)爭(zhēng)情況的發(fā)生。

為了解決二級(jí)查找結(jié)構(gòu)中的不足,下面來(lái)看看多級(jí)查找結(jié)構(gòu)的設(shè)計(jì)思想。

多級(jí)查找結(jié)構(gòu)設(shè)計(jì)思想

多級(jí)查找結(jié)構(gòu)是在二級(jí)查找結(jié)構(gòu)的基礎(chǔ)上設(shè)計(jì)的,當(dāng)某個(gè)子表中數(shù)據(jù)個(gè)數(shù)過(guò)多時(shí),可以將其拆分成兩個(gè)或更多個(gè)子表,同時(shí)新建一個(gè)索引表來(lái)指向這幾個(gè)拆分候的子表,指向原來(lái)子表的指針指向新建的索引表。

如果拆分后的子表內(nèi)插入的數(shù)據(jù)過(guò)多時(shí),可以繼續(xù)將其分拆,這樣一直分拆下去,將形成一個(gè)多級(jí)的查找數(shù)據(jù)結(jié)構(gòu),下圖就是一個(gè)多級(jí)查找結(jié)構(gòu)示意圖。

責(zé)任編輯:陳四芳 來(lái)源: blog.csdn.net
相關(guān)推薦

2021-05-09 20:22:41

順序查找二叉查找數(shù)據(jù)結(jié)構(gòu)

2012-12-11 09:37:03

開源硬件開源軟件

2010-08-18 13:58:46

路由器啟動(dòng)順序

2023-10-06 23:56:42

順序查找Python

2013-05-20 09:51:00

計(jì)算機(jī)書籍書籍封面語(yǔ)言書籍

2014-08-14 10:38:30

SQL Server查詢

2021-07-09 19:04:55

Cache查找消息

2023-03-02 06:01:00

ExcelAI工具

2011-03-17 17:10:49

iptablesmatchpolicy

2023-08-08 15:50:17

2017-12-26 11:13:41

Linuxfind文件查找

2011-11-08 09:46:10

2021-09-13 12:15:57

Linux文件命令

2012-12-03 09:32:22

ARP

2011-10-31 10:24:03

Linux死機(jī)

2021-08-02 14:44:03

iOS 15查找iPhone

2011-06-27 10:55:13

2009-03-18 23:51:20

病毒光驅(qū)文件夾

2009-10-20 18:30:03

Oracle查找用戶表

2009-02-13 09:24:00

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 色呦呦在线 | 国产一级淫片免费视频 | 精品一区二区三区视频在线观看 | 日韩欧美网 | 成人三级网址 | 狠狠色综合网站久久久久久久 | 中文精品一区二区 | 北条麻妃一区二区三区在线观看 | 欧美黄在线观看 | 精品国产乱码久久久久久果冻传媒 | 日韩精品一区二区久久 | 亚洲高清视频一区 | 欧美一级片在线观看 | 国产a级黄色录像 | 亚洲综合色视频在线观看 | 老司机狠狠爱 | 久久综合伊人 | 国产一区二区三区在线 | 欧美一区成人 | 欧美日韩在线电影 | 亚洲午夜三级 | 伊人电影院av | 青青久久av北条麻妃海外网 | 国产乱码精品一区二区三区五月婷 | 亚洲一区毛片 | 免费人成在线观看网站 | 欧美a在线看 | 久久久久国色av免费观看性色 | 中文日本在线 | 色又黄又爽网站www久久 | 国产精品久久久亚洲 | 99精品在线 | 天堂网中文字幕在线观看 | 夜夜操天天艹 | 欧美a区 | 国产精品成人国产乱一区 | 久久精品久久综合 | 亚洲中午字幕 | 久久免费视频1 | 欧美一区二区免费 | 欧美v日韩 |