chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

數(shù)據(jù)火器庫 - 八卦系列之借老槍談可靠性

數(shù)據(jù)庫小組 ? 來源:數(shù)據(jù)庫小組 ? 作者:數(shù)據(jù)庫小組 ? 2022-09-26 10:13 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

來源:云數(shù)據(jù)庫技術(shù)

數(shù)據(jù)庫打工仔喃喃自語的八卦

1. 老槍:Db2/z和可靠性
2. K.I.S.S (Keep it Simple, Stupid!)
3. 系統(tǒng)驗(yàn)證和測試:豬肉出廠的質(zhì)檢章

數(shù)據(jù)庫的可靠性

1、數(shù)據(jù)庫里的老槍 - Db2 for zOS

上次聊了瑞士軍刀SQLite, 從年紀(jì)上SQLite出生于大數(shù)據(jù)和手機(jī)時(shí)代之前,對比后來的大數(shù)據(jù)引擎和云原生數(shù)據(jù)庫,SQLite可謂個(gè)頭不大,輩分不小了。不過數(shù)據(jù)庫的爺爺輩應(yīng)該算是79年的Oracle和83年的Db2/z(z又叫mainframe,國內(nèi)稱主機(jī))。今天用這把老槍講講可靠性。

系統(tǒng)RAS(Reliability, availability and serviceability)概念最早是由IBM提出,來形容曾經(jīng)是神一樣存在的主機(jī)(也叫大機(jī),mainframe)。為什么說神一樣的存在呢?主機(jī)是第一批商用計(jì)算機(jī),1950出現(xiàn),活躍至今,最新(本文原稿為2022.1)版本為2019.9月的z15。最早的一批商用數(shù)據(jù)庫就包括主機(jī)上的DB2/z(1983年GA v2.3)。也許你從沒有聽說過,但是如果你每一天在消費(fèi),過程中,不論銀行卡,支付寶,微信都會最終走到銀聯(lián),而且很可能是工農(nóng)建交等大銀行,那么你的交易就是在主機(jī)上完成和記錄的。

2021年的AWS Re:Invest有一個(gè)session, 講AWS Mainframe Modernization; 2022年初某公告《8.38 億元、中國銀行單一來源采購:IBM z15主機(jī)》也可見一斑。

神在我們身邊默默的存在,不打擾一片云彩

我們談?wù)摂?shù)據(jù)庫的可靠性時(shí)候,籠統(tǒng)的時(shí)候會泛指RAS,大部分時(shí)候單指Reliability。

可靠性Reliability

數(shù)據(jù)庫系統(tǒng)無故障可以持續(xù)運(yùn)行的能力。MTBF(Mean Time Between Failure)/MTTF(Mean Time to Faillure),MTTR(Mean Time to Repair/Recover)。這些都是工業(yè)界通用的衡量標(biāo)準(zhǔn)。具體計(jì)算公式大家自己去Google/wiki。這里盜個(gè)圖湊數(shù)。

poYBAGMxCsOAGaeWAAAx4d1P0xk716.jpg

2、如何保證可靠性

教科書里有很多,架構(gòu)設(shè)計(jì)的書也可以輕而易舉的找到。本文既然是八卦篇,就只分享現(xiàn)實(shí)世界的事情。那些理論上支撐的功能,原則上不會宕機(jī)的架構(gòu)設(shè)計(jì)不是這里的重點(diǎn)

怎么能不犯錯(cuò)?do nothing;

要保證軟件不出bug? 一行不寫。

如果不得不code呢?可靠方面先思考這兩項(xiàng)。

2.1核心代碼的復(fù)雜度

架構(gòu)設(shè)計(jì)有個(gè)說法K.I.S.S(Keep it Simple, Stupid!)。其實(shí)系統(tǒng)軟件的核心code, 揚(yáng)名天下立萬的骨架,也就那么幾萬行,完成系統(tǒng)80%的工作,換句話說,系統(tǒng)連續(xù)運(yùn)行過程中每小時(shí)(甚至每分鐘)都必然運(yùn)行的code logic。這些code中簡潔易懂是系統(tǒng)存活的關(guān)鍵。

