欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

MySQL中怎么設計時間序列存儲引擎

MySQL中怎么設計時間序列存儲引擎,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

成都創(chuàng)新互聯(lián)專注于邵原網(wǎng)站建設服務及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供邵原營銷型網(wǎng)站建設,邵原網(wǎng)站制作、邵原網(wǎng)頁設計、邵原網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務,打造邵原網(wǎng)絡公司原創(chuàng)品牌,更為您提供邵原網(wǎng)站排名全網(wǎng)營銷落地服務。

首先,讓我們看看OpenTSDB是什么樣的情況。下圖便是OpenTSDB的部署與運行圖示。OpenTSDB的后端存儲是HBASE,需要在各個server上部署信息收集的前端,通過dashboard展示信息。對于現(xiàn)有的時間序列數(shù)據(jù)庫,每一個都有自己的部署與運行方案。而這些方案并不具備架構上的通用性。

MySQL中怎么設計時間序列存儲引擎

我們所期望的架構是除了底層的存儲組件不同,對于MySQL的用戶來說沒有什么不同。已有的大部分運維經(jīng)驗(HA、復制、備份等等)和已有的開發(fā)經(jīng)驗(插入、刪除和更新的操作)都可以繼承自之前的積累,這是任何一個使用MySQL的公司所希望的情況。就如下圖所展示的架構,對于上層用戶來說,感覺不到太多的變化。用戶可以通過標準的SQL編寫自己的應用客戶端來完成數(shù)據(jù)的采集和展示,提高靈活性。

經(jīng)過以上的考量,產(chǎn)生了我們的試驗產(chǎn)品,存儲引擎CFL(ctrip fast  log),該引擎能夠以快速的日志方式進行數(shù)據(jù)的記錄。其完成后就如下圖所示,滿足之前所設想的種種情況。

MySQL中怎么設計時間序列存儲引擎

技術介紹

從層次結構來看,MySQL的存儲引擎分為兩個部分。一是實現(xiàn)存儲功能相關的組件,該層提供存儲引擎的具體功能(增刪改查),我們稱之為功能層;一是和MySQL插件接口對接的組件,該層將MySQL的功能調(diào)用轉(zhuǎn)換為存儲引擎的功能調(diào)用,我們稱之為接口層。如下圖所示,數(shù)據(jù)庫的操作(諸如增刪改查等操作)將通過引擎管理層達到存儲引擎的接口層,再由接口層到達功能層。

MySQL中怎么設計時間序列存儲引擎

功能層

功能層是存儲引擎的核心,由于設計目標的不同,存儲引擎的功能層所提供的功能也是不同的。比如innobase引擎的功能層,提供了事務ACID/數(shù)據(jù)存儲/元信息管理/MVCC等一系列功能,提供完整的數(shù)據(jù)庫功能;再如CSV存儲引擎,僅提供字符類型的行存儲。這些不同功能的存儲引擎組件,在MySQL的框架下,提供多種多樣的服務。

介紹攜程時間序列存儲引擎的功能層將從兩個主要方面介紹。一是功能層的架構,也就是運行時涉及到的對象和這些對象的作用;一是進行持久化的存儲,該部分將說明在文件層面,數(shù)據(jù)是如何存儲的。

架構

CFL的架構設計目標是盡可能的提高數(shù)據(jù)的插入效率,因此并行處理的想法需要貫穿始終。其機制為,不同會話并行的將數(shù)據(jù)向表對象中插入;表對象通過緩沖區(qū)保存插入的數(shù)據(jù),當緩沖區(qū)寫滿之后,緩沖區(qū)加入磁盤寫入隊列,通過專門的寫盤線程并發(fā)的寫入磁盤。

下圖為攜程時間序列存儲引擎的架構:

MySQL中怎么設計時間序列存儲引擎

存儲

在設計存儲的時候,根據(jù)時序數(shù)據(jù)庫的特點,首先考慮的是插入的效率,然后是快速的故障恢復。針對插入效率,在設計數(shù)據(jù)結構時,采用嚴格的順序?qū)懭氩呗?,以此來保證連續(xù)插入的效率。這樣不論在傳統(tǒng)硬盤還是在SSD硬盤上,都可以高效的寫入。針對快速故障恢復,通過控制寫入順序(依次寫入數(shù)據(jù)、索引和控制信息),實現(xiàn)快速的恢復。***考慮實現(xiàn)上的簡易性,采用索引和數(shù)據(jù)分別存儲的方式,降低在同一文件中進行存儲管理的控制。

