• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
             

            關(guān)于內(nèi)存數(shù)據(jù)庫(kù)

             

            最近要將一些數(shù)據(jù)放到內(nèi)存里面做很高的并發(fā)操作,考慮了很多方案,

            1、 簡(jiǎn)單點(diǎn)使用map hash_map等自己管理。

            2、 sqlite內(nèi)存表。

            3、 fastdb內(nèi)存數(shù)據(jù)庫(kù)。

            4、 ExtremeDb,TimesTen等。

            比較測(cè)試了一下123,發(fā)現(xiàn)還是自己實(shí)現(xiàn)速度最快,比fastdb模式快3-5倍,fastdb模式比sqlite內(nèi)存表模式快10倍左右,由于自己實(shí)現(xiàn)不具有典型通用性,多線程下訪問(wèn)效率會(huì)下降,要管理多線程下各種更新查找等還是比較麻煩的,所以在13方案之間糾結(jié)。

            為了使得決策更好一些,暫時(shí)還沒(méi)做決定,順便到萬(wàn)方等上面搜索了一些論文來(lái)看,看來(lái)看去看得真來(lái)氣啊,雖然都叫內(nèi)存數(shù)據(jù)庫(kù)但各種實(shí)現(xiàn)的都有,有用gdbm來(lái)做的,有直接map管理的,有hash管理數(shù)據(jù)的,有t樹(shù)管理的,有數(shù)組隊(duì)列管理的,有的明顯就是個(gè)不大變的東西還弄個(gè)啥事務(wù)的,靠,剛剛居然還看到一篇鳥(niǎo)文《電網(wǎng)監(jiān)控系統(tǒng)實(shí)時(shí)數(shù)據(jù)庫(kù)的設(shè)計(jì)與實(shí)現(xiàn)》里面的測(cè)試居然是1000條,插入時(shí)間80毫秒,真可笑啊,區(qū)區(qū)這么點(diǎn)數(shù)據(jù)也好意思測(cè),還要花80毫秒,還自以為很快,這個(gè)速度至少可提高1000倍以上啊,這幫垃圾,寫(xiě)的啥鳥(niǎo)文章,研究個(gè)屁啊。

            看完這十來(lái)篇論文,俺的思緒又回到1999年,當(dāng)年我給別人優(yōu)化過(guò)一個(gè)電信計(jì)費(fèi)的軟件(看的論文里面有好幾篇講電信計(jì)費(fèi)的),當(dāng)時(shí)有個(gè)朋友的朋友拿了個(gè)需求過(guò)來(lái),7000萬(wàn)條記錄,原來(lái)計(jì)算費(fèi)單要花十幾個(gè)小時(shí)吧,我?guī)退牧讼?,十?lái)分鐘就算完了,朋友很滿意,當(dāng)時(shí)的做法很簡(jiǎn)單,就是弄了個(gè)mmtable,大體就是跟map類似的東西吧,那個(gè)時(shí)候map還沒(méi)流行起來(lái),俺也不知道,所以就自己弄了個(gè)內(nèi)存表,內(nèi)部基本就是二分查找了,那個(gè)時(shí)候我對(duì)hash都不大熟悉,B樹(shù)之類的算法剛接觸也不會(huì)用,就這么個(gè)東西當(dāng)時(shí)的電腦也只要花十來(lái)分鐘,我估計(jì)就算是那個(gè)老程序放在現(xiàn)在的普通臺(tái)式機(jī)上要不了幾秒鐘就可算完。也不知道這么幾千萬(wàn)條記錄的小需求怎么在這幫人眼里就成了什么海量數(shù)據(jù),對(duì)俺來(lái)說(shuō)跟玩似的,區(qū)區(qū)幾千萬(wàn)嘛,不過(guò)是俺拿來(lái)測(cè)試用的。

            去年中做了個(gè)md5 hash反查的東西,數(shù)據(jù)都是幾百億到幾萬(wàn)億的,后來(lái)的效果就是一個(gè)文件可存萬(wàn)億記錄,一次查詢平均1.2IO,即使全放在SATA磁盤(pán)上也就十來(lái)毫秒而已。

            區(qū)區(qū)幾千萬(wàn)條記錄咋就叫什么海量數(shù)據(jù)呢,海量個(gè)毛啊,內(nèi)存都放得下的叫什么海量,現(xiàn)在服務(wù)器動(dòng)不動(dòng)都是幾十G內(nèi)存,區(qū)區(qū)千萬(wàn)根本算不上什么,查詢定位都可到微妙了,1秒插入至少千萬(wàn)條了,居然還看到1000條插入的測(cè)試,真是不得不佩服國(guó)內(nèi)這幫垃圾研究生的水平,也不知道這種論文咋就能通過(guò)審查,只能得出結(jié)論他們的老師也都是豬。

                     罵歸罵自己的問(wèn)題還需要繼續(xù)努力,對(duì)咱目前的需求來(lái)說(shuō)自己管理數(shù)據(jù),即使一個(gè)線程都搞得定,因?yàn)椴贿^(guò)區(qū)區(qū)幾個(gè)表,幾十萬(wàn)條記錄而已,不過(guò)這種10年前咱就會(huì)的技術(shù)還真是拿不出手,怎么的也得做得更好一點(diǎn),呵呵,繼續(xù)研究吧,多線程下內(nèi)存數(shù)據(jù)庫(kù),從概念上看的確是個(gè)很有吸引力的東西,要是性能跟得上,其實(shí)在很多地方可以取代普通的數(shù)據(jù)結(jié)構(gòu)用法了,可以大大減少編程難度,甚至我在想如果有個(gè)支持事務(wù)的內(nèi)存數(shù)據(jù)庫(kù),之前設(shè)計(jì)的cad類軟件的undo/redo都可以用事務(wù)來(lái)實(shí)現(xiàn),完全可以拋棄先前設(shè)計(jì)的復(fù)雜結(jié)構(gòu),其實(shí)這種東西即使不用內(nèi)存數(shù)據(jù)庫(kù)就算是用個(gè)sqlite都完全能搞定,唉,往事不堪回首啊,看來(lái)數(shù)據(jù)庫(kù)方面的確得多花功夫,特別是多線程和分布式模式下的內(nèi)存數(shù)據(jù)庫(kù)。

             

             

            Posted on 2011-01-21 13:37 袁斌 閱讀(8939) 評(píng)論(8)  編輯 收藏 引用 所屬分類: c++ 、云計(jì)算 、從業(yè)感悟

            Feedback

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-21 15:33 by 楊粼波
            memcached

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-21 15:35 by 袁斌
            @楊粼波
            memcached和內(nèi)存數(shù)據(jù)庫(kù)完全不同,俺要的是數(shù)據(jù)運(yùn)算,而不僅僅是存儲(chǔ)key-value

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-22 11:02 by zuhd
            自己動(dòng)手 豐衣足食 BTree足矣
            我直接用系統(tǒng)的hash_map 能緩存 能更新 就夠了
            速度神馬的都是浮云 只要夠用 簡(jiǎn)單 就哦了

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-22 11:04 by 袁斌
            @zuhd
            很有道理,我也傾向于和你一樣的做法,用更復(fù)雜的東西效率低了可控度還下降了,出了問(wèn)題還難查,再看看并發(fā)上如何提高下即可。

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-23 16:14 by 周龍亭
            LZ大牛,期待LZ能給大家分享點(diǎn)實(shí)際的東西

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-23 16:28 by 袁斌
            算不上什么大牛啊,有空就寫(xiě)一點(diǎn),主要為了和大家交流,向朋友們學(xué)習(xí)。

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-01-23 19:16 by 楊粼波
            采用何種解決方案,視乎你的需求而定。
            合適的就是最好的,
            所以,如何去做,是你自己去選擇,
            我給你多一個(gè)選擇,剩下的就是你自己去選擇了。

            # re: 關(guān)于內(nèi)存數(shù)據(jù)庫(kù)  回復(fù)  更多評(píng)論   

            2011-09-01 12:39 by 鄧萬(wàn)宇
            當(dāng)年我給別人優(yōu)化過(guò)一個(gè)電信計(jì)費(fèi)的軟件(看的論文里面有好幾篇講電信計(jì)費(fèi)的),當(dāng)時(shí)有個(gè)朋友的朋友拿了個(gè)需求過(guò)來(lái),7000萬(wàn)條記錄,原來(lái)計(jì)算費(fèi)單要花十幾個(gè)小時(shí)吧,我?guī)退牧讼?,十?lái)分鐘就算完了,朋友很滿意,當(dāng)時(shí)的做法很簡(jiǎn)單,就是弄了個(gè)mmtable,

            去年中做了個(gè)md5 hash反查的東西,數(shù)據(jù)都是幾百億到幾萬(wàn)億的,后來(lái)的效果就是一個(gè)文件可存萬(wàn)億記錄,一次查詢平均1.2次IO,即使全放在SATA磁盤(pán)上也就十來(lái)毫秒而已。

            看完這些,簡(jiǎn)直驚呆了?。。?

            -----能不能給個(gè)QQ,聯(lián)系一下。我的 QQ:58028654, MSN: wanyu.deng@gmail.com; Tel:13379284746
            太仰慕你了!!

            无码精品久久久天天影视| 久久A级毛片免费观看| 久久久久成人精品无码| 九九久久精品无码专区| 国产成人无码精品久久久免费| 国产精品久久一区二区三区| 久久精品亚洲精品国产欧美| 狠狠色噜噜色狠狠狠综合久久| 久久99精品久久久久子伦| 国产精品内射久久久久欢欢| 亚洲乱码日产精品a级毛片久久| 奇米综合四色77777久久| 狠狠综合久久综合中文88| 欧美成人免费观看久久| 精品久久久久久久| 中文字幕久久亚洲一区| 久久亚洲国产欧洲精品一| 久久久噜噜噜久久| 久久中文娱乐网| 99久久国产精品免费一区二区| 久久青草国产精品一区| 色婷婷久久综合中文久久蜜桃av | 久久综合综合久久97色| 狠狠精品久久久无码中文字幕| 91精品国产综合久久精品| 亚洲欧美国产日韩综合久久| 久久综合给合久久国产免费| 国产成人无码精品久久久性色| segui久久国产精品| 久久亚洲国产中v天仙www| 亚洲中文精品久久久久久不卡 | 国内精品久久久久国产盗摄| 色欲久久久天天天综合网| 久久久久亚洲AV无码专区网站| 久久免费视频观看| 久久99久久99小草精品免视看| 久久久久99精品成人片欧美| 一级做a爰片久久毛片毛片| 午夜福利91久久福利| 亚洲国产成人精品女人久久久 | 超级碰碰碰碰97久久久久|