国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于MongoDB的鋁合金模板設(shè)計(jì)軟件數(shù)據(jù)存儲(chǔ)系統(tǒng)

2018-06-20 08:21:24
土木建筑工程信息技術(shù) 2018年2期
關(guān)鍵詞:分片存儲(chǔ)系統(tǒng)鋁合金

(中國(guó)建筑科學(xué)研究院深圳分院,深圳 518057)

1 引言

我國(guó)建筑業(yè)正處在大發(fā)展、大建設(shè)階段。建筑業(yè)是資源和能源消耗大戶(hù),其中模板消耗木材的數(shù)量非常龐大。據(jù)統(tǒng)計(jì),木模板市場(chǎng)占到整個(gè)模板市場(chǎng)的3/4之上。而木模板有效利用率只為5%。木模板系統(tǒng)的使用不僅浪費(fèi)了木材等資源,而且違背了國(guó)家產(chǎn)業(yè)政策向?qū)?,增加了碳排放,也造成了施工成本的大幅提高?/p>

鋁合金模板作為新一代的建筑模板,具有低碳環(huán)保,無(wú)建筑施工垃圾,重量輕。拆裝靈活、剛度高、使用壽命長(zhǎng),澆筑的混凝土面平整光潔,施工對(duì)機(jī)械依賴(lài)程度低等優(yōu)勢(shì)。隨著建筑行業(yè)和科學(xué)技術(shù)的快速發(fā)展,低碳經(jīng)濟(jì)發(fā)展模式已經(jīng)成為全球共識(shí),選擇鋁合金模板系統(tǒng)施工成為必然的發(fā)展趨勢(shì)。

鋁合金模板加工完成送到現(xiàn)場(chǎng)之后,基本不能修改,不像木模板可以隨便切割。即使模板設(shè)計(jì)上的小小差錯(cuò),都可能需要重新深化設(shè)計(jì),加工及制作,再?gòu)膹S(chǎng)家運(yùn)至施工現(xiàn)場(chǎng)。所以要求鋁合金模板設(shè)計(jì)圖紙必須要十分準(zhǔn)確。鋁合金模板設(shè)計(jì)軟件除了處理模板本身的數(shù)據(jù)信息之外,還需要處理項(xiàng)目的建筑模型信息,結(jié)構(gòu)模型信息以保證模板的對(duì)孔,漏漿,碰撞檢查等。因此,如何提升數(shù)據(jù)存儲(chǔ)和讀取性能同時(shí)保證系統(tǒng)服務(wù)穩(wěn)定可靠成為該軟件的焦點(diǎn)。

2 MongoDB概述

MongoDB是一個(gè)高性能、開(kāi)源、模式自由,基于分布式文件存儲(chǔ)的NoSQL數(shù)據(jù)庫(kù)。MongoDb的數(shù)據(jù)模式是動(dòng)態(tài)的,數(shù)據(jù)結(jié)構(gòu)非常松散,是類(lèi)似json的bson格式,在同一集合內(nèi)的文檔格式可以不一致,單個(gè)文檔內(nèi)部無(wú)需考慮數(shù)據(jù)結(jié)構(gòu)及類(lèi)型,可動(dòng)態(tài)增加非結(jié)構(gòu)化數(shù)據(jù),還可以嵌套文檔或者數(shù)組。Mongo最大的特點(diǎn)是它支持的查詢(xún)語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類(lèi)似于面向?qū)ο蟮牟樵?xún)語(yǔ)言,幾乎可以實(shí)現(xiàn)類(lèi)似關(guān)系數(shù)據(jù)庫(kù)單表查詢(xún)的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。其主要功能特性如下:

1)跨平臺(tái)、支持語(yǔ)言眾多;

2)模式自由;

3)支持文件存儲(chǔ);

4)易于水平擴(kuò)展;

5)復(fù)制集機(jī)制;

6)多級(jí)索引;

7)面向集合存儲(chǔ);

8)豐富的查詢(xún)語(yǔ)句。

3 數(shù)據(jù)存儲(chǔ)系統(tǒng)架構(gòu)

