| 廣告聯系 | 簡體版 | 手機版 | 微信 | 微博 | 搜索:
歡迎您 游客 | 登錄 | 免費注冊 | 忘記了密碼 | 社交賬號注冊或登錄

首頁

新聞資訊

論壇

溫哥華地產

大溫餐館點評

溫哥華汽車

溫哥華教育

黃頁/二手

旅游
搜索:  

 論壇通告:  轉載新聞請務必注明出處,這些媒體請不要轉,謝謝   請不要上傳第三方有版權的照片,請尊重版權,謝謝   批評商家需要注意  
 個人空間: XY | 羅蓬特機器人 | 顧曉軍 | NotmeL8 | Calm zone | Invisible world | 客觀中立而實事求是,唯服理據而杜絕辱罵 | 白龍王許道長 | 亂想 | 忽然聽到一個墨西哥女仔唱。呐呐呐呐呐呢呐 | 血流成河 | 一襲絳襦落鵬城,九天玄女下凡間。 | 我在溫哥華 | 滄海一聲笑 | 我大爺 | 烏蓬船 | 五木森林 | 桃花島 | 快樂的獅子 | 靜觀雲卷雲舒
 最新求助: 請問誰知道哪裡有賣理發的電動推子?   忽然有個疑問:戰爭時期,加拿大拿PR卡未入籍的永久居民會被強制服兵役嗎?   這個銀條   如何修改會員名?
 論壇轉跳:
     發帖回帖獲取加西鎊, 兌換精彩禮物

論壇首頁 -> IT人生

ZT: 海量並發的無鎖編程 (lock free programming) (發表於9年前)



回復主題  圖片幻燈展示  增添帖子到書簽中  給帖子中的發貼者批量贈送獻花或者花籃    |##| -> |=|        發表新主題
閱讀上一個主題 :: 閱讀下一個主題  
作者 正文
webdriver
(只看此人)




文章 時間: 2014-10-21 22:35 引用回復
文章來源: blog.csdn.net/anzhsoft...s/40118695

邊學習邊掙鎊,不亦樂乎 :lol:


 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
樓主 | 電梯直達
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)




文章 時間: 2014-10-21 22:36 引用回復
最近在做在線架構的實現,在線架構和離線架構近線架構最大的區別是服務質量(SLA,Service Level Agreement,SLA 99.99代表10K的請求最多一次失敗或者超時)和延時。而離線架構在意的是吞吐,SLA的不會那麼嚴苛,比如99.9。離線架構一般要有流控,以控制用戶發送請求的速度。以免多於服務端處理能力的請求造成大量的數據在buffer或者隊列裡堆積,造成大量的超時。在線架構不可能有流控了,你不能限制用戶的請求。因此在線架構對於彈性擴容有很高的要求,在大量請求到來時自動擴展後台的服務能力。比如當前的請求已經占用了集群的70%的資源時,系統需要自動的擴容;相反,當前的請求僅僅占用了集群20%的資源時,有必要回收一部分資源了。要知道,公司機房的電費還是很貴的。

當然了在線和離線架構的相同和區別談起來完全是一個大文章。本文主要關注在處理高並發請求的鎖的使用上。幾個原則吧:

不要使用全局鎖。使用全局鎖代表在需要請求鎖時,其他為得到鎖的線程都會等待,這將導致服務能力急劇下降。
一定要注意鎖的作用范圍,一定要保證鎖作用於足夠小的范圍。一定不要在鎖定區域有等待操作,比如IO調用。
盡量的考慮修改架構,避免加鎖。
試想一個場景,為了服務質量,我們可能發送多個請求到後台,以達到:

高可用行,後台的某個節點掛了,有其他的backup request會被請求。如果節點的SLA是99%(很低了),那麼發送2個請求到後台,SLA可以達到99.99%;如果單個節點的SLA是99.9%的話,SLA可以達到99.9999了,即百萬次請求至多一次失敗。
低延時,第一個回來的請求會響應,這樣的話能夠保證某些慢的節點不會影響系統整體的延時。
那麼如何判斷第一個請求是第一個達到的呢?
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
沙發 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-21 22:36 引用回復
先想一個比較粗暴的辦法:使用一個set記錄未返回的request 的id,然後在接到響應時,查看這個set有沒有這個id,如果有,刪除它,並且響應client;第二個以後的響應達到時,由於在set已經沒有這個id了,因此這些請求將被丟棄。