簡潔可減少系統(tǒng)的bug。MySQL依賴最簡單可靠的nest-loop join算法二十多年,而"先進(jìn)"的Hash Join是在最近兩年才實(shí)現(xiàn),在MySQL8.0.18正式GA。從算法復(fù)雜度看(兩個(gè)都有改進(jìn)版本),Nest Loop J是O(MN), Hash J是O(M+N)。Hash join 在教科書里屬于advance的章節(jié),直接翻譯是“進(jìn)步”,褒義詞??墒橇硪环矫妫瑤缀跛械腶dvance技術(shù)都更復(fù)雜(電車是個(gè)反例,降維打擊了),需要更多或更特殊的資源才能發(fā)揮其能力。Hash Join就需要在大內(nèi)存支持下才能發(fā)揮,否則要么OOM,要么落盤造成性能斷崖,尤其不適合高并發(fā)的TP場景。比如各位同學(xué)中午在食堂買飯,就是高并發(fā)場景,如果系統(tǒng)中突然出現(xiàn)一個(gè)大查詢把內(nèi)存都吃掉,也把各位的飯就吃掉了。

如何解決這個(gè)問題呢?workload management(WLM) 就要被引入,以自動(dòng)調(diào)低“爛”query的優(yōu)先級,限制其資源。而又引入進(jìn)一步的系統(tǒng)復(fù)雜度。

nest loop保證了每個(gè)join的內(nèi)存空間消耗是固定的,所以在上面場景中,不用WLM,不用系統(tǒng)DBA也可以保證各位吃上午飯。

給我自己頂個(gè)鍋蓋保護(hù)一下,絕沒有想引戰(zhàn)NLJ vs HJ的意思,PG有比較完整成熟的優(yōu)化器,就好很多??浚峙茴}到MySQL vs PG 了。只是想說,如果一個(gè)系統(tǒng)可以簡單化,就可以減少其bug數(shù),增加可靠性。

有興趣研究軟件工程的東西,可以看看Unix philosophy。哲學(xué)的事情咱不懂,用數(shù)據(jù)說話,第一版Unix據(jù)稱是不到5千行的匯編語言;linux 0.0.1版是10243 line of code(C) 和386LoC(匯編)。多年前,我參與系統(tǒng)軟件項(xiàng)目排期的時(shí)候,是按1.5KLoC/Person-Year 做的計(jì)劃。所以偶爾聽說系統(tǒng)開發(fā)同學(xué)談績效的時(shí)候提一年幾萬行代碼,還經(jīng)常是早春二三月份提交的,兄弟我怕呀。前端同學(xué)代碼量會多些,不過這些代碼的生命力會差些。其實(shí)我認(rèn)為衡量一個(gè)開發(fā)的代碼能力不應(yīng)簡單的line of code, 更應(yīng)該與服務(wù)年掛勾。

那么如果做到simple/簡單呢,上次八卦SQL的時(shí)候?qū)W⒌疆a(chǎn)品邊界,就是要有節(jié)制,開發(fā)有明確的特點(diǎn)的產(chǎn)品,而不要試圖做大而全的產(chǎn)品。

2.2 測試

測試經(jīng)常在數(shù)據(jù)庫設(shè)計(jì)和實(shí)現(xiàn)過程中被忽略,尤其在相對不成熟的開發(fā)團(tuán)隊(duì)中 只做簡單的功能測試,甚至是單邏輯flow,而不考慮邊界條件。更談不上系統(tǒng)壓力測試(system stress testing),比如說連接數(shù)/concurrency突然提升情況下,是否還能夠保證吞吐量和延時(shí)保持著正常水平,后面的任務(wù)可以排隊(duì),而不會因?yàn)?a target="_blank">高壓力下造成系統(tǒng)完全不可用。

寫code就會有bug, 越早發(fā)現(xiàn)fix的成本約少。軟件工程中這張圖是1996的文章。每每在前線客戶反饋一個(gè)簡單的bug, 我腦海里就是這張圖和16000美刀

pYYBAGMxCsSADO_8AABUrWziySE952.jpg

鄙視鏈那都有,軟件開發(fā)也不例外,常常一方面說測試多么重要,一方面測試工程師的工資級別屬于末端集結(jié)號。自然沒有牛人過來投入。這是全球普世的,而某些團(tuán)隊(duì)尤甚。尤其是近些年,開始學(xué)Agile,學(xué)開源,甚至不設(shè)測試崗位。殊不知,開源社區(qū)最注重測試,測試代碼量常常是產(chǎn)品代碼的3X。筆者有幸十年前在HBase社區(qū)打醬油,很是佩服一個(gè)健康社區(qū)對代碼質(zhì)量的管理。而當(dāng)時(shí)的主席Stack,自號HBase Janitor(清潔工),最重要的工作就是QA。

上次提到的SQLite, 每一行code對應(yīng)600行測試程序?!癉ue to its reliability, SQLite is often used in mission-critical applications such as flight software“

