青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

云計算實踐2

 

上一篇《基于云計算的價格查詢實現》就算是云計算實踐1吧,所以這篇就叫《云計算實踐2》。其實今年開始研究云計算有一段時間了,約3個月前研究md5破解(http://www.shprog.com/HashCrack.aspx),那個項目就是選來玩云計算的,當時覺得md5破解這個小項目好玩,邏輯很簡單,密碼字母組合可長可短,規模可大可小,1臺機器不嫌少,1萬臺不嫌多,所以就選中了它,沒想到第一個md5破解版本后來演變成了主要是密碼數據庫的制造,雖然第一版沒有做成標準云計算,但也算有個結果,而且存儲效率、制造速度還是令人滿意的,也就是說那個項目只是云計算研究的副產品,我的本意并不是想做一個md5破解或者qq密碼破解,但結果就產生了這么一個產品,也算是努力了一個多月的結果,期間對hash算法、存儲格式等絞盡腦汁思考了很久,也因此對云計算倒是考慮得不多,最終偏離了大目標。

好在后續研究基于云計算的價格查詢終于又回到云計算上來了,而且仿照googlemap/reduce做了一個標準的jobserver + tasknode形式的實現,雖然兄弟們未必對價格查詢項目看好,但對這個基于windows實現的云計算框架還是一致看好的,價格查詢項目第一階段基本完成預定目標,所以昨天我又將以前md5破解的東西寫了一個在線版的dll,拿到云計算框架里面來試圖云破解,不過這個不是特別成功,主要是即時計算耗時有些多,平均1task計算1億組合大約需要30秒,因此在我現在只有2個點參與運算的情況下遍歷很大區間是很耗時的,也因此我沒有做一個在線云破解md5的頁面,這個工作作為研究性探索也只在我的控制端下了幾個云計算的任務就告一段落,今后將致力于其他更實用的云計算實踐。

為了做這第二個云計算的dll,我將原來定義的jobtask接口(可參見《基于云計算的價格查詢實現》)修改了一下,不再使用原來的c風格接口,直接改成c++風格了,如下:

interface IJobTask

{

        virtual HMODULE free() = 0;

        //初始化函數,部署環境等

        virtual bool init(bool tasknode) = 0;

        //分割函數,分割輸入

        virtual size_t split(const char *input, size_t len, std::vector<CAutoBuffer *> &vbuf) = 0;

        //task執行函數

        virtual bool map(const char *cmdline, CAutoBuffer &buf, CAutoBuffer &ibuf) = 0;

        //reduce打包輸出函數

        virtual bool reduce(std::vector<CAutoBuffer *> &vbuf, CAutoBuffer &buf) = 0;

        //獲取執行錯誤

        virtual char *geterror() = 0;

};

有朋友批評我,說我的接口使用stl容器,使用自定義類CAutoBuffer等不好,我以前也是這么跟別人講的,接口不要使用這些東西,但看了googlemap/reduce實現用的都是MapInputReduceInput之后我改變了看法,暫時就這樣定義吧,大不了各個dll都用同一版本的vc編譯就是了,也沒有什么大不了的,如果不行整體升級一下總可以吧,為了短時間盯住主要目標,也只能大刀闊斧不考慮過多細節了,這也算是一個平衡的結果吧。

這次修改除了修改了接口,簡化了實現之外,還實現了一些特性,動態卸載,上一個版本裝入之后就不卸載了,要關閉exe才能卸載這些dll,所以無法熱更新,這個版本實現動態卸載之后就支持熱更新了,關鍵就在那個free函數,

virtual HMODULE free() = 0;

該函數實例如下:

        virtual HMODULE free()

        {

                HMODULE h = m_hlib;

                delete this;

                return h;

        //     if(h) FreeLibrary(h);                這里釋放是有問題的,所以不能這樣釋放

        }

在外部調用的地方

FreeLibrary(jf->free());

這樣就實現了動態卸載dll的功能

 

用上云計算布局的價格查詢的這段時間,還是有一些經驗教訓的,基于這種相隔很遠,網絡條件差別很大的機器布局的云計算環境,可靠性是很差的,大多數時間可能反應還是比較快,但有的時候反應就特別慢,可能網絡延時會相差200ms,或者500ms,或者更多,我特意記錄了每個task的實際執行時間和包括網絡傳輸在內的總時間,就是從這兩個時間看出差距的,所以如果要基于這種環境做實時性很高的計算還是不適合的,如果對節點反饋實時性要求很高,那一定要布置類似局域網形式的計算環境,點點反饋時間1ms內,而且響應穩定不易受到影響。此外磁盤Log時間是不定的,我記錄最后一個task完成到job完成之間調用了兩次WriteLog,對大多數job來說,最后一個完成的task的時間和job完成的時間一致,但偶爾有少數job時間和最后一個完成的task時間差別很大,甚至有超過1s的,原先沒有這么精細的測量,這次在jobserver寫了很多log,起初是為了找錯誤,后來是為了追蹤jobtask執行,倒是意外的發現了一些問題,也獲得了一些意外的收獲。

云計算好啊,早年我做過一個遠程控制的程序,當時做了一條命令broadcast,可以廣播其他任意命令,當時很得意于這個設計,也有指揮千軍萬馬的感覺,但當時各自執行,結果并不匯總,各個任務完全獨立。現在給云計算環境下達一個任務,也有同樣的感覺,可能對使用我的價格查詢(http://www.oldworm.com/pps.aspx)的用戶或者使用google查詢的用戶根本感覺不到,他這一個查詢提交下去后面有那么多機器聯動運算,但作為開發人員,真真切切的看到后面那么多機器在執行任務,真的是很爽的一件事情,一起看下我兩臺機器聯動執行任務的場面共勉吧:

 

 

 

圖看得不是很清楚,實際上第一個taskmanager是一臺機器,另一個taskmanager是另一臺機器,那兩個都是在遠程桌面里面運行的,下面ie是我的網頁,可以看到我在網頁里面查詢nokia的時候,上面兩臺機器的tasknodeapp里面就接收到任務并執行了任務,那個tasknodeapp是我臨時用來演示的,事實上里面都是調用tasknode.dlltasknode的主要任務都是tasknode.dll執行的,為這個dll做了好幾個不同的容器,有service的有普通mfc的還有console的,這也是我的得意設計哦。

未來還將繼續云計算實踐,期待有相同興趣愛好的朋友一起交流。

Posted on 2010-10-03 14:23 袁斌 閱讀(363) 評論(0)  編輯 收藏 引用
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久精品2019中文字幕| 在线一区二区日韩| 激情av一区| 欧美激情1区2区| 久久久久国产精品厨房| 欧美一区=区| 久久久久久噜噜噜久久久精品| 最新国产精品拍自在线播放| 欧美精品在线观看播放| 久久亚洲一区| 欧美人体xx| 欧美日韩在线一区| 国产精品久久久久一区二区三区| 日韩视频免费看| 亚洲美女精品久久| 一区二区精品| 久久久久久尹人网香蕉| 久久在线视频| 欧美激情按摩在线| 国产精品日韩一区| 国内精品久久久久久| 国语自产精品视频在线看抢先版结局| 蜜臀久久久99精品久久久久久 | 老司机精品久久| 久久久国产91| 蜜桃av一区| 国产精品试看| 国产精品久久久一区二区| 亚洲最新色图| 久久久综合精品| 欧美极品在线播放| 国产精品欧美日韩一区二区| 亚洲福利av| 亚洲欧美国产不卡| 久热精品在线视频| 亚洲一区二区免费视频| 久久精品国产精品亚洲综合| 欧美久久在线| 亚洲国产成人av在线| 亚洲女优在线| 亚洲成人资源网| 亚洲卡通欧美制服中文| 亚洲国产成人在线播放| 欧美一区二区视频网站| 欧美区视频在线观看| 国产午夜精品理论片a级大结局 | 久久久激情视频| 噜噜爱69成人精品| 欧美日韩中文| 激情91久久| 久久人人爽爽爽人久久久| 99国产精品国产精品久久| aa亚洲婷婷| 欧美日韩亚洲激情| 在线日韩欧美视频| 亚洲精品综合在线| 欧美激情一区二区三区蜜桃视频| 久热精品在线视频| 亚洲欧美色一区| 免费成人av资源网| 亚洲一品av免费观看| 麻豆91精品| 亚洲高清视频在线| 久久久精品2019中文字幕神马| 一区二区三区日韩精品视频| 欧美成人中文| 久久久久久9| 国产日本欧美一区二区三区| 国产精品久久久久久妇女6080| 欧美日韩另类一区| 国产一区在线看| 久久福利影视| 久久国产综合精品| 国产一区二区三区在线观看精品| 欧美日韩一区二区三区在线观看免| 欧美日韩国产高清视频| 在线欧美日韩精品| 裸体丰满少妇做受久久99精品| 欧美成人高清| 久久久精品欧美丰满| 国内精品久久久久影院色| 国产一区美女| 日韩视频在线观看免费| 一区二区三区黄色| 国产精品久久久久aaaa| 亚洲专区一区| 久久综合伊人77777蜜臀| 伊人精品视频| 午夜精品久久| 久久久国产精品一区二区中文| 免费欧美在线视频| 亚洲国产成人在线播放| 亚洲精品免费一二三区| 欧美日韩国产区一| 午夜精品三级视频福利| 久久免费一区| 麻豆精品91| 日韩一二在线观看| 亚洲午夜女主播在线直播| 亚洲高清久久| 亚洲精品视频免费观看| 最新日韩欧美| 欧美三级在线| 欧美影院精品一区| 欧美韩日一区二区| 亚洲欧美国产精品va在线观看| 日韩一区二区精品在线观看| 亚洲人成久久| 国产精品成人一区二区| 久久字幕精品一区| 国产精品国产a级| 狂野欧美一区| 亚洲女同精品视频| 日韩亚洲精品在线| 翔田千里一区二区| 极品少妇一区二区三区| 亚洲少妇自拍| 亚洲第一在线| 亚洲欧洲一区二区三区| 精品51国产黑色丝袜高跟鞋| 亚洲精品之草原avav久久| 国产亚洲精品一区二555| 亚洲黄网站在线观看| 国产综合自拍| 亚洲视频中文| 久久综合给合久久狠狠色 | 午夜日韩视频| 亚洲人成在线免费观看| 亚洲在线视频一区| 亚洲美女av在线播放| 欧美亚洲免费电影| 国产一区二区三区四区| 亚洲精品国产无天堂网2021| 亚洲国产成人av| 亚洲欧美电影在线观看| 在线精品高清中文字幕| 欧美一级视频免费在线观看| 亚洲一二三区在线观看| 欧美黄色网络| 亚洲精品免费在线| 亚洲欧洲另类国产综合| 久久精品夜色噜噜亚洲aⅴ| 久久综合一区| 国产在线视频不卡二| 亚洲国产精品成人综合| 亚洲日本理论电影| 另类成人小视频在线| 欧美激情一区二区三区全黄| 精品动漫3d一区二区三区免费| 久久久午夜视频| 亚洲精品日韩激情在线电影| 亚洲国产成人久久综合| 久久精品国产亚洲高清剧情介绍| 久久视频一区| 久久久久免费观看| 国产午夜精品在线观看| 久久久久成人网| 可以免费看不卡的av网站| 国产欧美一区二区三区在线看蜜臀| 亚洲欧美变态国产另类| 欧美日本在线播放| 狼人社综合社区| 亚洲欧洲日本国产| 久久精品一本久久99精品| 久久五月婷婷丁香社区| 永久免费视频成人| 欧美日本中文字幕| 在线亚洲美日韩| 欧美一区二区三区在线观看视频 | 一本久久知道综合久久| 极品尤物久久久av免费看| 欧美成人免费播放| 亚洲激情成人在线| 亚洲国产日韩精品| 欧美三级网址| 欧美在线观看一区二区| 欧美jjzz| 中文精品在线| 国产精自产拍久久久久久蜜| 一本一道久久综合狠狠老精东影业 | 亚洲免费在线观看| 欧美中文字幕不卡| 亚洲精品视频在线播放| 欧美日韩直播| 久久精品在线免费观看| 亚洲小视频在线| 欧美一区二区黄| 久久久人成影片一区二区三区| 亚洲免费中文| 国产欧美亚洲精品| 蜜臀久久99精品久久久画质超高清| 亚洲欧美日韩成人| 国产一区二区| 国产精品成人播放| 欧美在线日韩精品| 亚洲人成在线观看一区二区| 久久伊人一区二区| 亚洲性感激情| 亚洲国产成人av在线| 国产日韩欧美三区|