[發(fā)明專利]一種基于增量計算的分布式流式數(shù)據(jù)系統(tǒng)在審
| 申請?zhí)枺?/td> | 201310542870.7 | 申請日: | 2013-11-06 |
| 公開(公告)號: | CN104636327A | 公開(公告)日: | 2015-05-20 |
| 發(fā)明(設計)人: | 趙龍飛 | 申請(專利權)人: | 上海語鏡汽車信息技術有限公司 |
| 主分類號: | G06F17/30 | 分類號: | G06F17/30 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 201313 上海市浦東新區(qū)萬祥*** | 國省代碼: | 上海;31 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 增量 計算 分布式 數(shù)據(jù) 系統(tǒng) | ||
技術領域:
本發(fā)明涉及數(shù)據(jù)的存儲和檢索,具體涉及一種基于增量計算的分布式流式數(shù)據(jù)系統(tǒng)。
背景技術
REDIS內(nèi)存數(shù)據(jù)結構,redis是一個高性能的key-value存儲系統(tǒng)。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted?set一有序集合)和hashs(哈希類型)。這些數(shù)據(jù)類型都支持push/pop、add/remove及取交集并集和差集及更豐富的操作,而且這些操作都是原子性的。在此基礎上,redi?s支持各種不同方式的排序。與memcached一樣,為了保證效率,數(shù)據(jù)都是緩存在內(nèi)存中。區(qū)別的是redis會周期性的把更新的數(shù)據(jù)寫入磁盤或者把修改操作寫入追加的記錄文件,并且在此基礎上實現(xiàn)了master-slave(主從)同步。
LUA動態(tài)語言,是一個小巧的腳本語言。該語言的設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua腳本可以很容易的被C/C++代碼調(diào)用,也可以反過來調(diào)用C/C++的函數(shù),這使得Lua在應用程序中可以被廣泛應用。不僅僅作為擴展腳本,也可以作為普通的配置文件,代替XML,Ini等文件格式,并且更容易理解和維護。Lua由標準C編寫而成,代碼簡潔優(yōu)美,幾乎在所有操作系統(tǒng)和平臺上都可以編譯,運行。
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie于1972年推出,1978年后,C語言已先后被移植到大、中、小及微型機上,它可以作為工作系統(tǒng)設計語言,編寫系統(tǒng)應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬件的應用程序。它的應用范圍廣泛,具備很強的數(shù)據(jù)處理能力。
發(fā)明內(nèi)容
針對上述現(xiàn)有技術中的缺陷,本發(fā)明公開了一種基于增量計算的分布式流式數(shù)據(jù)系統(tǒng)。
本發(fā)明采用下述技術方案:
一種基于增量計算的分布式流式數(shù)據(jù)系統(tǒng),該系統(tǒng)由存儲節(jié)點、計算節(jié)點組成,存儲節(jié)點、計算節(jié)點之間采取連接池方式保持連接,出錯后會自動重新連接,其中:
存儲節(jié)點REDIS構建,保存了大量的中間結果,保證了隨著數(shù)據(jù)的不斷流入,有專用的持久化程序?qū)?nèi)存中的數(shù)據(jù)定期進行持久化保存,為故障恢復做準備;
計算節(jié)點負責核心的計算工作,其采用C語言構建的基礎HTTP的數(shù)據(jù)接收端,JSON作為唯一的數(shù)據(jù)處理格式,LUA作為邏輯編寫的腳本語言,在提供高性能的同時,降低了編程的難度;中途出現(xiàn)錯誤后,原始數(shù)據(jù)會自動的發(fā)送到另外一個處理節(jié)點,保證數(shù)據(jù)能得到處理。
該系統(tǒng)采用增量的計算模型,將計算需求拆分成多個可以依次完成的步驟,避免對全量數(shù)據(jù)進行處理,每次只將新增的部分加入到之前的計算結果中,存儲節(jié)點中永遠保持最新的計算結果,方便數(shù)據(jù)的處理。
優(yōu)選地,存儲節(jié)點被分成了私有變量、公有變量、腳本服務器三種,外部服務和LBS都是系統(tǒng)外的服務,計算節(jié)點也有調(diào)用的權利。
本發(fā)明還涉及一種采用上述系統(tǒng)進行的單條數(shù)據(jù)的處理方法,該方法包括如下步驟:
(1)當計算節(jié)點接收到一條數(shù)據(jù)請求時,首先對數(shù)據(jù)包進行分解;
(2)解析成功后進入下一步,為了提高響應速度,完成數(shù)據(jù)的接收后,立即給出響應,不用等到這條數(shù)據(jù)處理完畢;
(3)然后開始讀取存儲節(jié)點中的數(shù)據(jù),讀取完成后開始結合數(shù)據(jù)包中的最新數(shù)據(jù),進行增量計算,最后將結果寫回到存儲節(jié)點中;
(4)最后,根據(jù)功能需求,還可以對外部的服務進行調(diào)用。
本套系統(tǒng)構建了一套輕量化的基于增量計算的分布式流式數(shù)據(jù)系統(tǒng),和當前其他的流式計算系統(tǒng)相比,該系統(tǒng)提供了高效的數(shù)據(jù)結構的內(nèi)存存儲方案,構建了穩(wěn)定高效的連接池,在數(shù)據(jù)操作失敗時提供了容錯方案。存儲節(jié)點上同時運行數(shù)據(jù)持久化守護進程每個計算節(jié)點可以無阻塞的接收服務請求,分配給不同的進程來處理數(shù)據(jù)。節(jié)點之間為平等的關系。可以通過水平擴展計算節(jié)點和存儲節(jié)點。得到幾乎線性的性能提升。
附圖說明:
圖1是本發(fā)明的單條數(shù)據(jù)處理流程圖;
圖2是本發(fā)明的系統(tǒng)拓撲圖。
具體實施方式:
現(xiàn)結合附圖將本發(fā)明做進一步的說明。
系統(tǒng)由存儲節(jié)點,計算節(jié)點組成。節(jié)點之間采取連接池方式保持連接,出錯后會自動重新連接。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于上海語鏡汽車信息技術有限公司,未經(jīng)上海語鏡汽車信息技術有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201310542870.7/2.html,轉載請聲明來源鉆瓜專利網(wǎng)。
- 上一篇:一種視頻搜索的方法和裝置
- 下一篇:用于USB燒錄的系統(tǒng)和方法