這個裡邊涉及到對set的讀和寫操作,這個需要加鎖;如果這個set是進程內可見的,那麼這個鎖就是進程級別的(或者說該進程或者說是線程的子線程都是可見的),加鎖時很多線程都會等待該鎖。這樣的話對性能會有很大損耗。

這個方法對於每秒幾百次請求是沒有問題的。但是如果達到千這個級別,那麼鎖的使用會達到數千次(比如1000個請求,發送3個請求到後台,那麼每次寫set加一次鎖,3個請求回來都會加一次鎖,因此相當於一個真實的請求會加鎖4次,1000個請求就是4000次,想想都恐怖,1s要加鎖4000次,鎖的代價再小也很恐怖吧,別說set的插入和查詢,刪除也有不可忽略的性能損耗)。

那麼可不可以加線程級別的鎖?線程級別的鎖會減少對其他線程的影響。但是,set如果也是線程級別的,那麼得保證異步回調的借口也得是在同一個線程才可以。否則這個線程發出的請求,被其他的線程得到,那麼上述的邏輯是不通的,因為set是線程級別的,對於其他線程來說是不可見的。這樣的話如果架構能夠保證一個異步請求的返回,也是在同一個線程處理就好了。那麼,如果架構可以這麼保證,那麼你根本不需要鎖,為什麼呢?因為一個線程都是順序執行的,不會有資源的競爭,因此讀寫set都是安全的,因此不需要加鎖。
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
板凳 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
webdriver
(只看此人)



文章 時間: 2014-10-21 22:36 引用回復
那麼問題來了,架構如何支持這個異步回調也是走到相同的線程裡?

一個實現就是實現一個線程池,對於特定的request id,基於一定的規則將他調度給一個工作線程;等到異步返回時,再通過這個request id調度給相同的線程處理。

那麼如何實現一個線程池?boost 裡有; 如果調度,boost 支持調度給哪個線程。問題解決。

睡覺。
 
花籃
分享
_________________
There is no wisdom tree; nor a stand of a mirror bright, Since all is void, where can the dust alight?
地板 | 返回頂端
閱讀會員資料 發送站內短信 主題 User photo gallery 禮物  
 
回復主題     |##| -> |=|     論壇首頁 -> IT人生 所有的時間均為 美國太平洋時間
1頁,共1