MySQL中怎么設計時間序列存儲引擎

接口層

程序片段

如下代碼片段為接口層部分。

MySQL提供的基類handler,存儲引擎需要提供繼承自該類,并實現(xiàn)基類中如ha_open/ha_close等功能函數(shù)的類。

MySQL中怎么設計時間序列存儲引擎

繼承handler類的攜程時間序列數(shù)據(jù)庫的類。

MySQL中怎么設計時間序列存儲引擎

接口層架構

該部分將以ha_cfl為例,說明MySQL存儲引擎管理層和引擎接口之間的關系。

MySQL中怎么設計時間序列存儲引擎

操作發(fā)送給會話后,會話從引擎管理層獲取到ha_cfl的對象,將操作轉(zhuǎn)化為對ha_cfl接口的調(diào)用,該步驟完成了SQL到存儲引擎接口的對接。

ha_cfl接口接到調(diào)用后,將調(diào)用轉(zhuǎn)化為對表對象的操作,完成handler接口功能到表對象的實現(xiàn)的對接。

效果

通過對時間序列數(shù)據(jù)進行針對性的開發(fā),CFL存儲引擎的插入性能相對于InnoDB和MyISAM引擎有很大的提高。

引擎\insert線程

1線程(ips)

3線程(ips)

6線程(ips)

CFL

3700

5700

8400

MyISAM

3300

4500

6000

InnoDB

1900

2100

3000

2核ssd虛擬機

MySQL中怎么設計時間序列存儲引擎

ips:insert per second

總結

由于本次開發(fā)為探索性質(zhì)的開發(fā),時間上或者人力上的限制使產(chǎn)品還不夠完善,不論是設計還是實現(xiàn)上都存在需要改進的地方。如,創(chuàng)建表時對時間戳類型使用和索引列的指定存在限制,導致無法創(chuàng)建多列索引,僅能夠創(chuàng)建時間索引。存儲結構的限制導致刪除和更新無法快速靈活的進行。

但在資源有限的情況下,完成一個概念完整和實現(xiàn)完整的產(chǎn)品。而且正是通過這次探索性開發(fā),打開了MySQL存儲引擎的一扇大門,不論從整體架構到實現(xiàn)細節(jié)都有深入研究,積累了很多經(jīng)驗。攜程技術保障中心DBA團隊希望這些經(jīng)驗在將來能夠為國內(nèi)的MySQL社區(qū)提供幫助。

關于MySQL中怎么設計時間序列存儲引擎問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注創(chuàng)新互聯(lián)行業(yè)資訊頻道了解更多相關知識。

當前標題:MySQL中怎么設計時間序列存儲引擎
標題鏈接:http://aaarwkj.com/article32/gdispc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供面包屑導航、小程序開發(fā)、關鍵詞優(yōu)化品牌網(wǎng)站制作、網(wǎng)站導航網(wǎng)頁設計公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
日本免费高清一区二区| 国产成人亚洲欧美激情| 日日干夜夜射天天操| 我要看亚洲黄色片一级| 亚洲欧美日韩激情另类| 亚洲欧美中文字幕乱码久久 | 日韩在线视频网站不卡| 亚洲激情欧美激情在线| 国产精品久久99一区| 午夜视频免费在线观看| 国产情色自拍在线观看| 成人性生活黄色三级视频| 婷婷亚洲悠悠色悠在线| 精品国产自在现线拍手机| 高颜值紧身牛仔裤国产精品| 91人妻人澡人人爽| 欧美黄片免费在线视频| 偷拍大神女厕偷拍作品| 黑寡妇精品欧美一区二区毛| 国内精品人妻久久毛片| 观看女性真实高潮的合集| 粉嫩国产精品一区二区| 国产91日韩欧美在线观看 | 18岁未成年禁止观看视频| 韩国日本午夜福利在线| 免费观看久久黄色大片| 午夜在线观看视频免费| 九九九热在线免费视频| 久久国产精品一区二区三区| 人妻中文字幕在线一二区| 国产特级黄片免费观看| 亚洲国产成在人网站天堂| 日韩欧美精品另类在线| 亚洲精品中文字幕乱码| 欧美日韩国产91在线| 国产午夜在线影院一区二区| 深夜福利在线观看97| 爱高潮www亚洲精品| 亚洲一区二区三区 码| 伊人久久大香线蕉av网站| 久久日韩人妻中文字幕|