數(shù)據(jù)存儲(chǔ)系統(tǒng)為獨(dú)立的一層,介于業(yè)務(wù)層與數(shù)據(jù)庫(kù)之間,主要用于提供給業(yè)務(wù)一個(gè)類(lèi)似內(nèi)存數(shù)據(jù)集合的接口進(jìn)行領(lǐng)域?qū)ο蟮脑L(fǎng)問(wèn),并負(fù)責(zé)領(lǐng)域?qū)ο蟮某志没O到y(tǒng)采用Repository模式封裝存儲(chǔ),讀取和查找行為的機(jī)制。如圖1所示,將對(duì)領(lǐng)域?qū)ο髷?shù)據(jù)公共操作部分提取為IRepository接口,如常見(jiàn)的保存、刪除、查詢(xún)等方法,MongoRepository類(lèi)來(lái)具體實(shí)現(xiàn)上面的接口的方法。MongoDB并不像關(guān)系型數(shù)據(jù)庫(kù)一樣需要定義一個(gè)ORM框架。不同的領(lǐng)域?qū)ο髮?duì)數(shù)據(jù)的處理有著不同的需求,所以對(duì)應(yīng)不同的領(lǐng)域?qū)ο蠖x各自的Repository類(lèi)。

4 分片集群搭建

結(jié)合使用MongoDB的副本集和分片集群技術(shù),使得系統(tǒng)擁有高擴(kuò)展性、高伸縮性的同時(shí)也確保集群的可用性和可靠性。利用Mongo的分片技術(shù),將數(shù)據(jù)自動(dòng)的分解成多個(gè)塊,存儲(chǔ)在不同的服務(wù)器節(jié)點(diǎn)上,每個(gè)塊都有對(duì)應(yīng)副本集。確保有服務(wù)器宕機(jī)時(shí),其他的副本可以立即接替壞掉的部分繼續(xù)工作。數(shù)據(jù)分片以后,可以利用多臺(tái)服務(wù)器構(gòu)建一個(gè)水平可擴(kuò)展的運(yùn)算架構(gòu),為系統(tǒng)提供強(qiáng)大的處理能力。以確保讓不停增長(zhǎng)的數(shù)據(jù)始終如一的提供初始的訪(fǎng)問(wèn)性能,而不會(huì)隨著數(shù)據(jù)的增長(zhǎng),系統(tǒng)的訪(fǎng)問(wèn)速度越來(lái)越慢。

如圖2所示,分片集群有四個(gè)組件:mongos、config server、shard、replica set。應(yīng)用請(qǐng)求mongos來(lái)操作mongoDB的增刪改查,config server存儲(chǔ)數(shù)據(jù)庫(kù)元信息,并且和mongos做同步,數(shù)據(jù)最終存入在shard(分片)上,為了防止數(shù)據(jù)丟失同步在副本集中存儲(chǔ)了一份,Arbiter仲裁在數(shù)據(jù)存儲(chǔ)到分片的時(shí)候決定存儲(chǔ)到哪個(gè)節(jié)點(diǎn)。

圖2 分片集群

5 海量數(shù)據(jù)并行運(yùn)算

隨著系統(tǒng)數(shù)據(jù)量的不斷增大,對(duì)海量數(shù)據(jù)進(jìn)行快速運(yùn)算是該存儲(chǔ)系統(tǒng)必須解決的一個(gè)問(wèn)題。MapReduce模型是解決該問(wèn)題一個(gè)較為成熟的解決方案。該模型將計(jì)算任務(wù)切割并分發(fā)到計(jì)算集群的單個(gè)計(jì)算節(jié)點(diǎn)并行計(jì)算,在計(jì)算完成后,把結(jié)果返回給主服務(wù)器,主服務(wù)器匯總結(jié)果,最終完成計(jì)算任務(wù)的處理。

