[發明專利]一種流數據的并發讀寫方法和裝置有效
| 申請號: | 201611264055.9 | 申請日: | 2016-12-30 |
| 公開(公告)號: | CN106658050B | 公開(公告)日: | 2020-02-21 |
| 發明(設計)人: | 嚴國濤 | 申請(專利權)人: | 北京奇虎科技有限公司 |
| 主分類號: | H04N21/231 | 分類號: | H04N21/231;H04N21/433;H04N21/4335 |
| 代理公司: | 北京鼎佳達知識產權代理事務所(普通合伙) 11348 | 代理人: | 劉鐵生;孟阿妮 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 并發 讀寫 方法 裝置 | ||
本發明公開了一種流數據的并發讀寫方法和裝置。所述方法包括:將流數據循環順次寫入由多個數據隊列構建的存儲區;從所述存儲區讀取流數據時,預估當前寫入數據隊列之后的預備寫入數據隊列為待讀取數據隊列;從待讀取數據隊列轉向讀取流數據更新的第一目標數據隊列。上述技術方案降低了流數據并發讀寫時的處理器資源占用,提高了流數據的并發讀寫的效率。
技術領域
本發明涉及流數據存儲技術領域,具體涉及一種流數據的并發讀寫方法以及一種流數據的并發讀寫裝置。
背景技術
流數據為可以采用流式傳輸的方式在網絡上傳輸的數據,大型網站系統經常依賴于內容分發網絡(Content Delivery Network,CDN)對流數據進行傳輸,內容分發網絡是通過在現有的網絡中增加一層新的網絡結構,使用戶可以將數據傳輸到就近的節點上或從就近的節點獲取所需的數據。在內容分發網絡中,部署有傳輸節點,用于緩沖流數據,就近給用戶提供服務。
流數據在經傳輸節點進行分發時,可采用并發讀寫的工作方式,在向共享內存的緩沖隊列中寫入流數據的同時,從共享內存的緩沖隊列讀取流數據。通常對于同一流數據,會同時存在一個寫訪問和多個讀訪問。因此,可能存在對緩沖隊列的相同位置同時發起讀、寫訪問的情況,將會導致緩沖隊列中的數據混亂,數據的一致性會出現問題。
為了避免上述問題,通常采用鎖操作的方式來避免讀和寫的位置不會重疊,鎖操作是一種保證互斥訪問內存的保護措施,具體而言,當同時發起對流數據隊列的讀和/或訪問時,要求訪問操作首先獲取流數據隊列的互斥鎖,才能具有訪問流數據隊列的權限,獲得互斥鎖的訪問操作訪問流數據隊列,并在結束對流數據隊列的訪問時,釋放互斥鎖,之后其他訪問操作可根據獲取的互斥鎖依次訪問流數據隊列。
利用鎖操作的方式雖然避免了對流數據隊列進行同時操作時引起的數據混亂和訪問數據出錯的問題,但是通過鎖操作的方式控制并發讀寫,由于請求鎖、等待鎖和釋放鎖都會增加處理開銷,消耗處理器時間,使得在執行鎖操作的過程中造成CPU資源的浪費。
發明內容
鑒于上述問題,提出了本發明以便提供一種克服上述問題或者至少部分地解決上述問題的流數據的并發讀寫方法和相應的裝置。
依據本發明的一個方面,提供了一種流數據的并發讀寫方法,包括:
將流數據循環順次寫入由多個數據隊列構建的存儲區;
從所述存儲區讀取流數據時,預估當前寫入數據隊列之后的預備寫入數據隊列為待讀取數據隊列;
從待讀取數據隊列轉向讀取流數據更新的第一目標數據隊列。
可選地,所述將流數據循環順次寫入由多個數據隊列構建的存儲區包括:
順次向各個數據隊列寫入設定的數據時長的流數據。
可選地,所述預估當前寫入數據隊列之后的預備寫入數據隊列為待讀取數據隊列包括:
判斷當前時間距離待讀取數據隊列的起始寫入時間是否超出第一時間閾值;
若是,則確定當前寫入數據隊列之后的預備寫入數據隊列可能為待讀取數據隊列,所述第一時間閾值為除去一個數據隊列之外其他隊列的時間長度的總和。
可選地,所述從待讀取數據隊列轉向讀取流數據更新的第一目標數據隊列包括:
查找存儲有最新流數據的第一目標數據隊列;
讀取查找的第一目標數據隊列。
可選地,所述查找存儲有最新流數據的第一目標數據隊列包括:
提取各個數據隊列的起始寫入時間;
查找起始寫入時間距離當前時間最近的數據隊列為第一目標數據隊列。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司,未經北京奇虎科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201611264055.9/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種視頻播放緩沖方法及系統
- 下一篇:一種緩沖播放流媒體的控制方法及系統
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