注:
  • 以上論壇所有發言僅代表發帖者個人觀點, 並不代表本站觀點或立場, 加西網對此不負任何責任。
  • 投資理財及買房賣房版面的帖子不構成投資建議。投資有風險,責任請自負
  • 對二手買賣中的虛假信息,買賣中的糾紛等均與本站無關。
  • 黃頁熱門商家 免費個人廣告
    發布商業廣告

    不能在本論壇發表新主題
    不能在本論壇回復主題
    不能在本論壇編輯自己的文章
    不能在本論壇刪除自己的文章
    不能在本論壇發表投票
    不能在這個論壇添加附件
    可以在這個論壇下載文件

    論壇轉跳: 

    webdriver, webdriver, webdriver, webdriver
    潛力帖子 精華帖子 熱門帖子
    美國今年可能不降息 加拿大面臨輸入...
    北京閃電劈彩虹,預示有大事?一壋...
    大溫6月掛牌量大漲近一半 降息了 為...
    多房暴負:遠郊的房子跌跌不休
    美軍司令恫嚇讓台海變“地獄”,老...
    3小時內全員被裁!中國老牌房企突然...
    河南河北
    你們洗一次牙的價格一般多少錢?
    國內碼農來溫哥華四年,沒打工沒收...
    這大爺不會就是溫東小兵吧
    冤!擅自上門鋪路加國亞裔業主被捕
    皇上賭國運卻接連遭鐵拳!最高38.1%...
    “投誠台灣”?
    國產電池炸毀一個家庭
    黃仁勳
    在Victoria華裔博物館裡面的一套token
    日本五日游記
    Mule Coin 無法抗拒的魅力之一:200...
    明天又要上班了
    漂亮的MS66
    The Value of Money
    再去chief peak
    這些是不是真貨?
    同號雷達鈔
    今天包粽子 兼和粉紅吵架
    熱烈恭賀錢幣小站新任版主四季豆同學
    北溫換硬幣活動取消
    加拿大唯一無國籍的硬幣
    每周版主推薦,美女精選(二七二)
    美國印第安人1元卷今日發貨
    最近愛上了KALE
    刺傷4美國講師 凶手身份曝光,順便...
    從64看中國人的奴性和殘暴。
    大溫2室租金將達2800
    在北美得了大病真是只能等死了
    國內最驕傲的兩件事外賣和快遞
    烏克蘭已經花掉了美國七百多億美元
    大家如何看待北京同仁堂汞超標5萬倍...
    身在海外,痛罵國內人不反抗挺壞的
    95個小時,這是看急診嗎
    疫情4年後,海外華人去中國的觀感
    在加做房東有罪嗎?
    坎昆比夏威夷好玩
    中國沒有恐襲
    BC省長宣布:BC將實行永久夏令時 但...

    最新新聞 熱門新聞 熱評新聞
    刺殺大溫華裔女警 男子被控其他罪
    熊孩子集體襲擊中國美院畢業展,藝術生苦不堪言
    G7就利用俄被凍結資產向烏提供高額貸款達成共識
    東京大學研發的仿人機器人"武藏" 可以駕駛汽車
    廣西一老人下公交被夾手後倒地 遭拖行致死
    "我讓她賺了那麼多錢" 川普驚訝泰勒沒有背書他
    嚴查員工上班"摸魚" 富國銀行解雇十幾人
    加國沒治了 九成財富掌握在房主中
    資本利得稅變化 對這類房產影響大
    天生壞種?男生篡改7名同學高考志願判刑1年半
    89歲大爺進山失聯 警方派直升機 大爺:我只是挖菜
    大幅漲價!中國"急救神藥"飆升至1200元 最新回應
    叛逃俄羅斯的烏克蘭前市長 在安全屋被暗殺了
    環球小姐選美 加國這美女創造歷史
    "天花板"都在墜落!中國這行業斷崖式縮水
    南海西北陸坡一號二號沉船已探明,提取文物928件
    解散國民議會重新選舉引"巨震",馬克龍解釋...
    "恐怖和震驚" 美國教師講述在中國被刺
    中專女生爆冷殺入全球數學競賽:夢想就是考大學
    赴日治病成趨勢?中產負擔得起,中國患者最多
    長發女全裸闖機場 嚇得地勤人員無所適從
    扎克伯格的冷血管理哲學:一次性裁50多名副總!
    美國16歲少女慘遭毒手,遺體被棄樹林,凶手竟是警察
    一年前剛獲聘新職的劉寶琴,被查了....
    川普盛贊她"非常迷人,極其美麗"
    印度一沙車翻覆,祖孫三代9人被活埋8人身亡...
    中專女生爆冷拿下阿裡巴巴數學競賽全球12名.....
    男子疑被交警噴辣椒水後抬走,當地回應
    一個台灣人:談談美軍在台海用兵的如意算盤
    中國生成式人工智能正在迎頭趕上美國
    溫西豪宅賣了一年 華裔賣家仍占房
    連27個跌停 27萬股民遭"悶殺" 新能源中企退市
    有恐襲威脅! 加國對9國發旅行警告
    淪落到派系的頭目 美國已不是世界老大
    美副國務卿:推翻北京政權不符美方利益
    華人驚爆恐怖經歷:做個檢查竟然把腸子捅個窟窿
    鐵道鎮購物中心夜市7月首次開張
    "恐怖和震驚" 美國教師講述在中國被刺
    解散國民議會重新選舉引"巨震",馬克龍解釋...
    中國南海西北陸坡一號二號沉船 出水巨量精美文物
    拐賣14孩人販王浩文:拉妻子情人入伙 不服死刑判決
    "就算辭了我,你也得掛電話!"保姆保住950多萬元
    中專女生爆冷殺入全球數學競賽:夢想就是考大學
    赴日治病成趨勢?中產負擔得起,中國患者最多
    長發女全裸闖機場 嚇得地勤人員無所適從

    更多方式閱讀論壇:

    Android: 加西網
    [下載]

    Android: 溫哥華論壇
    [下載]

    PDA版本: 論壇

    加西網微信

    加西網微博


    Powered by phpBB 2.0.8
    Terms & Conditions    Privacy Policy    Political ADs    Activities Agreement    Contact Us    Sitemap    

    加西網為北美中文網傳媒集團旗下網站

    頁面生成: 0.0485 秒 and 5 DB Queries in 0.0018 秒