試問你所在的團(tuán)隊(duì),能否保證測試程序LOC與開發(fā)程序LOC是1:1的關(guān)系?產(chǎn)品發(fā)布時(shí)最后的否決權(quán),是否在測試手里?

豬肉出廠還要蓋個(gè)質(zhì)檢章呢。如果客戶現(xiàn)場發(fā)現(xiàn)了一個(gè)bug, 你的團(tuán)隊(duì)的復(fù)盤時(shí),是否能確認(rèn)這個(gè)bug應(yīng)該在軟件工程的那個(gè)環(huán)節(jié)被發(fā)現(xiàn)?

poYBAGMxCsSAbYE5AABOzJOT4gQ352.jpg

3、總結(jié)

一個(gè)系統(tǒng)的可靠性(其實(shí)是系統(tǒng)的各個(gè)方面了)是從三方面完成的:

3.1 系統(tǒng)的架構(gòu)設(shè)計(jì)

對于大部分軟件工程師這一點(diǎn)上不需要太重視, 為什么呢?因?yàn)橄駭?shù)據(jù)庫有歷史以來,它的基本架構(gòu)就那么幾種(single-node/monolithic, shared-storage/everything, shared-nothing), 架構(gòu)帶來的優(yōu)勢和劣勢已經(jīng)被無數(shù)學(xué)術(shù)論文討論和工業(yè)系統(tǒng)驗(yàn)證過。我們99.9%是在前人肩膀上討生活,在高手腳邊打醬油。

3.2 系統(tǒng)的實(shí)現(xiàn)

也就是code的工程能力。同樣打個(gè)桌子,朱由校(明熹宗)很可以超越我周邊所有的朋友。同樣實(shí)現(xiàn)一個(gè)hash join, 其實(shí)現(xiàn)算法至少從最早的relation model和關(guān)系幾何就有了。隨便找一篇三十年前的吧,An Adaptive Hash Join Algorithm for Multiuser Environments。

開發(fā)實(shí)現(xiàn)的好壞要看工程能力和工匠精神了。如果有理論就能沖出亞洲,中國男足也不會這樣。這樣就是軟件開發(fā)工程化的問題。如何使團(tuán)隊(duì)更有效的開發(fā),要對功能有節(jié)制,明確產(chǎn)品的邊界,求精而不求全。

3.3 系統(tǒng)的驗(yàn)證

上邊專門提到,也是最容易被忽視的。大家常常會提到雙活(active-active),兩地三中心, 跨城分布, 高可用,多少個(gè)九。這些高大上的詞我也常常用, 有時(shí)候認(rèn)真一點(diǎn),我去請問這些系統(tǒng)能力是如何驗(yàn)證通過的?高興的時(shí)候我會再多問點(diǎn)直擊靈魂的,W H W(who 誰測的,how 怎么測的,what 那些場景被測了?)。比如簡單的雙活, 用什么樣的workload(W:R 比例?),多大數(shù)據(jù)量, 連續(xù)跑了多長時(shí)間,P95延時(shí)是多少?

4、一點(diǎn)思考

當(dāng)一個(gè)軟件架構(gòu)師用呵護(hù)培養(yǎng)兒女的心寫code的時(shí)候,她/他就不會為三個(gè)月的短期目標(biāo)commit code,讓孩子長歪了,比如"My"SQL和“Maria”DB。

做正確的事情是很難的,筆者在壓力下往repo里扔的爛code估計(jì)不比其他人少。"I always knew what the right path was. ....It was too damn hard." (聞香識女人)。做正確的事情太他媽難!】

pYYBAGMxCsSAYewGAACnrbd6S14886.jpg

5、注

傳奇老頭莫辛納甘:對應(yīng)火器庫,可以對應(yīng)古董級數(shù)據(jù)庫,可能就是 Mosin–Nagant 傳奇老頭莫辛納甘。

原始稿:本文原稿為2022.1,故部分內(nèi)容非最新信息

