国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      計費節(jié)點負載控制方法、數(shù)據(jù)訪問控制方法及節(jié)點的制作方法

      文檔序號:7779727閱讀:141來源:國知局
      計費節(jié)點負載控制方法、數(shù)據(jù)訪問控制方法及節(jié)點的制作方法
      【專利摘要】本發(fā)明提供了一種計費節(jié)點負載控制方法,所述方法包括:確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息;刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。本發(fā)明實施例可以使得計費節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),提高計費節(jié)點的利用效率。
      【專利說明】計費節(jié)點負載控制方法、數(shù)據(jù)訪問控制方法及節(jié)點
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及通信領(lǐng)域,具體涉及一種計費節(jié)點負載控制方法、數(shù)據(jù)訪問控制方法及節(jié)點。
      【背景技術(shù)】
      [0002]計費處理節(jié)點用于存儲用戶的賬戶信息以及用于計費的用戶資料信息,當計費管理系統(tǒng)接收到外部設(shè)備發(fā)送的計費請求后,首先對計費請求中攜帶的用戶信息進行路由分析,之后將計費請求路由到用戶數(shù)據(jù)歸屬的計費處理節(jié)點,以執(zhí)行費用處理操作。計費系統(tǒng)中通常部署有多個用于處理計費業(yè)務(wù)的計費處理節(jié)點,但是各個節(jié)點的話務(wù)量并不均衡,因此會存在每個節(jié)點的負載不均衡的問題,影響不同節(jié)點的數(shù)據(jù)處理效率。
      [0003]現(xiàn)有技術(shù)未來使不同節(jié)點的負載保持相對平衡,通常由工作人員定期將需要遷出數(shù)據(jù)的節(jié)點中的數(shù)據(jù)導(dǎo)出后,再導(dǎo)入目的節(jié)點,在數(shù)據(jù)遷移的過程中,需要中止被搬遷數(shù)據(jù)節(jié)點的計費服務(wù),因此影響計費節(jié)點的使用效率。

      【發(fā)明內(nèi)容】

      [0004]本發(fā)明的目的是提供一種計費節(jié)點負載控制方法,以實現(xiàn)在數(shù)據(jù)遷移過程中不需要中止遷移節(jié)點的工作,提高劫匪節(jié)點的使用效率。
      [0005]為實現(xiàn)上述目的,本發(fā)明實施例第一方面提供了一種一種計費節(jié)點負載控制方法,其特征在于,所述方法包括:
      [0006]確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;
      [0007]在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);
      [0008]根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài);
      [0009]刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      [0010]基于第一方面,在第一種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗;
      [0011]所述在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,進一步包括:
      [0012]向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài);[0013]在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài);
      [0014]基于第一方面,在第二種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??;
      [0015]所述根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,進一步包括:
      [0016]在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),;
      [0017]在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      [0018]基于第一方面,在第三種可能的實施方式中,所述確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,具體包括:
      [0019]根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      [0020]基于第一方面,在第四種可能的實施方式中,所述確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,之后,還包括:
      [0021]將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      [0022]基于第一方面,在第五種可能的實施方式中,所述刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,還包括:
      [0023]將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。
      [0024]第二方面,本發(fā)明實施例提供了一種數(shù)據(jù)訪問控制方法,所述方法包括:
      [0025]在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶;
      [0026]獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)息;
      [0027]當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;
      [0028]當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊;
      [0029]當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      [0030]基于第二方面,在第一種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??;
      [0031]所述獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;之后,還包括:
      [0032]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點;
      [0033]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      [0034]基于第二方面,在第二種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      [0035]基于第二方面,在第三種可能的實施方式中,所述當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問,具體包括:
      [0036]將所述第一計費請求消息置入消息隊列,在設(shè)定時間后重新處理。
      [0037]第三方面,本發(fā)明實施例提供了一種計費節(jié)點,所述計費節(jié)點包括:
      [0038]確定單元,用于確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;
      [0039]第一更新單元,用于在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);
      [0040]第二更新單元,用于根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài);
      [0041]數(shù)據(jù)存儲單元,用于刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      [0042]基于第三方面,在第一種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失?。?br> [0043]所述第一更新單元,具體用于:
      [0044]向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài);
      [0045]在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài);
      [0046]基于第三方面,在第二種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失敗;[0047]所述第二更新單元,具體用于:
      [0048]在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),;
      [0049]在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      [0050]基于第三方面,在第三種可能的實施方式中,所述確定單元,具體用于:
      [0051]根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      [0052]基于第三方面,在第四種可能的實施方式中,還包括:預(yù)處理單元,用于:
      [0053]將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      [0054]基于第三方面,在第五種可能的實施方式中,還包括:
      [0055]路由控制單元,用于在刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。
      [0056]第四方面,本發(fā)明實施例提供了一種數(shù)據(jù)訪問控制節(jié)點,所述節(jié)點包括:
      [0057]確定單元,用于在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶;
      [0058]第一獲取單元,用于獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;
      [0059]第二獲取單元,用于當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;
      [0060]路由控制單元,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊;
      [0061]訪問控制單元,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      [0062]基于第四方面,在第一種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??;
      [0063]所述路由控制單元還用于:
      [0064]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點;
      [0065]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      [0066]基于第四方面,在第二種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      [0067]本發(fā)明實施例提供的計費節(jié)點負載控制方法,通過將節(jié)點中存儲的用戶計費數(shù)據(jù)進行分片,為每個分片及每個分片中的用戶數(shù)據(jù)進行狀態(tài)設(shè)置遷移狀態(tài),在向目的節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的遷移狀態(tài)信息,并且根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的遷移狀態(tài),更新所述分片數(shù)據(jù)包遷移狀態(tài)信息,從而可以使得計費節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),確定需要訪問計費節(jié)點的訪問節(jié)點是否能夠訪問目標數(shù)據(jù),以提高計費節(jié)點的利用效率。
      【專利附圖】

      【附圖說明】
      [0068]為了更清楚地說明本發(fā)明實施例中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動性的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
      [0069]圖1是一種計費系統(tǒng)的應(yīng)用架構(gòu)圖;
      [0070]圖2是本發(fā)明實施例提供的節(jié)點負載控制方法的一種實施例的流程圖;
      [0071]圖3是本發(fā)明實施例提供的節(jié)點負載控制方法的一種實施例的交互狀態(tài)參考圖;
      [0072]圖4是本發(fā)明實施例提供的數(shù)據(jù)訪問控制方法一種實施例的流程圖;
      [0073]圖5是本發(fā)明實施例提供的數(shù)據(jù)訪問控制方法另一種實施例的流程圖;
      [0074]圖6是本發(fā)明實施例提供的計費節(jié)點的一種實施例的結(jié)構(gòu)圖;
      [0075]圖7是本發(fā)明實施例提供的一種數(shù)據(jù)訪問控制節(jié)點的另一種實施例結(jié)構(gòu)圖;
      [0076]圖8是本發(fā)明實施例提供的計費節(jié)點的一種實施例的結(jié)構(gòu)圖;
      [0077]圖9是本發(fā)明實施例提供的一種數(shù)據(jù)訪問控制節(jié)點的另一種實施例結(jié)構(gòu)圖。
      【具體實施方式】
      [0078]下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
      [0079]圖1是計費系統(tǒng)的基本架構(gòu)圖,其中計費節(jié)點Hostl和計費節(jié)點Host2分別為計費系統(tǒng)中的兩個計費節(jié)點,分別具有數(shù)據(jù)存儲模塊存儲不同用戶的計費數(shù)據(jù),例如有會話數(shù)據(jù)和賬戶數(shù)據(jù),以及作為消息路由模塊的數(shù)據(jù)訪問控制節(jié)點,負責(zé)接收外部發(fā)送給計費系統(tǒng)的計費請求消息,并根據(jù)配置在該節(jié)點的路由數(shù)據(jù),將寄給請求消息路由到相應(yīng)的計費節(jié)點進行計費處理。但是,由于兩個計費節(jié)點hostl和host2負載不同,因此,需要將一個計費節(jié)點的數(shù)據(jù)遷移到另一個計費節(jié)點。在本發(fā)明實施例中,為了便于說明,一個計費系統(tǒng)僅包含兩個計費節(jié)點,只是舉例之用,在實際的計費系統(tǒng)中,可能包含更多數(shù)目的計費節(jié)點。
      [0080]在本發(fā)明實施例中,計費節(jié)點hostl和host2中存儲的用戶計費數(shù)據(jù)被分片,分為多個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中進一步包含至少一個用戶的用戶計費數(shù)據(jù)塊。在本發(fā)明實施例中,在數(shù)據(jù)訪問控制節(jié)點中可以通過兩份表格記錄每個分片數(shù)據(jù)包的遷移狀態(tài)以及每個用戶的用戶計費數(shù)據(jù)塊的遷移狀態(tài)。例如,分片遷移狀態(tài)表用于記錄分片標識、分片的遷移狀態(tài),以及該分片所在的目標節(jié)點;用戶數(shù)據(jù)遷移狀態(tài)表用于記錄用戶標識、遷移狀態(tài)以及該用戶計費數(shù)據(jù)塊歸屬的分片數(shù)據(jù)包的分片標識。
      [0081]更具體地說,每個分片數(shù)據(jù)包中的的遷移狀態(tài)稱之為第一遷移狀態(tài)信息,例如遷移準備、遷移中、遷移成功或遷移失敗,在本發(fā)明實施例中,為簡便之用,用第一狀態(tài)表示所述分片數(shù)據(jù)包未被遷移第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失敗。
      [0082]類似的,每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的遷移狀態(tài)稱為第二遷移狀態(tài)信息,例如遷移準備、遷移中、遷移成功或遷移失敗,在本發(fā)明實施例中,為簡便之用,所述第四狀態(tài)表示所述用戶計費數(shù)據(jù)塊未被遷移,第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      [0083]基于上述的架構(gòu),本發(fā)明實施例提供了一種計費節(jié)點負載控制方法,圖2是該實施例提供的方法的流程圖,由圖2可見,所述方法包括:
      [0084]201,確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;
      [0085]具體而言,在步驟I之前,計費系統(tǒng)中具有的管理節(jié)點會統(tǒng)計計費系統(tǒng)中全部計費節(jié)點的負載狀況,之后,在其中選擇需要遷出數(shù)據(jù)的計費節(jié)點和需要遷入數(shù)據(jù)的計費節(jié)點。
      [0086]例如,假設(shè)計費系統(tǒng)中包含η個計費節(jié)點(node),那么管理系統(tǒng)可以根據(jù)如下的方式確定需要遷出和嵌入數(shù)據(jù)的計費節(jié)點:
      [0087]確定分片遷出的計費節(jié)點:Max {Node (η)的負載-所有Node平均負載},即選擇高出平均負載最多的節(jié)點;
      [0088]確定分片遷入的計費節(jié)點:Min {Node (η)的負載-所有Node平均負載},即選擇低于平均負載最多的節(jié)點;
      [0089]其中,所有Node平均負載={n個節(jié)點負載累加總和}/n,即所有節(jié)點的負載的平均值。
      [0090]相應(yīng)的,由于一個計費節(jié)點的存儲模塊中包含多個分片數(shù)據(jù)包,因此在確定了需要遷出數(shù)據(jù)的計費節(jié)點后,在本實施例中假設(shè)hostls是需要遷出數(shù)據(jù)的第一計費節(jié)點,host2是需要遷入數(shù)據(jù)的計費節(jié)點,那么需要在第一計費節(jié)點中確定選擇需要遷出的分片數(shù)據(jù)包,需要遷移的分片數(shù)據(jù)包可能有一個或者多個,這些分片數(shù)據(jù)包的總負載滿足:Min{分片總負載-(遷出計費節(jié)點負載-遷入計費節(jié)點負載)/2},即選擇負載總和最接近于遷入和遷出計費節(jié)點平均負載的分片。
      [0091]也就是,根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      [0092]之后再以前一次計算結(jié)果為基礎(chǔ),假定分片已經(jīng)搬遷,再次計算出需要搬遷的分片數(shù)據(jù)包。循環(huán)多次,直到所有的負載要素都達到節(jié)點平衡的范圍,所得到的結(jié)果,就是所有需要搬遷的分片以及搬遷的路徑。
      [0093]如果在指定的循環(huán)次數(shù)下無法達到平衡,說明計費系統(tǒng)整體已經(jīng)達到設(shè)計容量,僅僅依靠分片數(shù)據(jù)包遷移已經(jīng)無法解決負載問題,需要擴容。[0094]202,在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);
      [0095]具體而言,在本發(fā)明實施例中,可以通過數(shù)據(jù)同步的方式在前一每個用戶計費數(shù)據(jù)塊的過程中,更新數(shù)據(jù)接入控制節(jié)點中數(shù)據(jù)遷移狀態(tài)表中的,相應(yīng)的用戶計費數(shù)據(jù)塊的遷移狀態(tài)信息,例如在開始遷移一個用戶計費數(shù)據(jù)包后,將該用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,從第四狀態(tài)修改為第五狀態(tài),對應(yīng)于圖1所示的實施例,在表中,將“準備遷移”修改為“遷移中”,類似的,當該用戶計費數(shù)據(jù)塊以及遷移完成后,將其第二遷移狀態(tài)信息從第五狀態(tài)修改為第六狀態(tài),例如,在表中,將“遷移中”修改為“遷移完成”。
      [0096]也就是說,該步驟,進一步包括:
      [0097]向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài);
      [0098]在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài);
      [0099]203,根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài);
      [0100]具體而言,在本發(fā)明實施例中,可以通過數(shù)據(jù)同步的方式在每個分片數(shù)據(jù)包遷移的過程中,更新數(shù)據(jù)接入控制節(jié)點中分片遷移狀態(tài)表中的,相應(yīng)的分片數(shù)據(jù)包的遷移狀態(tài)信息,例如在開始遷移一個分片數(shù)據(jù)包后,將該分片數(shù)據(jù)包的第一遷移狀態(tài)信息,從第一狀態(tài)修改為第二狀態(tài),對應(yīng)于圖1所示的實施例,在表中,將“準備遷移”修改為“遷移中”,類似的,當該分片數(shù)據(jù)包中全部的用戶計費數(shù)據(jù)塊都遷移完成后,將其第一遷移狀態(tài)信息從第二狀態(tài)修改為第三狀態(tài),例如,在表中,將“遷移中”修改為“遷移完成”。
      [0101]也就是說,本步驟,進一步包括:
      [0102]在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),;
      [0103]在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      [0104]204,刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      [0105]更具體的,在步驟204的同時,所述刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,還包括:將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。例如,更新數(shù)據(jù)接入控制節(jié)點中分片遷移狀態(tài)表中的分片數(shù)據(jù)包所在的計費節(jié)點信息,以使得數(shù)據(jù)訪問控制節(jié)點再接收到對應(yīng)該分片數(shù)據(jù)包的計費請求消息后,可以將其路由到正確的計費節(jié)點,例如一個分片數(shù)據(jù)包在遷移前位于第一計費節(jié)點,二遷移后位于第二計費節(jié)點,則在前一完成后,需要修改該分片數(shù)據(jù)包的歸屬節(jié)點為第二計費節(jié)點。
      [0106]在一種實施方式中,所述確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,之后,還包括:將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      [0107]該步驟作為遷移前的預(yù)處理,是為了降低遷移過程中的風(fēng)險,例如存在唯一索引沖突,主鍵沖突等問題,在預(yù)處理之后,才進行正常的分片數(shù)據(jù)包遷移。
      [0108]上述實施例的交互狀態(tài),也可參考圖3,該圖3為本發(fā)明是實施例的交互狀態(tài)參考圖。
      [0109]通過上述的實施例,通過將節(jié)點中存儲的用戶計費數(shù)據(jù)進行分片,為每個分片及每個分片中的用戶數(shù)據(jù)進行狀態(tài)設(shè)置遷移狀態(tài),在向目的節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的遷移狀態(tài)信息,并且根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的遷移狀態(tài),更新所述分片數(shù)據(jù)包遷移狀態(tài)信息,從而可以使得計費節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),確定需要訪問計費節(jié)點的訪問節(jié)點是否能夠訪問目標數(shù)據(jù),以提高計費節(jié)點的利用效率。
      [0110]相應(yīng)的,本發(fā)明實施例基于圖1所示的計費系統(tǒng)架構(gòu),還提供了一種數(shù)據(jù)訪問控制方法,該實施例應(yīng)用于圖1所示的數(shù)據(jù)訪問控制節(jié)點,圖4是該實施例的流程圖,由圖4可見,所述方法包括:
      [0111]401,在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶;
      [0112]402,獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;
      [0113]具體而言,由前述的實施例可知,每個用戶計費數(shù)據(jù)塊都只歸屬于一個分片數(shù)據(jù)包,如果該分片數(shù)據(jù)包已經(jīng)遷移完成或者沒有被遷移,則其中的用戶計費數(shù)據(jù)塊也沒有被遷移。
      [0114]數(shù)據(jù)訪問控制節(jié)點可以通過查找分片遷移狀態(tài)表,確定第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的遷移狀態(tài)。
      [0115]每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??;
      [0116]403,當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;
      [0117]具體而言,如果第一分片數(shù)據(jù)包正處于遷移狀態(tài),則第一分片數(shù)據(jù)包中有部分或用戶計費數(shù)據(jù)塊正處于遷移狀態(tài),但是第一用戶的第一用戶計費數(shù)據(jù)塊并不一定處于遷移中。
      [0118]所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      [0119]404,當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊;
      [0120]具體而言,當數(shù)據(jù)訪問控制節(jié)點通過查找用戶數(shù)據(jù)遷移表,查詢到第一用戶計費數(shù)據(jù)塊的遷移狀態(tài)為遷移成功時,將第一計費消息路由到第二計費節(jié)點,如果第一用戶計費數(shù)據(jù)塊的遷移狀態(tài)為遷移失敗時,則將第一計費消息路由到第一計費節(jié)點,兩種情況下,第一用戶計費數(shù)據(jù)塊,都能夠被正常訪問。
      [0121]405,當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      [0122]具體而言,當數(shù)據(jù)訪問控制節(jié)點通過查找用戶數(shù)據(jù)遷移表,查詢到第一用戶計費數(shù)據(jù)塊的遷移狀態(tài)為中,此時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。例如,將所述第一計費請求消息置入消息隊列,在設(shè)定時間后重新處理。如果下次還是無法成功,則返回用戶數(shù)據(jù)訪問錯誤,要求前端網(wǎng)元重發(fā)。
      [0123]在一種實施方式中,所述獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;之后,還包括:
      [0124]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點;
      [0125]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      [0126]更詳細的數(shù)據(jù)訪問流程圖,可參考圖5,其為數(shù)據(jù)訪問的控制流程圖,不多贅述。
      [0127]通過該實施例,可以使得數(shù)據(jù)訪問的控制節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),確定需要訪問計費節(jié)點的訪問節(jié)點是否能夠訪問目標數(shù)據(jù),以提高計費節(jié)點的利用效率。
      [0128]如圖6所示,本發(fā)明實施例提供了一種計費節(jié)點,該計費節(jié)點例如可以是圖1中的第一計費節(jié)點hostl,所述計費節(jié)點包括:
      [0129]確定單元601,用于確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;
      [0130]第一更新單元602,用于在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);
      [0131]第二更新單元603,用于根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài);
      [0132]數(shù)據(jù)存儲單元604,用于刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      [0133]在一種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失?。?br> [0134]所述第一更新單元,具體用于:
      [0135]向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài);
      [0136]在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài);
      [0137]在另一種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失敗;
      [0138]所述第二更新單元,具體用于:
      [0139]在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),;
      [0140]在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      [0141]在一種可能的實施方式中,所述確定單元,具體用于:
      [0142]根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      [0143]在一種可能的實施方式中,所述計費節(jié)點還包括:預(yù)處理單元,用于:
      [0144]將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      [0145]在一種可能的實施方式中,所述計費節(jié)點還包括:還包括:
      [0146]路由控制單元,用于在刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。
      [0147]通過上述的實施例,通過將節(jié)點中存儲的用戶計費數(shù)據(jù)進行分片,為每個分片及每個分片中的用戶數(shù)據(jù)進行狀態(tài)設(shè)置遷移狀態(tài),在向目的節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的遷移狀態(tài)信息,并且根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的遷移狀態(tài),更新所述分片數(shù)據(jù)包遷移狀態(tài)信息,從而可以使得計費節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),確定需要訪問計費節(jié)點的訪問節(jié)點是否能夠訪問目標數(shù)據(jù),以提高計費節(jié)點的利用效率。
      [0148]相應(yīng)的,如圖7所示,本發(fā)明實施例還提供了一種數(shù)據(jù)訪問控制節(jié)點,該節(jié)點可以是圖1中的數(shù)據(jù)訪問控制節(jié)點,或者成為消息路由模塊,由圖7可見,所述節(jié)點包括:
      [0149]確定單元701,用于在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶;
      [0150]第一獲取單元702,用于獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;
      [0151]第二獲取單元703,用于當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;
      [0152]路由控制單元704,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊;
      [0153]訪問控制單元705,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      [0154]進一步的,在一種可能的實施方式中,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??;
      [0155]所述路由控制單元還用于:
      [0156]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點;
      [0157]若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      [0158]進一步的,在一種可能的實施方式中,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      [0159]通過該實施例,可以使得數(shù)據(jù)訪問的控制節(jié)點通過分片和/或用戶計費數(shù)據(jù)塊的遷移狀態(tài),確定需要訪問計費節(jié)點的訪問節(jié)點是否能夠訪問目標數(shù)據(jù),以提高計費節(jié)點的利用效率。
      [0160]如圖8所示,本發(fā)明實施例提供了一種計費節(jié)點,該計費節(jié)點例如可以是圖1中的第一計費節(jié)點hostl,本實施例包括網(wǎng)絡(luò)接口 61、處理器62和存儲器83。系統(tǒng)總線84用于連接網(wǎng)絡(luò)接口 81、處理器82和存儲器83。
      [0161]網(wǎng)絡(luò)接口 81用于與其他計費節(jié)點以及數(shù)據(jù)訪問控制節(jié)點通信。
      [0162]存儲器83可以是永久存儲器,例如硬盤驅(qū)動器和閃存,存儲器83中具有軟件模塊和設(shè)備驅(qū)動程序。軟件模塊能夠執(zhí)行本發(fā)明上述方法的各種功能模塊;設(shè)備驅(qū)動程序可以是網(wǎng)絡(luò)和接口驅(qū)動程序。
      [0163]在啟動時,這些軟件組件被加載到存儲器83中,然后被處理器82訪問并執(zhí)行如下指令:
      [0164]確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊;
      [0165]在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);
      [0166]根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài);
      [0167]刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      [0168]相應(yīng)的,如圖9所示,本發(fā)明實施例還提供了一種數(shù)據(jù)訪問控制節(jié)點,該節(jié)點可以是圖1中的數(shù)據(jù)訪問控制節(jié)點,或者成為消息路由模塊,由圖7可見,本實施例包括網(wǎng)絡(luò)接口 91、處理器92和存儲器93。系統(tǒng)總線94用于連接網(wǎng)絡(luò)接口 91、處理器92和存儲器93。
      [0169]網(wǎng)絡(luò)接口 91用于與其他計費節(jié)點通信。
      [0170]在啟動時,這些軟件組件被加載到存儲器93中,然后被處理器92訪問并執(zhí)行如下指令:
      [0171]在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶;[0172]獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)息;
      [0173]當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;
      [0174]當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊;
      [0175]當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      [0176]專業(yè)人員應(yīng)該還可以進一步意識到,結(jié)合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬件、計算機軟件或者二者的結(jié)合來實現(xiàn),為了清楚地說明硬件和軟件的可互換性,在上述說明中已經(jīng)按照功能一般性地描述了各示例的組成及步驟。這些功能究竟以硬件還是軟件方式來執(zhí)行,取決于技術(shù)方案的特定應(yīng)用和設(shè)計約束條件。專業(yè)技術(shù)人員可以對每個特定的應(yīng)用來使用不同方法來實現(xiàn)所描述的功能,但是這種實現(xiàn)不應(yīng)認為超出本發(fā)明的范圍。
      [0177]結(jié)合本文中所公開的實施例描述的方法或算法的步驟可以用硬件、處理器執(zhí)行的軟件模塊,或者二者的結(jié)合來實施。軟件模塊可以置于隨機存儲器(RAM)、內(nèi)存、只讀存儲器(ROM)、電可編程ROM、電可擦除可編程ROM、寄存器、硬盤、可移動磁盤、CD-ROM、或【技術(shù)領(lǐng)域】內(nèi)所公知的任意其它形式的存儲介質(zhì)中。
      [0178]以上所述的【具體實施方式】,對本發(fā)明的目的、技術(shù)方案和有益效果進行了進一步詳細說明,所應(yīng)理解的是,以上所述僅為本發(fā)明的【具體實施方式】而已,并不用于限定本發(fā)明的保護范圍,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。
      【權(quán)利要求】
      1.一種計費節(jié)點負載控制方法,其特征在于,所述方法包括: 確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊; 在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài); 根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài); 刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      2.如權(quán)利要求1所述的方法,其特征在于,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失??; 所述在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,進一步包括。 向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài); 在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài);
      3.如權(quán)利要求1或2所述的方法,其特征在于,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??; 所述根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,進一步包括: 在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),; 在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      4.如權(quán)利要求1至3任一項所述的方法,其特征在于,所述確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,具體包括: 根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      5.如權(quán)利要求1至4任一項所述的方法,其特征在于,所述確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,之后,還包括: 將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      6.如權(quán)利要求1至5任一項所述的方法,其特征在于,所述刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,還包括: 將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。
      7.一種數(shù)據(jù)訪問控制方法,其特征在于,所述方法包括: 在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶; 獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信 息; 當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息; 當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊; 當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      8.如權(quán)利要求7所述的方法,其特征在于,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??; 所述獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息;之后,還包括: 若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點; 若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      9.如權(quán)利要求7所述的方法,其特征在于,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失敗。
      10.如權(quán)利要求9所述的方法,其特征在于,所述當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問,具體包括: 將所述第一計費請求消息置入消息隊列,在設(shè)定時間后重新處理。
      11.一種計費節(jié)點,其特征在于,所述計費節(jié)點包括: 確定單元,用于確定第一節(jié)點存儲的計費數(shù)據(jù)中需要搬遷的分片數(shù)據(jù)包,所述第一節(jié)點存儲的計費數(shù)據(jù)被劃分為至少兩個分片數(shù)據(jù)包,每個分片數(shù)據(jù)包中包括至少一個用戶的用戶計費數(shù)據(jù)塊; 第一更新單元,用于在向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)塊的過程中,持續(xù)更新每個所述用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息,所述第二遷移狀態(tài)信息用于表征所述用戶計費數(shù)據(jù)塊的遷移狀態(tài);第二更新單元,用于根據(jù)每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊的第二遷移狀態(tài),更新所述分片數(shù)據(jù)包第一遷移狀態(tài)信息,所述第一遷移狀態(tài)信息用于表征所述分片數(shù)據(jù)包的遷移狀態(tài); 數(shù)據(jù)存儲單元,用于刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包。
      12.如權(quán)利要求11所述的節(jié)點,其特征在于,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶計費數(shù)據(jù)塊遷移成功或遷移失??; 所述第一更新單元,具體用于: 向第二節(jié)點逐個遷移每個用戶對應(yīng)的用戶計費數(shù)據(jù)包,并將正在遷移的用戶計費數(shù)據(jù)包的第四狀態(tài)更改為第五狀態(tài); 在所述用戶計費數(shù)據(jù)包遷移完成后,更改所述用戶計費數(shù)據(jù)包的第五狀態(tài)為第六狀態(tài)。
      13.如權(quán)利要求11或12所述的節(jié)點,其特征在于,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失??; 所述第二更新單元,具體用于: 在一個用戶計費數(shù)據(jù)塊開始遷移后,更改所述用戶計費數(shù)據(jù)包所處的分片數(shù)據(jù)包的第一狀態(tài)為第二狀態(tài),; 在每個分片數(shù)據(jù)包中的全部用戶計費數(shù)據(jù)塊遷移完成后,更改所述分片數(shù)據(jù)包的第二狀態(tài)為第三狀態(tài)。
      14.如權(quán)利要求11至13任一項所述的節(jié)點,其特征在于,所述確定單元,具體用于: 根據(jù)每個分片數(shù)據(jù)包的負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值大小,選擇負載總和與被遷出節(jié)點和被遷入節(jié)點的平均負載的差值較小的分片數(shù)據(jù)包作為被遷移分片數(shù)據(jù)包。
      15.如權(quán)利要求11至14任一項所述的節(jié)點,其特征在于,還包括:預(yù)處理單元,用于: 將所述分片數(shù)據(jù)包打包發(fā)送到第二節(jié)點,以便于所述第二節(jié)點對所述分片數(shù)據(jù)包中存儲的用戶數(shù)據(jù)進行沖突檢查。
      16.如權(quán)利要求11至15任一項所述的節(jié)點,其特征在于,還包括: 路由控制單元,用于在刪除所述第一節(jié)點上已經(jīng)遷移的分片數(shù)據(jù)包的同時,將所述已經(jīng)遷移的分片數(shù)據(jù)包的路由節(jié)點,由所述第一節(jié)點更新為所述第二節(jié)點。
      17.一種數(shù)據(jù)訪問控制節(jié)點,其特征在于,包括: 確定單元,用于在接收到第一計費請求消息后,確定所述第一計費請求消息對應(yīng)的第一用戶; 第一獲取單元,用于獲取所述第一用戶的第一用戶計費數(shù)據(jù)塊所在的第一分片數(shù)據(jù)包的第一遷移狀態(tài)信息; 第二獲取單元,用于當所述第一遷移狀態(tài)信息顯示所述第一分片數(shù)據(jù)包處于遷移狀態(tài)時,獲取所述第一用戶計費數(shù)據(jù)塊的第二遷移狀態(tài)信息;路由控制單元,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊已經(jīng)遷移完成或者未被遷移時,將所述計費請求消息路由到存儲所述第一用戶計費數(shù)據(jù)塊的節(jié)點,以訪問所述第一用戶計費數(shù)據(jù)塊; 訪問控制單元,用于當所述第二遷移狀態(tài)顯示所述第一用戶計費數(shù)據(jù)塊處于遷移狀態(tài)時,暫停所述第一計費請求消息對所述第一用戶計費數(shù)據(jù)塊的訪問。
      18.如權(quán)利要求17所述的節(jié)點,其特征在于,所述每個所述分片數(shù)據(jù)包的第一遷移狀態(tài)信息進一步包括第一狀態(tài)、第二狀態(tài)和第三狀態(tài),所述第一狀態(tài)用于表示所述分片數(shù)據(jù)包未被遷移,所述第二狀態(tài)表示所述分片數(shù)據(jù)包正處于被遷移狀態(tài),所述第三狀態(tài)表示所述分片數(shù)據(jù)包遷移成功或遷移失敗; 所述路由控制單元還用于: 若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包已經(jīng)遷移完成,則將所述第一計費請求信息路由至所述第一分片數(shù)據(jù)包遷移后的第二節(jié)點; 若所述第一分片數(shù)據(jù)包的第三狀態(tài)顯示,所述第一分片數(shù)據(jù)包未遷移,則將所述第一計費請求信息路由至存儲所述第一分片數(shù)據(jù)包的第一節(jié)點。
      19.如權(quán)利要求17所述的節(jié)點,其特征在于,所述每個用戶計費數(shù)據(jù)塊的所述第二遷移狀態(tài)信息包括第四狀態(tài)、第五狀態(tài)和第六狀態(tài),所述第四狀態(tài)用于表示所述用戶計費數(shù)據(jù)塊未被遷移,所述第五狀態(tài)表示所述用戶計費數(shù)據(jù)塊正處于被遷移狀態(tài),所述第六狀態(tài)表示所述用戶 計費數(shù)據(jù)塊遷移成功或遷移失敗。
      【文檔編號】H04L12/14GK103647656SQ201310665477
      【公開日】2014年3月19日 申請日期:2013年12月9日 優(yōu)先權(quán)日:2013年12月9日
      【發(fā)明者】惠軍銳 申請人:華為軟件技術(shù)有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評論。精彩留言會獲得點贊!
      1