MongoDB的MapReduce功能是MapReduce編程模式的簡(jiǎn)化實(shí)現(xiàn)。主要由Map、Shuffle和Reduce組成,使用時(shí)Map和Reduce需要顯式定義,shuffle由MongoDB來(lái)實(shí)現(xiàn)。首先Map將運(yùn)算映射到文檔,生成Key-Value鍵值對(duì),然后Shuffle按照Key進(jìn)行分組,并將key相同的Value組合成數(shù)組。最后Reduce則把Value數(shù)組化簡(jiǎn)為單值被返回。

如圖3所示,MapReduce在分片集群進(jìn)行并行計(jì)算時(shí),路由節(jié)點(diǎn)mongos將客戶(hù)端發(fā)出的請(qǐng)求進(jìn)行暫存,并通過(guò)訪(fǎng)問(wèn)config節(jié)點(diǎn)以獲得相關(guān)數(shù)據(jù)的位置。mongos得到數(shù)據(jù)的分布后,將請(qǐng)求發(fā)給相應(yīng)的分片節(jié)點(diǎn)shard,shard節(jié)點(diǎn)進(jìn)行MapReduce處理,并將處理數(shù)據(jù)返回給mongos,mongos將處理完的數(shù)據(jù)進(jìn)行運(yùn)算之后傳遞給最后的reducer。

圖3 MapReduce在分片集群并行計(jì)算過(guò)程

6 性能測(cè)試

此次測(cè)試共涉及4臺(tái)服務(wù)器: 1臺(tái)Web 服務(wù)器和3臺(tái) MongoDB 服務(wù)器。機(jī)器配置:CPU 為Intel(R)Core(TM)2 Duo CPU T6570 @ 2.10 GHz、內(nèi)存為16 G DDR2 667、硬盤(pán)為SATA 1T、操作系統(tǒng)為Windows Server 2008 R2。編寫(xiě)程序進(jìn)行 MongoDB 千萬(wàn)級(jí)數(shù)據(jù)量的性能測(cè)試,分別測(cè)試如下幾個(gè)項(xiàng)目。

6.1 MongoDb數(shù)據(jù)庫(kù)性能測(cè)試

如圖4所示,向MongoDB和MySQL數(shù)據(jù)庫(kù)插入1億條數(shù)據(jù),每條數(shù)據(jù)大小1kb的情況下,MySQL的插入速度高于MongoDB。如圖5所示,在不同大小的數(shù)據(jù)庫(kù)中查詢(xún)1 000條數(shù)據(jù),每條數(shù)據(jù)的大小1kb的情況下。MongoDB的查詢(xún)速度遠(yuǎn)超MySQL,查詢(xún)的數(shù)據(jù)量逐漸增多的時(shí)候,MySQL的查詢(xún)速度是穩(wěn)步下降的,而MongoDB的查詢(xún)速度卻有些起伏。

圖4 插入數(shù)據(jù)對(duì)比

圖5 查詢(xún)數(shù)據(jù)對(duì)比

6.2 分片集群性能測(cè)試

如圖6所示,在插入的數(shù)據(jù)每條為1 kB 的情況下,正常插入的方式在數(shù)據(jù)量小于1 000萬(wàn)條時(shí),性能是比較高效的,但之后急劇降低,通過(guò)查看任務(wù)管理器,發(fā)現(xiàn)此時(shí)的內(nèi)存占用率高于90%以上,說(shuō)明數(shù)據(jù)的插入跟內(nèi)存有著直接的關(guān)系,數(shù)據(jù)量過(guò)大時(shí),需要在磁盤(pán)和內(nèi)存間進(jìn)行大量的數(shù)據(jù)交換,因此性能下降較快。而在分片的情況下,則相對(duì)穩(wěn)定。批量操作在分片和非分片情況下差別較小。

圖6 插入數(shù)據(jù)對(duì)比

如圖7所示,在每次查詢(xún)100條記錄,每條數(shù)據(jù)大小1kb的情況下。分片集群與常規(guī)查詢(xún)差距不大,但分片集群的穩(wěn)定性要高于非分片查詢(xún)。在加入聚合排序條件之后,兩種情況的速度都有所下降。

圖7 查詢(xún)數(shù)據(jù)對(duì)比

7 總結(jié)