審核編輯 黃昊宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)庫
    +關(guān)注

    關(guān)注

    7

    文章

    3993

    瀏覽量

    67736
  • MySQL
    +關(guān)注

    關(guān)注

    1

    文章

    897

    瀏覽量

    29234
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    單片機(jī)應(yīng)用系統(tǒng)的可靠性設(shè)計(jì)介紹

    隨著單片機(jī)在國防、金融、工業(yè)控制等重要領(lǐng)域應(yīng)用越來越廣泛,單片機(jī)應(yīng)用系統(tǒng)的可靠性越來越成為人們關(guān)注的一個(gè)重要課題。單片機(jī)應(yīng)用系統(tǒng)的可靠性是由多種因素決定的,大體分為硬件系統(tǒng)可靠性設(shè)計(jì)和軟件系統(tǒng)
    發(fā)表于 11-25 06:21

    化繁為簡:直線電機(jī)如何通過結(jié)構(gòu)簡化提升可靠性

    ,為用戶帶來了持續(xù)的穩(wěn)定生產(chǎn)和顯著降低的維護(hù)成本。 一、傳統(tǒng)傳動(dòng)系統(tǒng)的“阿喀琉斯踵” 在旋轉(zhuǎn)電機(jī)加絲杠/皮帶的結(jié)構(gòu)中,機(jī)械復(fù)雜度是可靠性的天然敵人: · 磨損 :絲杠與螺母、皮帶與帶輪、齒輪與齒條之間都存在機(jī)械接觸和摩擦
    的頭像 發(fā)表于 08-29 09:49 ?299次閱讀

    CDM試驗(yàn)對電子器件可靠性的影響

    和使用過程中可能面臨的靜電放電風(fēng)險(xiǎn),從而優(yōu)化產(chǎn)品設(shè)計(jì),提高其在實(shí)際應(yīng)用中的穩(wěn)定性和可靠性。檢測服務(wù)涵蓋靜電放電(ESD)測試、可靠性測試、失效分析以及AEC-Q系列認(rèn)
    的頭像 發(fā)表于 08-27 14:59 ?702次閱讀
    CDM試驗(yàn)對電子器件<b class='flag-5'>可靠性</b>的影響

    可靠性設(shè)計(jì)的十個(gè)重點(diǎn)

    專注于光電半導(dǎo)體芯片與器件可靠性領(lǐng)域的科研檢測機(jī)構(gòu),能夠?qū)ED、激光器、功率器件等關(guān)鍵部件進(jìn)行嚴(yán)格的檢測,致力于為客戶提供高質(zhì)量的測試服務(wù),為光電產(chǎn)品在各種高可靠性場景中的穩(wěn)定應(yīng)用提供堅(jiān)實(shí)的質(zhì)量
    的頭像 發(fā)表于 08-01 22:55 ?783次閱讀
    <b class='flag-5'>可靠性</b>設(shè)計(jì)的十個(gè)重點(diǎn)

    【干貨速遞】嵌入式數(shù)據(jù)可靠性,軟件設(shè)計(jì)的這些細(xì)節(jié)不能忽視!

    前兩期內(nèi)容分別講述了嵌入式數(shù)據(jù)可靠性的元器件選型和硬件設(shè)計(jì),這一期我們來講講軟件設(shè)計(jì)。哪怕硬件設(shè)計(jì)再完善,但如果軟件沒有設(shè)計(jì)好,也達(dá)不到預(yù)期的可靠性。只有軟硬件配合,才能妥善解決數(shù)據(jù)
    的頭像 發(fā)表于 07-31 11:34 ?366次閱讀
    【干貨速遞】嵌入式<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>可靠性</b>,軟件設(shè)計(jì)的這些細(xì)節(jié)不能忽視!

    【技術(shù)指南】提升嵌入式數(shù)據(jù)可靠性,從元器件選型開始!

    數(shù)據(jù)可靠性是嵌入式產(chǎn)品開發(fā)中的關(guān)鍵問題,涉及多個(gè)層面的設(shè)計(jì)和選型。從本期開始,我們將通過一系列內(nèi)容深入探討嵌入式數(shù)據(jù)存儲的可靠性問題。前言
    的頭像 發(fā)表于 07-29 11:35 ?281次閱讀
    【技術(shù)指南】提升嵌入式<b class='flag-5'>數(shù)據(jù)</b><b class='flag-5'>可靠性</b>,從元器件選型開始!

    關(guān)于LED燈具的9種可靠性測試方案

    LED燈具的可靠性試驗(yàn),與傳統(tǒng)燈具有顯著區(qū)別。作為新一代光源,LED燈具正在逐漸取代傳統(tǒng)節(jié)能燈的市場,因此無法簡單地沿用傳統(tǒng)燈具的測試方法。那么,LED燈具需要進(jìn)行哪些可靠性試驗(yàn)?zāi)???biāo)準(zhǔn)名稱:LED
    的頭像 發(fā)表于 06-18 14:48 ?675次閱讀
    關(guān)于LED燈具的9種<b class='flag-5'>可靠性</b>測試方案

    可靠性測試包括哪些測試和設(shè)備?

    在當(dāng)今競爭激烈的市場環(huán)境中,產(chǎn)品質(zhì)量的可靠性成為了企業(yè)立足的根本。無論是電子產(chǎn)品、汽車零部件,還是智能家居設(shè)備,都需要經(jīng)過嚴(yán)格的可靠性測試,以確保在各種復(fù)雜環(huán)境下都能穩(wěn)定運(yùn)行,為用戶提供可靠的使用體驗(yàn)。那么,
    的頭像 發(fā)表于 06-03 10:52 ?1107次閱讀
    <b class='flag-5'>可靠性</b>測試包括哪些測試和設(shè)備?

    提供半導(dǎo)體工藝可靠性測試-WLR晶圓可靠性測試

    隨著半導(dǎo)體工藝復(fù)雜度提升,可靠性要求與測試成本及時(shí)間之間的矛盾日益凸顯。晶圓級可靠性(Wafer Level Reliability, WLR)技術(shù)通過直接在未封裝晶圓上施加加速應(yīng)力,實(shí)現(xiàn)快速
    發(fā)表于 05-07 20:34

    電機(jī)微機(jī)控制系統(tǒng)可靠性分析

    針對性地研究提高電機(jī)微機(jī)控制系統(tǒng)可靠性的途徑及技術(shù)措施:硬件上,方法包括合理選擇篩選元器件、選擇合適的電源、采用保護(hù)電路以及制作可靠的印制電路板等;軟件上,則采用了固化程序和保護(hù) RAM 區(qū)重要數(shù)據(jù)
    發(fā)表于 04-29 16:14

    IGBT的應(yīng)用可靠性與失效分析

    包括器件固有可靠性和使用可靠性。固有可靠性問題包括安全工作區(qū)、閂鎖效應(yīng)、雪崩耐量、短路能力及功耗等,使用可靠性問題包括并聯(lián)均流、軟關(guān)斷、電磁干擾及散熱等。
    的頭像 發(fā)表于 04-25 09:38 ?2279次閱讀
    IGBT的應(yīng)用<b class='flag-5'>可靠性</b>與失效分析

    電路可靠性設(shè)計(jì)與工程計(jì)算技能概述

    電路可靠性設(shè)計(jì)與工程計(jì)算通過系統(tǒng)學(xué)習(xí)電路可靠性設(shè)計(jì)與工程計(jì)算,工程師不僅能提高電路的可靠性和穩(wěn)定性,還能優(yōu)化產(chǎn)品設(shè)計(jì)過程,減少潛在的故障風(fēng)險(xiǎn),從而提升產(chǎn)品的市場競爭力和消費(fèi)者信任度。為什么工程師需要
    的頭像 發(fā)表于 03-26 17:08 ?613次閱讀
    電路<b class='flag-5'>可靠性</b>設(shè)計(jì)與工程計(jì)算技能概述

    半導(dǎo)體集成電路的可靠性評價(jià)

    半導(dǎo)體集成電路的可靠性評價(jià)是一個(gè)綜合的過程,涉及多個(gè)關(guān)鍵技術(shù)和層面,本文分述如下:可靠性評價(jià)技術(shù)概述、可靠性評價(jià)的技術(shù)特點(diǎn)、可靠性評價(jià)的測
    的頭像 發(fā)表于 03-04 09:17 ?1258次閱讀
    半導(dǎo)體集成電路的<b class='flag-5'>可靠性</b>評價(jià)

    一文讀懂芯片可靠性試驗(yàn)項(xiàng)目

    可靠性試驗(yàn)的定義與重要可靠性試驗(yàn)是一種系統(tǒng)化的測試流程,通過模擬芯片在實(shí)際應(yīng)用中可能遇到的各種環(huán)境條件和工作狀態(tài),對芯片的性能、穩(wěn)定性和壽命進(jìn)行全面評估。在芯片研發(fā)和生產(chǎn)過程中,可靠性
    的頭像 發(fā)表于 02-21 14:50 ?1843次閱讀
    一文讀懂芯片<b class='flag-5'>可靠性</b>試驗(yàn)項(xiàng)目

    霍爾元件的可靠性測試步驟

    霍爾元件是一種利用霍爾效應(yīng)來測量磁場的傳感器,廣泛應(yīng)用于電機(jī)控制、位置檢測、速度測量以及電流監(jiān)測、變頻控制測試、交直流電源、電源逆變器和電子開關(guān)等領(lǐng)域。為了確?;魻栐男阅芎?b class='flag-5'>可靠性,進(jìn)行全面
    的頭像 發(fā)表于 02-11 15:41 ?1189次閱讀