[發明專利]一種數據讀寫方法及裝置在審
| 申請號: | 201410768410.0 | 申請日: | 2014-12-12 |
| 公開(公告)號: | CN104391662A | 公開(公告)日: | 2015-03-04 |
| 發明(設計)人: | 劉中超;王康;朱超;王超 | 申請(專利權)人: | 北京奇虎科技有限公司;奇智軟件(北京)有限公司 |
| 主分類號: | G06F3/06 | 分類號: | G06F3/06 |
| 代理公司: | 北京國昊天誠知識產權代理有限公司 11315 | 代理人: | 許志勇 |
| 地址: | 100088 北京市西城區新*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 數據 讀寫 方法 裝置 | ||
技術領域
本申請涉及通信技術領域,尤其涉及一種數據讀寫方法及裝置。
背景技術
在基于多核操作系統的設備中,通常采用多進程和多線程的模式處理(如,讀或寫)數據,例如,寫進程通過其自身的線程向共享內存中寫入數據,以供讀進程讀取,讀進程通過自身的線程從共享內存中讀取其所需的數據。
而在實際應用中,共享內存中可能并不存在讀進程所需要的數據,因此,會出現讀進程可能無法從共享內存中讀取到其所需要的數據的問題。
針對上述問題,在現有技術中,可利用寫進程獲取讀進程所需要的數據對應的鍵值(即key值),并從網絡側的服務器中獲取該鍵值對應的數據,將該獲取的數據寫入共享內存中,以供讀進程讀取。
而由于讀進程與寫進程之間是無法直接進行通信的,因此,為了保證寫進程能夠獲取讀進程所需要的數據對應的key值,在現有技術中,先預設一個隊列,讀進程將其所需要的各數據的key值寫入該隊列中,而寫進程從該隊列中獲取key值,并從網絡側的服務器中獲取該key值對應的數據,將該數據寫入共享內存中以供讀進程讀取。
然而,寫進程每次從隊列中讀取出一個鍵值之后,需要先從網絡側的服務器中獲取該鍵值對應的數據,并將該數據寫入共享內存中,然后才從隊列中讀取下一個鍵值。一般的,寫進程從網絡側獲取一個鍵值對應的數據所需要的時間,遠遠大于讀進程向隊列中寫入一個鍵值所需要的時間。因此,當讀進程在短時間內向該隊列中寫入自身所需要的數據的多個key值時,隊列中的多個鍵值容易造成堆積。
由于隊列的存儲空間較小,其容量一般僅為幾十KB,這就會導致隊列很快就會被堆積的鍵值占滿,從而會造成后續讀進程無法再將其所需要的數據的key值寫入隊列,進而導致后續讀進程無法從共享內存中讀取到其所需要的數據。
發明內容
鑒于上述問題,本發明提出一種能夠有效克服上述問題的數據讀寫方法及裝置,可保證讀進程能夠從共享內存中讀取到其所需的數據。
根據本發明的第一個方面,提出一種數據寫入方法,包括:
讀取隊列中的鍵值;
將讀取的所述鍵值保存在預設的存儲區域中,并刪除隊列中的所述鍵值;
根據所述存儲區域中的所述鍵值,獲取所述鍵值對應的數據;以及
將獲取的數據寫入共享內存中。
可選的,所述方法還包括:
根據獲取的數據,確定所述數據對應的校驗值;以及
將所述數據對應的校驗值寫入共享內存中。
可選的,根據獲取的數據,確定所述數據對應的校驗值,具體包括:
通過信息摘要算法確定所述數據對應的校驗值。
可選的,獲取所述鍵值對應的數據,具體包括:
從協調服務器Zookeeper中獲取所述鍵值對應的數據。
可選的,讀取隊列中的鍵值,具體包括:
通過第一線程讀取隊列中的鍵值;
獲取所述鍵值對應的數據,具體包括:
通過第二線程獲取所述鍵值對應的數據。
根據本發明的第二個方面,提出一種數據讀取方法,包括:
向隊列中寫入待讀取的數據對應的鍵值;
從共享內存中讀取所述鍵值對應的數據;
所述共享內存中所述鍵值對應的數據是由寫進程從所述隊列中讀取所述鍵值后,根據所述鍵值獲取并寫入所述共享內存中的;其中,所述寫進程從所述隊列中讀取所述鍵值后,將所述鍵值保存在預設的存儲區域中,并刪除所述隊列中的所述鍵值。
可選的,所述方法還包括:
根據讀取的數據,確定所述數據對應的第一校驗值;
從共享內存中讀取所述數據對應的第二校驗值;
當所述第一校驗值與第二校驗值不匹配時,再次從共享內存中讀取所述鍵值對應的數據,直至確定讀取的數據的第一校驗值與所述第二校驗值匹配為止,其中,所述第二校驗值是由寫入所述數據的寫進程寫入所述共享內存中的。
可選的,根據讀取的數據,確定所述數據對應的第一校驗值,具體包括:
通過信息摘要算法確定所述數據對應的第一校驗值。
根據本發明的第三個方面,提出一種數據寫入裝置,包括:
鍵值讀取模塊,用于讀取隊列中的鍵值;
鍵值存儲模塊,用于將讀取的所述鍵值保存在預設的存儲區域中;
鍵值刪除模塊,用于刪除隊列中的所述鍵值;
數據獲取模塊,用于根據所述存儲區域中的所述鍵值,獲取所述鍵值對應的數據;以及
數據寫入模塊,用于將獲取的數據寫入共享內存中。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于北京奇虎科技有限公司;奇智軟件(北京)有限公司,未經北京奇虎科技有限公司;奇智軟件(北京)有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201410768410.0/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:便攜式信息終端、顯示控制方法和程序
- 下一篇:用于處理虛擬世界的裝置和方法
- 數據顯示系統、數據中繼設備、數據中繼方法、數據系統、接收設備和數據讀取方法
- 數據記錄方法、數據記錄裝置、數據記錄媒體、數據重播方法和數據重播裝置
- 數據發送方法、數據發送系統、數據發送裝置以及數據結構
- 數據顯示系統、數據中繼設備、數據中繼方法及數據系統
- 數據嵌入裝置、數據嵌入方法、數據提取裝置及數據提取方法
- 數據管理裝置、數據編輯裝置、數據閱覽裝置、數據管理方法、數據編輯方法以及數據閱覽方法
- 數據發送和數據接收設備、數據發送和數據接收方法
- 數據發送裝置、數據接收裝置、數據收發系統、數據發送方法、數據接收方法和數據收發方法
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置
- 數據發送方法、數據再現方法、數據發送裝置及數據再現裝置