利用MongoDB的模型自由性、高可用性、高可擴(kuò)展性等特點(diǎn),搭建的鋁合金模板設(shè)計(jì)軟件云端數(shù)據(jù)存儲(chǔ)系統(tǒng),可靈活地支持對(duì)象屬性字段的擴(kuò)展,同時(shí)MongoDB的Shading技術(shù),為突破單節(jié)點(diǎn)數(shù)據(jù)庫(kù)服務(wù)器的I/O能力限制,提供了水平擴(kuò)展的解決方案。使用MapReduce模型搭建的并行計(jì)算模型保障了大規(guī)模數(shù)據(jù)運(yùn)算、分析等處理的高效性與穩(wěn)定性。數(shù)據(jù)復(fù)制與故障切換功能,為系統(tǒng)的可靠性提供了保障。實(shí)踐表明,本系統(tǒng)的靈活度及可擴(kuò)展性良好,為建筑信息模型數(shù)據(jù)存儲(chǔ)提供了一種思路。

[1] Heidemann J,Bulusu N.Using geospatial information in sensor networks[C].Proceedings of CSTB workshop on Intersection of Geospatial Information and Information Technology,Arlington,VA,USA, 2001.

[2] MongoDB manual[EB/OL].2012.http://docs.mongodb.org/manual/sharding/.

[3] Chodorow K,Dirolf M.MongoDB 權(quán)威指南[M].程顯峰,譯.北京:人民郵電出版社, 2011.

[4] 姚林, 張永庫(kù).NoSQL 的分布式存儲(chǔ)與擴(kuò)展解決方法[J].計(jì)算機(jī)工程, 2012, 38(6): 40-42.

[5] Kuznetsov S D,Poskonin A V.NoSQL data management systems[J].Programming & Computer Software, 2014, 40(6): 323-332.

[6] Copeland R.MongoDB 應(yīng)用設(shè)計(jì)模式[M].陳新,譯.北京:中國(guó)電力出版社, 2015.

[7] 龔健雅. 空間數(shù)據(jù)庫(kù)管理系統(tǒng)的概念與發(fā)展趨勢(shì)[J].測(cè)繪科學(xué), 2001, 26(3): 4-9.

[8] Stonebraker M.SQL databases v.NoSQL databases[J].Communications of the ACM, 2010, 53(4): 10-11.

猜你喜歡
分片存儲(chǔ)系統(tǒng)鋁合金
上下分片與詞的時(shí)空佈局
詞學(xué)(2022年1期)2022-10-27 08:06:12
分片光滑邊值問(wèn)題的再生核方法
分布式存儲(chǔ)系統(tǒng)在企業(yè)檔案管理中的應(yīng)用
哈爾濱軸承(2020年2期)2020-11-06 09:22:36
CDN存量MP4視頻播放優(yōu)化方法
天河超算存儲(chǔ)系統(tǒng)在美創(chuàng)佳績(jī)
基于模糊二分查找的幀分片算法設(shè)計(jì)與實(shí)現(xiàn)
2219鋁合金TIG焊接頭殘余應(yīng)力分布
焊接(2016年1期)2016-02-27 12:59:14
華為震撼發(fā)布新一代OceanStor 18000 V3系列高端存儲(chǔ)系統(tǒng)
鋁合金三元?dú)怏w保護(hù)焊焊接接頭金相
焊接(2015年8期)2015-07-18 10:59:14
一種基于STM32的具有斷電保護(hù)機(jī)制的采集存儲(chǔ)系統(tǒng)設(shè)計(jì)
建始县| 江川县| 六盘水市| 龙江县| 扶沟县| 阳新县| 宜城市| 高阳县| 威宁| 抚顺县| 南木林县| 济南市| 华阴市| 青州市| 灵川县| 东丽区| 通化市| 清镇市| 洛浦县| 安吉县| 佛山市| 九寨沟县| 尼玛县| 南雄市| 中方县| 郎溪县| 繁昌县| 阿荣旗| 台南市| 呼图壁县| 会泽县| 诸城市| 顺义区| 南丹县| 固阳县| 贺兰县| 永德县| 迁西县| 绥宁县| 平远县| 德保县|