本申請(qǐng)涉及計(jì)算機(jī)網(wǎng)絡(luò)通訊技術(shù)領(lǐng)域,具體涉及用于數(shù)據(jù)發(fā)送的方法、裝置和電子設(shè)備;相應(yīng)于上述方法,本申請(qǐng)同時(shí)涉及限制發(fā)送進(jìn)程占用帶寬的方法和裝置以及用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法和裝置。
背景技術(shù):
在計(jì)算機(jī)網(wǎng)絡(luò)通訊領(lǐng)域,在多個(gè)數(shù)據(jù)發(fā)送進(jìn)程共享一個(gè)網(wǎng)絡(luò)資源的情況下,個(gè)別數(shù)據(jù)發(fā)送進(jìn)程可能把網(wǎng)絡(luò)資源占滿導(dǎo)致其他數(shù)據(jù)發(fā)送進(jìn)程無法進(jìn)行發(fā)送。例如在某實(shí)例中,在一個(gè)物理計(jì)算機(jī)上部署有多個(gè)數(shù)據(jù)庫,存在多個(gè)數(shù)據(jù)庫的多個(gè)數(shù)據(jù)發(fā)送進(jìn)程同時(shí)向部署在其他物理計(jì)算機(jī)的其他數(shù)據(jù)庫發(fā)送日志數(shù)據(jù)的要求。而一個(gè)物理計(jì)算機(jī)的網(wǎng)卡帶寬是一定的,如果某一個(gè)數(shù)據(jù)庫的數(shù)據(jù)發(fā)送進(jìn)程的發(fā)送量暴增,可能會(huì)出現(xiàn)一個(gè)數(shù)據(jù)發(fā)送進(jìn)程占滿網(wǎng)卡帶寬、其他數(shù)據(jù)發(fā)送進(jìn)程無法發(fā)送的情況。
現(xiàn)有技術(shù)的解決方法是當(dāng)一個(gè)數(shù)據(jù)發(fā)送進(jìn)程占滿全部帶寬,則讓其他的數(shù)據(jù)發(fā)送進(jìn)程開始等待,直到這個(gè)數(shù)據(jù)發(fā)送進(jìn)程全部發(fā)送完成后再開始其他數(shù)據(jù)發(fā)送進(jìn)程的發(fā)送;或者是立刻禁止這個(gè)數(shù)據(jù)發(fā)送進(jìn)程的發(fā)送和帶寬占用,讓其他數(shù)據(jù)發(fā)送進(jìn)程進(jìn)行正常發(fā)送。
現(xiàn)有技術(shù)的缺陷在于當(dāng)某一個(gè)數(shù)據(jù)發(fā)送進(jìn)程占滿帶寬時(shí),其他數(shù)據(jù)發(fā)送進(jìn)程有可能因等待時(shí)間過長而餓死;或者因某一個(gè)數(shù)據(jù)發(fā)送進(jìn)程發(fā)送的數(shù)據(jù)量突然增大和某一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的被突然禁止,造成的網(wǎng)絡(luò)帶寬占用的驟升和驟降,從而導(dǎo)致系統(tǒng)不穩(wěn)定。例如在上述實(shí)例中,布置在不同物理機(jī)上的主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間要求日志數(shù)據(jù)備份必須具有一定時(shí)效性的情況下,如果在一個(gè)物理機(jī)上的一個(gè)日志發(fā)送進(jìn)程占滿帶寬,其他日志發(fā)送進(jìn)程則需要等待,如其他日志發(fā)送進(jìn)程等待時(shí)間過長、無法及時(shí)發(fā)送日志數(shù)據(jù),將無法滿足數(shù)據(jù)庫備份日志數(shù)據(jù)時(shí)效性的要求;或者立刻禁止這個(gè)占滿帶寬的日志發(fā)送進(jìn)程,則可能因這個(gè)日志發(fā)送進(jìn)程的突然中斷造成帶寬占用的驟降,從而導(dǎo)致系統(tǒng)不穩(wěn)定。
技術(shù)實(shí)現(xiàn)要素:
本申請(qǐng)?zhí)峁┯糜跀?shù)據(jù)發(fā)送的方法,解決了單個(gè)數(shù)據(jù)發(fā)送進(jìn)程占滿網(wǎng)絡(luò)帶寬 可能餓死其他數(shù)據(jù)發(fā)送進(jìn)程的問題,和一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的數(shù)據(jù)發(fā)送量突然增大和獨(dú)占網(wǎng)絡(luò)帶寬的數(shù)據(jù)發(fā)送進(jìn)程被突然禁止造成的網(wǎng)絡(luò)帶寬占用驟升和驟降,從而導(dǎo)致系統(tǒng)不穩(wěn)定的問題。本申請(qǐng)另外提供限制發(fā)送進(jìn)程占用帶寬的方法。本申請(qǐng)尤其適用于多個(gè)數(shù)據(jù)發(fā)送進(jìn)程共享一個(gè)網(wǎng)絡(luò)資源、個(gè)別數(shù)據(jù)發(fā)送進(jìn)程可能把網(wǎng)絡(luò)資源占滿的環(huán)境。
本申請(qǐng)?zhí)峁┮环N用于數(shù)據(jù)發(fā)送的方法,包括:
獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù);
按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
可選的,所述獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù),具體為:獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)大小相同的數(shù)據(jù)。
可選的,所述同一數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)的大小,是根據(jù)所述數(shù)據(jù)發(fā)送進(jìn)程的要求,網(wǎng)絡(luò)資源最大帶寬,數(shù)據(jù)發(fā)送的預(yù)定限制帶寬和同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量確定的。
可選的,每次發(fā)送單個(gè)數(shù)據(jù)都是使用最大網(wǎng)絡(luò)可用速度來發(fā)送的。
可選的,所述相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式為等差遞增的方式。
可選的,所述相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式為等差遞增的方式包括:
所述等差遞增的方式為以首項(xiàng)為零、數(shù)據(jù)發(fā)送序數(shù)和預(yù)定公差的積來確定的等差遞增的方式。
可選的,所述預(yù)定公差是根據(jù)網(wǎng)絡(luò)資源最大帶寬、數(shù)據(jù)發(fā)送的預(yù)定限制帶寬、以及數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來計(jì)算并調(diào)整確定的。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式包括:
所述時(shí)間間隔的第一項(xiàng)為零,第二項(xiàng)起是一個(gè)等比遞增的數(shù)列。
可選的,所述分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,是按照獲取所述數(shù)據(jù)的時(shí)間先后來順序來分別發(fā)送所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完 畢的。
可選的,所述按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,包括:
獲取當(dāng)前時(shí)間作為初始時(shí)間;
發(fā)送一個(gè)所述數(shù)據(jù);
待所述數(shù)據(jù)發(fā)送完畢之后,等待相應(yīng)的時(shí)間間隔;
再次獲取當(dāng)前時(shí)間作為比較時(shí)間;確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;
若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;
若否,則重置所述時(shí)間間隔,返回執(zhí)行所述獲取當(dāng)前時(shí)間作為初始時(shí)間的步驟。
可選的,所述預(yù)定檢測(cè)時(shí)間段的時(shí)長,是根據(jù)數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來確定的。
可選的,所述確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;包括:
確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則判斷實(shí)際已發(fā)送所述數(shù)據(jù)的大小是否超過一個(gè)預(yù)定閾值;
若是,則重置所述時(shí)間間隔,返回執(zhí)行所述獲取當(dāng)前時(shí)間作為初始時(shí)間的步驟;
若否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
可選的,所述確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;包括:
確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則判斷實(shí)際已發(fā)送所述數(shù)據(jù)的數(shù)量是否小于一個(gè)預(yù)定發(fā)送量;
若是,則重置所述時(shí)間間隔,返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;
若否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
本申請(qǐng)還提供一種用于數(shù)據(jù)發(fā)送的裝置,包括:
數(shù)據(jù)獲取單元,用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù);
數(shù)據(jù)發(fā)送單元,用于按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí) 間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
可選的,所述用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù),具體為:用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)大小相同的數(shù)據(jù)。
可選的,所述同一數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)的大小,是根據(jù)所述數(shù)據(jù)發(fā)送進(jìn)程的要求,網(wǎng)絡(luò)資源最大帶寬,數(shù)據(jù)發(fā)送的預(yù)定限制帶寬和同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量確定的。
可選的,所述數(shù)據(jù)發(fā)送單元,用于發(fā)送單個(gè)數(shù)據(jù)時(shí)是使用最大網(wǎng)絡(luò)可用速度來發(fā)送的。
可選的,所述數(shù)據(jù)發(fā)送單元,用于發(fā)送單個(gè)數(shù)據(jù)時(shí),相鄰兩次發(fā)送的等待時(shí)間間隔以等差遞增的方式依次增大。
可選的,所述相鄰兩次發(fā)送的等待時(shí)間間隔以等差遞增的方式依次增大,包括:
所述等差遞增的方式為以首項(xiàng)為零、數(shù)據(jù)發(fā)送序數(shù)和預(yù)定公差的積來確定的等差遞增的方式。
可選的,所述預(yù)定公差是根據(jù)網(wǎng)絡(luò)資源最大帶寬、數(shù)據(jù)發(fā)送的預(yù)定限制帶寬、以及數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來計(jì)算并調(diào)整確定的。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式包括:
所述等比遞增的方式為以首項(xiàng)為零,第二項(xiàng)起是一個(gè)等比遞增的方式。
可選的,所述數(shù)據(jù)發(fā)送單元,用于分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,是按照獲取所述數(shù)據(jù)的時(shí)間先后來順序來分別發(fā)送所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢的。
可選的,所述數(shù)據(jù)發(fā)送單元,用于按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,包括:
初始時(shí)間獲取子單元,用于獲取當(dāng)前時(shí)間作為初始時(shí)間;
數(shù)據(jù)發(fā)送子單元,用于發(fā)送一個(gè)所述數(shù)據(jù);
比較時(shí)間獲取子單元,用于待所述數(shù)據(jù)發(fā)送完畢之后,等待一段時(shí)間間隔, 再次獲取當(dāng)前時(shí)間作為比較時(shí)間;
判斷檢測(cè)時(shí)間子單元,用于接收初始時(shí)間獲取子單元和比較時(shí)間獲取子單元傳遞的時(shí)間信息并確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;若否,則重置所述時(shí)間間隔,觸發(fā)初始時(shí)間子單元。
可選的,所述判斷檢測(cè)時(shí)間子單元中的預(yù)定的檢測(cè)時(shí)間段的時(shí)長,是根據(jù)數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來確定的。
可選的,所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;包括:
所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則判斷數(shù)據(jù)發(fā)送子單元實(shí)際已發(fā)送所述數(shù)據(jù)的大小是否超過一個(gè)預(yù)定閾值;
若是,則重置所述等待時(shí)間間隔,并觸發(fā)初始時(shí)間子單元;
若否,則觸發(fā)數(shù)據(jù)發(fā)送子單元。
可選的,所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;包括:
所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則判斷所述數(shù)據(jù)發(fā)送子單元已發(fā)送的數(shù)據(jù)的數(shù)量是否小于一個(gè)預(yù)定發(fā)送量;若是,則重置所述時(shí)間間隔,并觸發(fā)數(shù)據(jù)發(fā)送子單元;若否,則觸發(fā)數(shù)據(jù)發(fā)送子單元。
本申請(qǐng)還提供一種用于數(shù)據(jù)發(fā)送的電子設(shè)備,包括:
顯示器;
處理器;
存儲(chǔ)器,用于存儲(chǔ)用于數(shù)據(jù)發(fā)送的程序,所述程序在被所述處理器讀取執(zhí)行時(shí),執(zhí)行如下操作:獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù);按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
本申請(qǐng)還提供一種限制發(fā)送進(jìn)程占用帶寬的方法,用于包含至少兩個(gè)發(fā)送進(jìn)程共享同一個(gè)網(wǎng)絡(luò)資源的環(huán)境,包括:
獲取各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的各個(gè)原始數(shù)據(jù);
對(duì)每一個(gè)發(fā)送進(jìn)程,判斷所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)的大小是否大于預(yù)定閾值;
若是,則根據(jù)預(yù)定的算法將所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)分為預(yù)定大小的兩個(gè)以上的發(fā)送數(shù)據(jù),并使用所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程對(duì)應(yīng)的所述發(fā)送數(shù)據(jù);
若否,則發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程的所述原始數(shù)據(jù)。
本申請(qǐng)還提供一種限制發(fā)送進(jìn)程占用帶寬的裝置,用于包含至少兩個(gè)發(fā)送進(jìn)程共享同一個(gè)網(wǎng)絡(luò)資源的環(huán)境,包括:
原始數(shù)據(jù)獲取單元,用于獲取各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的各個(gè)原始數(shù)據(jù);
預(yù)定閾值比較單元,用于對(duì)每一個(gè)發(fā)送進(jìn)程,判斷所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)的大小是否大于預(yù)定閾值;
數(shù)據(jù)處理發(fā)送單元,用于接收預(yù)定閾值比較單元的判斷結(jié)果;若是,則根據(jù)預(yù)定的算法將所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)分為預(yù)定大小的兩個(gè)以上的發(fā)送數(shù)據(jù),并使用所述一種用于數(shù)據(jù)發(fā)送的裝置中的數(shù)據(jù)發(fā)送子單元來發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程對(duì)應(yīng)的所述發(fā)送數(shù)據(jù);若否,則發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程的所述原始數(shù)據(jù)。
本申請(qǐng)還提供一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法,包括:
獲取各個(gè)日志發(fā)送進(jìn)程的各個(gè)日志數(shù)據(jù);其中所述日志數(shù)據(jù)的大小相同;
對(duì)每一個(gè)日志發(fā)送進(jìn)程,判斷所述日志發(fā)送進(jìn)程的日志數(shù)據(jù)的數(shù)量是否為至少兩個(gè);
若是,則使用所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送所述日志發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù);
若否,則發(fā)送所述發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。
本申請(qǐng)還提供一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的裝置,包括:
數(shù)據(jù)獲取單元,用于獲取各個(gè)日志發(fā)送進(jìn)程的各個(gè)日志數(shù)據(jù);其中所述日志數(shù)據(jù)的大小是相同的;
數(shù)據(jù)數(shù)量判斷單元,用于對(duì)每一個(gè)日志發(fā)送進(jìn)程,判斷所述日志發(fā)送進(jìn)程的日志數(shù)據(jù)的數(shù)量是否為至少兩個(gè);
數(shù)據(jù)發(fā)送單元,用于接收所述數(shù)據(jù)數(shù)量判斷單元的判斷結(jié)果;若是,則使用所述一種用于數(shù)據(jù)發(fā)送的裝置中的數(shù)據(jù)發(fā)送子單元來發(fā)送所述日志發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù);若否,則發(fā)送所述發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。
與現(xiàn)有技術(shù)相比,本申請(qǐng)具有以下優(yōu)點(diǎn):
本申請(qǐng)通過控制每一個(gè)數(shù)據(jù)發(fā)送進(jìn)程發(fā)送的單個(gè)數(shù)據(jù)的大小和等待時(shí)間間隔,間接控制了每一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的網(wǎng)絡(luò)帶寬的使用量,使得每個(gè)發(fā)送數(shù)據(jù)進(jìn)程都不會(huì)占滿帶寬,解決了因獨(dú)占帶寬可能餓死其他數(shù)據(jù)發(fā)送進(jìn)程的問題;
本申請(qǐng)同時(shí)通過不斷增大數(shù)據(jù)發(fā)送進(jìn)程的等待時(shí)間間隔,讓每個(gè)數(shù)據(jù)發(fā)送進(jìn)程在一定時(shí)間內(nèi)的平均帶寬平穩(wěn)控制在一定范圍內(nèi),間接平穩(wěn)地限制了數(shù)據(jù)發(fā)送進(jìn)程占用的網(wǎng)絡(luò)帶寬,解決了網(wǎng)絡(luò)帶寬驟升驟降和系統(tǒng)不穩(wěn)定的問題;
本申請(qǐng)的特點(diǎn)是,對(duì)每一個(gè)進(jìn)程而言,每發(fā)送一次數(shù)據(jù)需要等待一段不斷增大的時(shí)間后才能再次進(jìn)行發(fā)送;從而發(fā)送數(shù)據(jù)量大的進(jìn)程等待的時(shí)間比較長。這個(gè)機(jī)制對(duì)共享同一個(gè)網(wǎng)絡(luò)帶寬的全體數(shù)據(jù)發(fā)送進(jìn)程而言,發(fā)送數(shù)據(jù)量小的進(jìn)程和新開始發(fā)送數(shù)據(jù)的進(jìn)程由于等待時(shí)間相對(duì)比較短,對(duì)其實(shí)現(xiàn)了較為合理的優(yōu)先發(fā)送。
本申請(qǐng)的模型簡(jiǎn)潔,可以方便的通過手動(dòng)或者自動(dòng)調(diào)整數(shù)據(jù)發(fā)送進(jìn)程的相關(guān)控制變量例如單次發(fā)送數(shù)據(jù)大小和發(fā)送等待時(shí)間間隔,來校正數(shù)據(jù)發(fā)送和網(wǎng)絡(luò)帶寬占用的平穩(wěn)性,而且調(diào)解過程中的波動(dòng)也比較小,容易獲得平衡的、優(yōu)選的網(wǎng)絡(luò)帶寬占用的設(shè)定值。
附圖說明
圖1是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的示意圖;
圖2是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的流程圖;
圖3是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的第一優(yōu)選方案流程圖;
圖4是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的第二優(yōu)選方案流程 圖;
圖5是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的第三優(yōu)選方案流程圖;
圖6是本申請(qǐng)第二實(shí)施例提供的用于數(shù)據(jù)發(fā)送的裝置的示意圖;
圖7是本申請(qǐng)第三實(shí)施例提供的用于數(shù)據(jù)發(fā)送的電子設(shè)備的示意圖;
圖8是本申請(qǐng)第四實(shí)施例提供的限制發(fā)送進(jìn)程占用帶寬的方法的流程圖;
圖9是本申請(qǐng)第五實(shí)施例提供的限制發(fā)送進(jìn)程占用帶寬的裝置的示意圖;
圖10是本申請(qǐng)第六實(shí)施例提供的用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法的流程圖;
圖11是本申請(qǐng)第七實(shí)施例提供的用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的裝置的示意圖。
具體實(shí)施方式
在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本申請(qǐng)。但是本申請(qǐng)能夠以很多不同于在此描述的其它方式來實(shí)施,本領(lǐng)域技術(shù)人員可以在不違背本申請(qǐng)內(nèi)涵的情況下做類似推廣,因此本申請(qǐng)不受下面公開的具體實(shí)施的限制。
在本申請(qǐng)中,分別提供了一種用于數(shù)據(jù)發(fā)送的方法、裝置和電子設(shè)備,一種限制發(fā)送進(jìn)程占用帶寬的方法和裝置,以及一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法和裝置。在下面的實(shí)施例中逐一進(jìn)行詳細(xì)說明。為了便于理解本申請(qǐng)的技術(shù)方案,首先對(duì)提出本申請(qǐng)的背景及本申請(qǐng)的技術(shù)方案作簡(jiǎn)要說明。
例如,某部署在多個(gè)物理計(jì)算機(jī)之上的多個(gè)主數(shù)據(jù)庫和備份數(shù)據(jù)庫,相互之間的日志備份要求其時(shí)效差別不能超過一定上限。每一個(gè)物理計(jì)算機(jī)的網(wǎng)卡帶寬是一定的,如果一個(gè)日志數(shù)據(jù)發(fā)送進(jìn)程占滿網(wǎng)卡帶寬,可能會(huì)造成其他主數(shù)據(jù)庫的日志數(shù)據(jù)發(fā)送進(jìn)程長時(shí)間不能發(fā)送日志,造成對(duì)應(yīng)的備份數(shù)據(jù)庫無法接收到日志數(shù)據(jù)而與主數(shù)據(jù)庫斷開;如果一個(gè)日志數(shù)據(jù)發(fā)送進(jìn)程的發(fā)送量暴增或者一個(gè)獨(dú)占網(wǎng)卡帶寬的數(shù)據(jù)發(fā)送進(jìn)程被突然禁止,會(huì)造成網(wǎng)卡帶寬占用的驟升或驟降,從而導(dǎo)致系統(tǒng)不穩(wěn)定和用戶體驗(yàn)變差。
本申請(qǐng)用于數(shù)據(jù)發(fā)送的方法、裝置和電子設(shè)備,限制發(fā)送進(jìn)程占用帶寬的方法和裝置,以及用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法和裝置 可用于解決上述問題。本申請(qǐng)的技術(shù)方案對(duì)每個(gè)數(shù)據(jù)發(fā)送進(jìn)程進(jìn)行限制,使每個(gè)數(shù)據(jù)發(fā)送進(jìn)程每次只發(fā)送一個(gè)固定大小的數(shù)據(jù);每一次數(shù)據(jù)發(fā)送完畢,都在等待一段依次增大的時(shí)間間隔之后,再進(jìn)行下一次數(shù)據(jù)發(fā)送。這樣可以保證每個(gè)數(shù)據(jù)發(fā)送進(jìn)程都不會(huì)突然增加數(shù)據(jù)發(fā)送量,控制了每個(gè)數(shù)據(jù)發(fā)送進(jìn)程的最大帶寬使用量,使其不能占滿最大共享帶寬;也實(shí)現(xiàn)了對(duì)發(fā)送數(shù)據(jù)量小的進(jìn)程和新開始發(fā)送數(shù)據(jù)的進(jìn)程的優(yōu)先發(fā)送;還可以通過調(diào)整每次發(fā)送的數(shù)據(jù)大小和發(fā)送等待時(shí)間間隔依次增加的幅度來調(diào)整數(shù)據(jù)發(fā)送進(jìn)程占用網(wǎng)絡(luò)帶寬的狀態(tài)。
下面通過以下各實(shí)施例來具體說明本申請(qǐng)的技術(shù)方案。
第一實(shí)施例。
請(qǐng)參考圖1和圖2,其為圖1是本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的示意圖和流程圖。本實(shí)施例的技術(shù)方案是以單個(gè)數(shù)據(jù)發(fā)送進(jìn)程為單位來進(jìn)行發(fā)送控制的。具體的,所述用于數(shù)據(jù)發(fā)送的方法包括如下步驟:
步驟s101:獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)。
獲取同一發(fā)送進(jìn)程的兩個(gè)以上的待發(fā)送數(shù)據(jù),作為下一步驟進(jìn)行數(shù)據(jù)發(fā)送的基礎(chǔ)。獲取數(shù)據(jù)的步驟可由系統(tǒng)自動(dòng)完成。
本實(shí)施例的技術(shù)方案是針對(duì)每個(gè)數(shù)據(jù)發(fā)送進(jìn)程進(jìn)行大批量數(shù)據(jù)發(fā)送的情況,如果只獲取了對(duì)于同一發(fā)送進(jìn)程待發(fā)送的單個(gè)數(shù)據(jù),則無需使用本申請(qǐng)的方法,可以直接進(jìn)行單個(gè)數(shù)據(jù)的發(fā)送。例如,在一個(gè)日志發(fā)送的進(jìn)程中,若某一個(gè)日志發(fā)送進(jìn)程如果只需要發(fā)送一個(gè)日志數(shù)據(jù),則可以直接發(fā)送所述日志數(shù)據(jù)。本實(shí)施例的下述步驟中,具體以主備數(shù)據(jù)庫情形下日志數(shù)據(jù)傳輸發(fā)送為例進(jìn)行說明。但本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本實(shí)施例的用于數(shù)據(jù)發(fā)送的方法并不局限于該場(chǎng)景,其可以應(yīng)用于任何其它的數(shù)據(jù)發(fā)送的場(chǎng)景。
本實(shí)施例中,所述獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù),具體為:獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)大小相同的數(shù)據(jù)。
獲取的待發(fā)送數(shù)據(jù)的大小是相同的。在每次數(shù)據(jù)發(fā)送的發(fā)送速度相同的情況下,發(fā)送數(shù)據(jù)的大小相同可保證每一次數(shù)據(jù)發(fā)送的均勻性,即每一次數(shù)據(jù)發(fā)送所使用的發(fā)送時(shí)間和所占用的網(wǎng)絡(luò)帶寬都相同。
所述同一數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)的大小,可以根據(jù)所述數(shù)據(jù)發(fā)送進(jìn)程的要求,網(wǎng)絡(luò)資源最大帶寬,數(shù)據(jù)發(fā)送的預(yù)定限制帶寬和同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量等參數(shù)而確定。具體而言,數(shù)據(jù)發(fā)送進(jìn)程屬于特定的應(yīng)用 程序或者系統(tǒng),一般對(duì)具體的發(fā)送數(shù)據(jù)的大小會(huì)有具體要求;網(wǎng)絡(luò)資源最大帶寬為各個(gè)數(shù)據(jù)發(fā)送進(jìn)程所共享的最大可用網(wǎng)絡(luò)帶寬,通常情況這個(gè)值是一個(gè)固定值;數(shù)據(jù)發(fā)送的預(yù)定限制帶寬可通過用戶手動(dòng)或系統(tǒng)自動(dòng)設(shè)定,用于限制對(duì)全體數(shù)據(jù)發(fā)送進(jìn)程發(fā)送數(shù)據(jù)所能占用的最大網(wǎng)絡(luò)帶寬;同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量是指在預(yù)定限制帶寬范圍內(nèi)的最大同時(shí)發(fā)送的數(shù)據(jù)數(shù)量。
在本實(shí)施例中,數(shù)據(jù)發(fā)送進(jìn)程為主數(shù)據(jù)庫和備份數(shù)據(jù)庫的日志備份數(shù)據(jù)發(fā)送進(jìn)程,一般要求所述日志數(shù)據(jù)的大小為64k至512k之間;網(wǎng)絡(luò)資源最大帶寬為一個(gè)物理計(jì)算機(jī)上網(wǎng)卡的全部帶寬,即max_bandwidth,單位mb/s,其值為128mb/s;數(shù)據(jù)發(fā)送的預(yù)定限制帶寬為網(wǎng)卡限制帶寬,即limit_bandwidth,單位mb/s,其值為64mb/s。如果預(yù)定在1s內(nèi)同時(shí)發(fā)送數(shù)據(jù)的限制數(shù)量設(shè)定為512個(gè),則日志數(shù)據(jù)的大小應(yīng)為64mb/512=128kb。
所述同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)的預(yù)定大小,即每個(gè)發(fā)送進(jìn)程每一次發(fā)送的實(shí)際數(shù)據(jù)的大小,如上所述,可以通過用戶手動(dòng)或者系統(tǒng)自動(dòng)設(shè)定。設(shè)定該數(shù)據(jù)大小需根據(jù)網(wǎng)絡(luò)資源最大帶寬和數(shù)據(jù)發(fā)送的預(yù)定限制帶寬來計(jì)算而確定。在網(wǎng)絡(luò)資源最大帶寬為一定并使用最大可用發(fā)送速度進(jìn)行發(fā)送的情況下,待發(fā)送數(shù)據(jù)的預(yù)定大小就決定了一個(gè)發(fā)送進(jìn)程每一次發(fā)送一個(gè)實(shí)際數(shù)據(jù)所使用的時(shí)間;數(shù)據(jù)發(fā)送的預(yù)定限制帶寬決定了待發(fā)送數(shù)據(jù)不能超過的最大占用網(wǎng)絡(luò)帶寬,在默認(rèn)系統(tǒng)在同一時(shí)刻同時(shí)進(jìn)行數(shù)據(jù)發(fā)送的發(fā)送進(jìn)程的數(shù)量為一定時(shí),也決定了每一個(gè)發(fā)送進(jìn)程每次一次發(fā)送的一個(gè)實(shí)際數(shù)據(jù)的大小,即待發(fā)送數(shù)據(jù)的預(yù)定大小。待發(fā)送的數(shù)據(jù)的預(yù)定大小的設(shè)定可以間接地影響網(wǎng)絡(luò)帶寬占用波動(dòng)的平穩(wěn)性,它的值如果過大,可能會(huì)引起網(wǎng)絡(luò)帶寬占用的波動(dòng)過大;如果它的值過小,則可能造成單次數(shù)據(jù)發(fā)送效率過低。所以待發(fā)送的數(shù)據(jù)的預(yù)定大小的設(shè)定需要綜合平衡進(jìn)行考慮。
在本實(shí)施例中,待發(fā)送的數(shù)據(jù)的預(yù)定大小為日志數(shù)據(jù)的大小,即onetime_size,單位為kb,其值為128kb。在數(shù)據(jù)發(fā)送的預(yù)定限制帶寬limit_bandwidth為64mb/s的情況下,在同一時(shí)刻最大可發(fā)送的日志數(shù)據(jù)的個(gè)數(shù)為(limit_bandwidth*1024)/onetime_size,即64*1024/128=512個(gè)。
每次發(fā)送單個(gè)數(shù)據(jù)都是使用最大網(wǎng)絡(luò)可用速度來發(fā)送的。每個(gè)數(shù)據(jù)發(fā)送進(jìn)程每次發(fā)送一個(gè)數(shù)據(jù)都使用最大可使用的網(wǎng)絡(luò)帶寬來發(fā)送,這樣不進(jìn)行任何限速來發(fā)送數(shù)據(jù)的好處是發(fā)送的效率高。在發(fā)送的數(shù)據(jù)的預(yù)定大小為一定和網(wǎng)絡(luò)資源最大帶寬為一定的情況下,可以計(jì)算出使用最大網(wǎng)絡(luò)可用速度發(fā)送單個(gè)待 發(fā)送數(shù)據(jù)所使用的時(shí)間。
在本實(shí)施例中,使用最大網(wǎng)絡(luò)可用速度發(fā)送單個(gè)日志時(shí)間的發(fā)送耗時(shí)為onetime_size/(max_bandwidth*1024),即128/(128*1024)=1/1024s。
步驟s103:按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
每一次只發(fā)送一個(gè)數(shù)據(jù),發(fā)送之后等待一段時(shí)間間隔,再進(jìn)行發(fā)送下一個(gè)數(shù)據(jù),直至全部所述數(shù)據(jù)發(fā)送完畢;其中,相鄰兩次發(fā)送的等待間隔時(shí)間是依次增大的。
可以選擇發(fā)送數(shù)據(jù)開始之時(shí)計(jì)時(shí)計(jì)算等待時(shí)間間隔,也可以選擇發(fā)送數(shù)據(jù)完畢后開始計(jì)時(shí)計(jì)算等待時(shí)間間隔。在發(fā)送的數(shù)據(jù)預(yù)定大小為相同、發(fā)送數(shù)據(jù)的速度為最大網(wǎng)絡(luò)可用速度時(shí),因?yàn)榘l(fā)送一個(gè)數(shù)據(jù)的耗時(shí)是相同的,計(jì)算等待時(shí)間間隔的起始時(shí)間選擇前一種或者后一種方法在實(shí)質(zhì)上是相同的。本實(shí)施例選擇后一種方法為例進(jìn)行說明。
本實(shí)施例中,所述相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式具體為等差遞增的方式。數(shù)據(jù)發(fā)送的等待時(shí)間間隔是以等差遞增的方式一次次不斷增大的。具體的方法是:第一次數(shù)據(jù)發(fā)送完畢后,等待a秒,進(jìn)行第二次數(shù)據(jù)發(fā)送;第二次數(shù)據(jù)發(fā)送完畢后,等待a+d秒,進(jìn)行第三次數(shù)據(jù)發(fā)送;第三次數(shù)據(jù)發(fā)送完畢后,等待a+2d秒,進(jìn)行第四次數(shù)據(jù)發(fā)送……第n次數(shù)據(jù)發(fā)送完畢后,等待a+(n-1)d秒,進(jìn)行第n+1次發(fā)送。此處,等差首項(xiàng)a和公差d為手動(dòng)或自動(dòng)設(shè)定的時(shí)長,n為數(shù)據(jù)發(fā)送的序數(shù)。
所述相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式為等差遞增的方式包括:所述等差遞增的方式為以首項(xiàng)為零、數(shù)據(jù)發(fā)送序數(shù)和預(yù)定公差的積來確定的等差遞增的方式。
本實(shí)施例中,a=0,預(yù)定公差為d,日志數(shù)據(jù)發(fā)送序數(shù)為n,具體的方法是:第一次日志數(shù)據(jù)發(fā)送完畢后,不等待,進(jìn)行第二次日志數(shù)據(jù)發(fā)送;第二次日志數(shù)據(jù)發(fā)送完畢后,等待d秒,進(jìn)行第三次日志數(shù)據(jù)發(fā)送;第三次日志數(shù)據(jù)發(fā)送完畢后,等待2d秒,進(jìn)行第四次日志數(shù)據(jù)發(fā)送……第n次日志數(shù)據(jù)發(fā)送完畢后,等待(n-1)d秒,進(jìn)行第n+1次發(fā)送。
所述預(yù)定公差是根據(jù)網(wǎng)絡(luò)資源最大帶寬、數(shù)據(jù)發(fā)送的預(yù)定限制帶寬、以及數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來計(jì)算并調(diào)整確定的。在等差首項(xiàng)a為 一定的情況下,預(yù)定公差直接決定了數(shù)據(jù)發(fā)送的密集程度和數(shù)據(jù)發(fā)送的網(wǎng)絡(luò)帶寬占用程度。必須結(jié)合網(wǎng)絡(luò)資源最大帶寬、數(shù)據(jù)發(fā)送的預(yù)定限制帶寬、以及數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來綜合設(shè)定預(yù)定公差的值。當(dāng)然,也通過可以調(diào)整預(yù)定公差的值,來調(diào)節(jié)數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的平穩(wěn)程度。在本實(shí)施例的后續(xù)步驟描述了預(yù)定公差d的具體計(jì)算實(shí)例。
采用等差遞增的等待時(shí)間間隔進(jìn)行限制發(fā)送進(jìn)程占用網(wǎng)絡(luò)帶寬的好處是能使發(fā)送進(jìn)程占用網(wǎng)絡(luò)帶寬的速度較平穩(wěn)的降低;而且等差遞增的模型簡(jiǎn)潔,可以方便的通過手動(dòng)或者自動(dòng)調(diào)整等差公差等變量來校正發(fā)送進(jìn)程占用網(wǎng)絡(luò)帶寬的平穩(wěn)性。其他方法可能可以產(chǎn)生類似效果,但模型復(fù)雜、調(diào)教復(fù)雜,調(diào)教過程中波動(dòng)大,而等差遞增的方法能夠簡(jiǎn)單調(diào)整,產(chǎn)生平衡的、優(yōu)選的設(shè)定值。
所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式。除了上述的使用等差遞增的方法來確定相鄰兩次發(fā)送的等待時(shí)間間隔,也可以使用等比遞增的方法。具體的方法是:第一次數(shù)據(jù)發(fā)送完畢后,等待a秒,進(jìn)行第二次數(shù)據(jù)發(fā)送;第二次數(shù)據(jù)發(fā)送完畢后,等待a*q秒,進(jìn)行第三次數(shù)據(jù)發(fā)送;第三次數(shù)據(jù)發(fā)送完畢后,等待a*q2秒,進(jìn)行第四次數(shù)據(jù)發(fā)送……第n次數(shù)據(jù)發(fā)送完畢后,等待a*qn-1秒,進(jìn)行第n+1次發(fā)送。此處,等差首項(xiàng)a和公比q為手動(dòng)或自動(dòng)設(shè)定的時(shí)長,n為數(shù)據(jù)發(fā)送的序數(shù)。當(dāng)然,也可以采用其他遞增算法,在次不再贅述。
所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式還可以包括:所述時(shí)間間隔的第一項(xiàng)為零,第二項(xiàng)起是一個(gè)等比遞增的數(shù)列。例如,可以采用第一次發(fā)送等待時(shí)間間隔為零,第二次發(fā)送等待時(shí)間間隔開始以等比遞增數(shù)列來計(jì)算日志數(shù)據(jù)發(fā)送等待時(shí)間間隔。具體方法是:第一次日志數(shù)據(jù)發(fā)送完畢后,不等待,進(jìn)行第二次日志數(shù)據(jù)發(fā)送;第二次日志數(shù)據(jù)發(fā)送完畢后,等待a秒,進(jìn)行第三次日志數(shù)據(jù)發(fā)送;第三次日志數(shù)據(jù)發(fā)送完畢后,等待a*q秒,進(jìn)行第四次日志數(shù)據(jù)發(fā)送……第n次日志數(shù)據(jù)發(fā)送完畢后,等待a*qn-2秒,進(jìn)行第n+1次發(fā)送。
所述分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,具體是按照獲取所述數(shù)據(jù)的時(shí)間先后來順序來分別發(fā)送所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
一般而言,每次獲取的同一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送數(shù)據(jù)是有發(fā)送順序的;在實(shí)際發(fā)送時(shí),先發(fā)送獲取時(shí)間在先的待發(fā)送數(shù)據(jù),后發(fā)送獲取時(shí)間在后的待 發(fā)送數(shù)據(jù)。如果在一定時(shí)間段內(nèi)沒有全部發(fā)送完畢獲取時(shí)間在先的待發(fā)送數(shù)據(jù),在之后可發(fā)送時(shí)必須先發(fā)送完畢獲取時(shí)間在先的待發(fā)送數(shù)據(jù),然后再發(fā)送獲取時(shí)間在后的待發(fā)送數(shù)據(jù)。例如,如果在n時(shí)刻獲取某一個(gè)日志數(shù)據(jù)發(fā)送進(jìn)程的100個(gè)日志數(shù)據(jù),在n+1s時(shí)刻獲取同一日志數(shù)據(jù)發(fā)送進(jìn)程的60個(gè)日志數(shù)據(jù),在發(fā)送時(shí),首先發(fā)送了獲取時(shí)間在先的80個(gè)日志數(shù)據(jù),必須在全部發(fā)送完畢剩余的獲取時(shí)間在先的另外20個(gè)日志數(shù)據(jù)之后,再開始發(fā)送獲取發(fā)送時(shí)間在后的60個(gè)數(shù)據(jù)。
由于本步驟中采用了時(shí)間間隔依次增大的方式發(fā)送同一進(jìn)程的數(shù)據(jù),則越是在后發(fā)送的數(shù)據(jù),等待的時(shí)間會(huì)越長;對(duì)于發(fā)送數(shù)據(jù)量很大的進(jìn)程而言,勢(shì)必需要很長的時(shí)間才能發(fā)送完畢,這使得單個(gè)進(jìn)程發(fā)送持續(xù)的時(shí)間可能很長,因而有必要對(duì)此采取一定的方法進(jìn)行調(diào)整。
在其中的一個(gè)優(yōu)選方案中,具體如下:所述按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待時(shí)間間隔依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,具體包括:
獲取當(dāng)前時(shí)間作為初始時(shí)間;
發(fā)送一個(gè)所述數(shù)據(jù);
待所述數(shù)據(jù)發(fā)送完畢之后,等待相應(yīng)的時(shí)間間隔;
再次獲取當(dāng)前時(shí)間作為比較時(shí)間;確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;
若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;
若否,則重置所述時(shí)間間隔,返回執(zhí)行所述獲取當(dāng)前時(shí)間作為初始時(shí)間的步驟。
具體而言,請(qǐng)參考圖3,首先,獲取當(dāng)前時(shí)間作為初始時(shí)間;開始發(fā)送同一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的一個(gè)待發(fā)送數(shù)據(jù);待所述數(shù)據(jù)發(fā)送完畢之后,等待一段以等差遞增的方式增大的時(shí)間間隔;再次獲取當(dāng)前時(shí)間作為比較時(shí)間,計(jì)算確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;
若小于,則返回執(zhí)行所述開始發(fā)送同一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的一個(gè)待發(fā)送數(shù)據(jù)的;待所述數(shù)據(jù)發(fā)送完畢之后,等待一段比上一次發(fā)送以等差遞增的方式增大的時(shí)間間隔;再次獲取當(dāng)前時(shí)間作為比較時(shí)間,并再次判斷確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段,并在小于時(shí)返回執(zhí)行所 述開始發(fā)送同一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的一個(gè)待發(fā)送數(shù)據(jù);如此反復(fù),直至發(fā)送完畢全部所述數(shù)據(jù)。
若任何時(shí)候判斷的結(jié)果為不小于,則重置所述等待時(shí)間間隔,對(duì)以等差遞增方式增大的等待時(shí)間間隔的計(jì)數(shù)序數(shù)清零,即重新從頭開始計(jì)算所述等待時(shí)間間隔;返回執(zhí)行所述獲取當(dāng)前時(shí)間作為初始時(shí)間的步驟,如此反復(fù)。
需要注意的是,本方案獲取的待發(fā)送的數(shù)據(jù)是預(yù)定的且大小相同;獲取的同一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送數(shù)據(jù)也是有發(fā)送順序的。在超過預(yù)定檢測(cè)時(shí)間段時(shí),對(duì)同一個(gè)發(fā)送進(jìn)程而言,先發(fā)送獲取時(shí)間在先的未發(fā)送完畢的待發(fā)送數(shù)據(jù),后發(fā)送獲取時(shí)間在后的待發(fā)送數(shù)據(jù)。
在本實(shí)施例中,為了實(shí)現(xiàn)平穩(wěn)地限制一個(gè)日志發(fā)送進(jìn)程占用的帶寬,首先設(shè)定了一個(gè)檢測(cè)時(shí)間段,在該檢測(cè)時(shí)間段內(nèi),在每次發(fā)送預(yù)定大小的日志完畢之后,等待一段等待時(shí)間間隔,每次等待的時(shí)間間隔成遞增的等差數(shù)列,重復(fù)發(fā)送和等待的循環(huán),直至該檢測(cè)時(shí)間段期滿,則重置等待時(shí)間間隔,對(duì)以等差遞增方式增大的等待時(shí)間間隔的計(jì)數(shù)序數(shù)清零,重新從頭開始計(jì)算所述等待時(shí)間間隔,進(jìn)入新的一輪檢測(cè)。
例如,在本優(yōu)選方案中,設(shè)定檢測(cè)時(shí)間段為check_time,單位為秒(s),其值為1s。檢測(cè)開始,獲取當(dāng)前的時(shí)間作為初始時(shí)間,即start_time。每次發(fā)送一個(gè)對(duì)應(yīng)所述日志發(fā)送進(jìn)程的預(yù)定大小的日志數(shù)據(jù),然后等待一段時(shí)間間隔;每次等待的時(shí)間間隔為一個(gè)遞增的等差數(shù)列;在檢測(cè)時(shí)間段1秒內(nèi)在數(shù)據(jù)發(fā)送的預(yù)定限制帶寬的情況下最多可以發(fā)送limit_bandwidth*1024/onetime_size個(gè)預(yù)定大小的日志數(shù)據(jù),即為64*1024/128=512個(gè)128kb大小的日志數(shù)據(jù)。其中每一次預(yù)定大小的日志數(shù)據(jù)的發(fā)送耗時(shí)為onetime_size/(max_bandwidth*1024),即為128/(128*1024)=1/1024s;如果使用最大網(wǎng)絡(luò)可用速度發(fā)送(limit_bandwidth*1024)/onetime_size個(gè)預(yù)定大小的日志數(shù)據(jù),一共總共需要limit_bandwidth/max_bandwidth的時(shí)間,其單位為s,即為一共需要1/2s。在檢測(cè)時(shí)間段內(nèi)剩下的時(shí)間1-limit_bandwidth/max_bandwidth,全部用來做依次遞增的等差數(shù)列的發(fā)送等待時(shí)間間隔;第一次等待0s的時(shí)間間隔,根據(jù)等差數(shù)列的求和公式可以得到最后一次的休眠時(shí)間為2*onetime_size*(1-limit_bandwidth/max_bandwidth)/(limit_bandwidth*1024),即為1/512s??梢酝茖?dǎo)出第n個(gè)預(yù)定大小的日志數(shù)據(jù)發(fā)送后需要等待的時(shí)間間隔為:
n*2*onetime_size*(1-limit_bandwidth/max_bandwidth)/[limit_bandwidth*1024*((limit_bandwidth*1024)/onetime_size-1)],即為n/(512*511)s;
在反復(fù)發(fā)送日志數(shù)據(jù)的過程中,每次發(fā)送完畢一個(gè)日志數(shù)據(jù)之后,都再次獲取當(dāng)前時(shí)間作為比較時(shí)間;確定比較時(shí)間和初始時(shí)間的差值是否小于預(yù)定檢測(cè)時(shí)間段;若是,則重復(fù)進(jìn)行發(fā)送一個(gè)對(duì)應(yīng)所述日志發(fā)送進(jìn)程的預(yù)定大小的日志數(shù)據(jù),然后等待一段一次遞增的發(fā)送等待時(shí)間間隔,返回執(zhí)行每次發(fā)送完畢一個(gè)日志數(shù)據(jù)的步驟,如此反復(fù)直至發(fā)送完畢各個(gè)所述日志數(shù)據(jù);若否,則重置所述等待時(shí)間間隔,對(duì)以等差遞增方式增大的等待時(shí)間間隔的計(jì)數(shù)序數(shù)清零,即重新從頭開始計(jì)算所述等待時(shí)間間隔;返回執(zhí)行所述獲取當(dāng)前時(shí)間作為初始時(shí)間的步驟,如此反復(fù)。
上述預(yù)定檢測(cè)時(shí)間段的時(shí)長,是根據(jù)數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來確定的。預(yù)定檢測(cè)時(shí)間段是人工手動(dòng)或者系統(tǒng)自動(dòng)設(shè)定的預(yù)定時(shí)長的時(shí)間段,也可以用來調(diào)整所述數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度。預(yù)定檢測(cè)時(shí)間段設(shè)定的時(shí)長越長,則每下一次發(fā)送數(shù)據(jù)的等待時(shí)間間隔就越久,所述數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度就越高??梢愿鶕?jù)實(shí)際網(wǎng)絡(luò)帶寬占用情況對(duì)預(yù)定檢測(cè)時(shí)間段進(jìn)行具體調(diào)整。例如,本優(yōu)先實(shí)施例的預(yù)定檢測(cè)時(shí)間段設(shè)定為1s。
此外,解決單個(gè)進(jìn)程發(fā)送時(shí)間較長的第二優(yōu)選方案如下:所述確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;其包括:確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則比較實(shí)際已發(fā)送所述數(shù)據(jù)的大小是否超過一個(gè)預(yù)定閾值;若是,則重置所述等待時(shí)間間隔,以等差遞增方式增大的等待時(shí)間間隔的發(fā)送計(jì)數(shù)序數(shù)清零,返回執(zhí)行所述獲取當(dāng)前時(shí)間,并將所述當(dāng)前時(shí)間作為初始時(shí)間的步驟;若否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
具體而言,請(qǐng)參考圖4,其為本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的第二優(yōu)選方案流程圖。
確定發(fā)送完畢一個(gè)數(shù)據(jù)之后,所述比較時(shí)間與所述初始時(shí)間的差值是否小于預(yù)定檢測(cè)時(shí)間段,即當(dāng)前時(shí)間是否仍然在預(yù)定檢測(cè)時(shí)間段內(nèi);若為是,則比較實(shí)際已發(fā)送所述數(shù)據(jù)的大小是否超過一個(gè)預(yù)定閾值;若為是,則重置所述等 待時(shí)間間隔,對(duì)以等差遞增方式增大的等待時(shí)間間隔的計(jì)數(shù)序數(shù)清零,即重新從頭開始計(jì)算所述等待時(shí)間間隔;返回執(zhí)行所述獲取當(dāng)前時(shí)間,并將所述當(dāng)前時(shí)間作為初始時(shí)間的步驟;若為否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
例如在本優(yōu)選方案中,發(fā)送數(shù)據(jù)的當(dāng)前時(shí)間仍然在預(yù)定檢測(cè)時(shí)間段內(nèi)即1s內(nèi),但一旦發(fā)送的日志數(shù)據(jù)的大小超過了一定的大小,比如1024kb,則中斷當(dāng)次的檢測(cè)時(shí)間段和所有發(fā)送循環(huán),重置所有的相關(guān)參數(shù)例如清零等待時(shí)間間隔和發(fā)送計(jì)數(shù)序數(shù),進(jìn)行新的一輪發(fā)送循環(huán)和檢測(cè)時(shí)間段檢測(cè),直至全部對(duì)應(yīng)所述日志發(fā)送進(jìn)程的待發(fā)送的日志數(shù)據(jù)發(fā)送完畢。
此外,解決單個(gè)進(jìn)程發(fā)送時(shí)間較長的第三優(yōu)選方案如下:所述確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定檢測(cè)時(shí)間段;若是,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;其具體包括:確定已發(fā)送的數(shù)據(jù)的數(shù)量是否小于一個(gè)預(yù)定發(fā)送量;若是,則重置所述時(shí)間間隔,返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;若否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
具體而言,參見圖5,其為本申請(qǐng)第一實(shí)施例提供的用于數(shù)據(jù)發(fā)送的方法的第三優(yōu)選方案流程圖。
確定發(fā)送完畢一個(gè)數(shù)據(jù)之后,所述比較時(shí)間與所述初始時(shí)間的差值是否小于預(yù)定檢測(cè)時(shí)間段,即當(dāng)前時(shí)間是否仍然在預(yù)定檢測(cè)時(shí)間段內(nèi);若為是,則比較實(shí)際已發(fā)送所述數(shù)據(jù)的數(shù)量是否超過一個(gè)預(yù)定閾值;若為是,則重置所述等待時(shí)間間隔,對(duì)以等差遞增方式增大的等待時(shí)間間隔的計(jì)數(shù)序數(shù)清零,即重新從頭開始計(jì)算所述等待時(shí)間間隔;返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟;若為否,則返回執(zhí)行所述發(fā)送一個(gè)所述數(shù)據(jù)的步驟。
例如在本優(yōu)選方案中,在預(yù)定檢測(cè)時(shí)間段開始時(shí),先不等待連續(xù)發(fā)送日志數(shù)據(jù);如果發(fā)送了一定數(shù)量的日志數(shù)據(jù)之后,而且發(fā)送時(shí)間仍然在預(yù)定檢測(cè)時(shí)間段內(nèi),再進(jìn)入發(fā)送和等待以等差遞增的方式增大的等待時(shí)間間隔的反復(fù)發(fā)送、等待循環(huán),直至全部發(fā)送完畢所述日志數(shù)據(jù)。
第二實(shí)施例。
在上述實(shí)施例中,提供了一種用于數(shù)據(jù)發(fā)送的方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種用于數(shù)據(jù)發(fā)送的裝置和電子設(shè)備。由于裝置實(shí)施例和電子設(shè)備實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅為示意性的。
請(qǐng)參考圖6,本實(shí)施例的一種用于數(shù)據(jù)發(fā)送的裝置,包括:
數(shù)據(jù)獲取單元201,用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù);
數(shù)據(jù)發(fā)送單元203,用于按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
可選的,所述用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù),具體為:用于獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)大小相同的數(shù)據(jù)。
可選的,所述同一數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù)的大小,是根據(jù)所述數(shù)據(jù)發(fā)送進(jìn)程的要求,網(wǎng)絡(luò)資源最大帶寬,數(shù)據(jù)發(fā)送的預(yù)定限制帶寬和同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量確定的。
可選的,所述數(shù)據(jù)發(fā)送單元203用于發(fā)送單個(gè)數(shù)據(jù)時(shí)是使用最大網(wǎng)絡(luò)可用速度來發(fā)送的。
可選的,所述數(shù)據(jù)發(fā)送單元203用于發(fā)送單個(gè)數(shù)據(jù)時(shí),相鄰兩次發(fā)送的等待時(shí)間間隔以等差遞增的方式依次增大。
可選的,所述相鄰兩次發(fā)送的等待時(shí)間間隔以等差遞增的方式依次增大,包括:
所述等差遞增的方式為以首項(xiàng)為零、數(shù)據(jù)發(fā)送序數(shù)和預(yù)定公差的積來確定的等差遞增的方式。
可選的,所述預(yù)定公差是根據(jù)網(wǎng)絡(luò)資源最大帶寬、數(shù)據(jù)發(fā)送的預(yù)定限制帶寬、以及數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來計(jì)算并調(diào)整確定的。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式。
可選的,所述相鄰兩次發(fā)送的時(shí)間間隔依次增大的方式為等比遞增的方式包括:
所述等比遞增的方式為以首項(xiàng)為零,第二項(xiàng)起是一個(gè)等比遞增的方式。
可選的,所述數(shù)據(jù)發(fā)送單元203,用于分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,是按照獲取所述數(shù)據(jù)的時(shí)間先后來順序來分別發(fā)送所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢的。
可選的,所述數(shù)據(jù)發(fā)送單元203,用于按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢,包括:
初始時(shí)間獲取子單元,用于獲取當(dāng)前時(shí)間作為初始時(shí)間;
數(shù)據(jù)發(fā)送子單元,用于發(fā)送一個(gè)所述數(shù)據(jù);
比較時(shí)間獲取子單元,用于待所述數(shù)據(jù)發(fā)送完畢之后,等待一段時(shí)間間隔,再次獲取當(dāng)前時(shí)間作為比較時(shí)間;
判斷檢測(cè)時(shí)間子單元,用于接收初始時(shí)間獲取子單元和比較時(shí)間獲取子單元傳遞的時(shí)間信息并確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;若否,則重置所述時(shí)間間隔,觸發(fā)初始時(shí)間子單元。
可選的,所述判斷檢測(cè)時(shí)間子單元中的預(yù)定的檢測(cè)時(shí)間段的時(shí)長,是根據(jù)數(shù)據(jù)發(fā)送占用網(wǎng)絡(luò)帶寬的預(yù)定平穩(wěn)程度來確定的。
可選的,所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;包括:
確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則比較數(shù)據(jù)發(fā)送子單元實(shí)際已發(fā)送所述數(shù)據(jù)的大小是否超過一個(gè)預(yù)定閾值;
若是,則重置所述等待時(shí)間間隔,并觸發(fā)初始時(shí)間子單元;
若否,則觸發(fā)數(shù)據(jù)發(fā)送子單元。
可選的,所述判斷檢測(cè)時(shí)間子單元,用于確定所述比較時(shí)間與所述初始時(shí)間的差值是否小于一個(gè)預(yù)定的檢測(cè)時(shí)間段;若是,則觸發(fā)數(shù)據(jù)發(fā)送子單元;包括:
確定所述數(shù)據(jù)發(fā)送子單元已發(fā)送的數(shù)據(jù)的數(shù)量是否小于一個(gè)預(yù)定發(fā)送量;若是,則重置所述時(shí)間間隔,并觸發(fā)數(shù)據(jù)發(fā)送子單元;若否,則觸發(fā)數(shù)據(jù)發(fā)送子單元。
第三實(shí)施例。
請(qǐng)參考圖7,本實(shí)施例的一種用于數(shù)據(jù)發(fā)送的電子設(shè)備,包括:
顯示器;
處理器;
存儲(chǔ)器,用于存儲(chǔ)用于數(shù)據(jù)發(fā)送的程序,所述程序在被所述處理器讀取執(zhí)行 時(shí),執(zhí)行如下操作:獲取針對(duì)同一發(fā)送進(jìn)程的待發(fā)送的至少兩個(gè)數(shù)據(jù);按照每次發(fā)送單個(gè)數(shù)據(jù)且相鄰兩次發(fā)送的等待間隔時(shí)間依次增大的方式,分別發(fā)送各個(gè)所述數(shù)據(jù)直至全部所述數(shù)據(jù)發(fā)送完畢。
第四實(shí)施例。
請(qǐng)參看圖8,本申請(qǐng)?zhí)峁┑囊环N限制發(fā)送進(jìn)程占用帶寬的方法,用于包含至少兩個(gè)數(shù)據(jù)發(fā)送進(jìn)程共享同一個(gè)網(wǎng)絡(luò)資源的環(huán)境,對(duì)每一個(gè)數(shù)據(jù)發(fā)送進(jìn)程的待發(fā)送數(shù)據(jù)使用所述一種用于數(shù)據(jù)發(fā)送的方法進(jìn)行發(fā)送,以共享同一個(gè)網(wǎng)絡(luò)資源的所有數(shù)據(jù)發(fā)送進(jìn)程作為一個(gè)全局單位進(jìn)行網(wǎng)絡(luò)帶寬限制的考慮,其包括:
步驟s401:獲取各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的各個(gè)原始數(shù)據(jù)。
獲取所有共享同一個(gè)網(wǎng)絡(luò)資源的各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的各個(gè)待發(fā)送數(shù)據(jù)。
例如,在本實(shí)施例中,獲取發(fā)送日志數(shù)據(jù)進(jìn)程a、發(fā)送日志數(shù)據(jù)進(jìn)程b、發(fā)送日志數(shù)據(jù)進(jìn)程c都共享同一個(gè)局域網(wǎng),局域網(wǎng)的交換機(jī)的帶寬成為網(wǎng)絡(luò)資源的最大帶寬;這些進(jìn)程對(duì)應(yīng)的數(shù)據(jù)為:日志數(shù)據(jù)a-1至a-100,日志數(shù)據(jù)b-1至b-300,日志數(shù)據(jù)c-1至c-200。
步驟s403:對(duì)每一個(gè)發(fā)送進(jìn)程,判斷所述發(fā)送進(jìn)程的原始數(shù)據(jù)的大小是否大于預(yù)定閾值;
若是,則根據(jù)預(yù)定的算法將所述發(fā)送進(jìn)程的原始數(shù)據(jù)分為預(yù)定大小的兩個(gè)以上的發(fā)送數(shù)據(jù),并使用所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送所述發(fā)送進(jìn)程對(duì)應(yīng)的所述發(fā)送數(shù)據(jù)。
若否,則發(fā)送所述發(fā)送進(jìn)程的所述原始數(shù)據(jù)。
預(yù)定閾值和預(yù)定的算法是人工手動(dòng)或者系統(tǒng)自動(dòng)設(shè)定的。同上述第一實(shí)施例中所述的一種用于數(shù)據(jù)發(fā)送的方法中所述的待發(fā)送數(shù)據(jù)的類似,確定預(yù)定閾值的大小和預(yù)定的算法也是根據(jù)所述數(shù)據(jù)發(fā)送進(jìn)程的要求,網(wǎng)絡(luò)資源最大帶寬,數(shù)據(jù)發(fā)送的預(yù)定限制帶寬和同時(shí)發(fā)送數(shù)據(jù)的預(yù)定限制數(shù)量確定的。
對(duì)所有共享同一個(gè)網(wǎng)絡(luò)資源的各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的、大于預(yù)定閾值的各個(gè)原始數(shù)據(jù),使用預(yù)定的算法將所述各個(gè)原始數(shù)據(jù)分為預(yù)定大小的兩個(gè)以上的發(fā)送數(shù)據(jù);使用一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送所述的發(fā)送數(shù)據(jù);
對(duì)所有不大于預(yù)定閾值的各個(gè)原始數(shù)據(jù),直接發(fā)送。
在本實(shí)施例中,日志數(shù)據(jù)a-1至a-100,日志數(shù)據(jù)a-1至a-100,日志數(shù)據(jù)b-1至b-300,日志數(shù)據(jù)c-1至c-190的大小都大于預(yù)定閾值128k,而c-191 至c-200的大小不大于128k。使用預(yù)定的算法將日志數(shù)據(jù)a-1至a-100,日志數(shù)據(jù)a-1至a-100,日志數(shù)據(jù)b-1至b-300,日志數(shù)據(jù)c-1至c-190分為大小相同、均為128k的日志發(fā)送數(shù)據(jù)aa-1至aa600,日志發(fā)送數(shù)據(jù)bb-1至bb-800,日志發(fā)送數(shù)據(jù)cc-1至cc-400,并對(duì)這些日志發(fā)送數(shù)據(jù)使用所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送;對(duì)日志數(shù)據(jù)c-191至c-200直接進(jìn)行發(fā)送。
第五實(shí)施例。
請(qǐng)參考圖9,在上述實(shí)施例中,提供了一種限制發(fā)送進(jìn)程占用帶寬的方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種限制發(fā)送進(jìn)程占用帶寬的裝置。由于裝置實(shí)施例和電子設(shè)備實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅為示意性的
一種限制發(fā)送進(jìn)程占用帶寬的裝置,用于包含至少兩個(gè)發(fā)送進(jìn)程共享同一個(gè)網(wǎng)絡(luò)資源的環(huán)境,包括:
原始數(shù)據(jù)獲取單元501,用于獲取各個(gè)數(shù)據(jù)發(fā)送進(jìn)程的各個(gè)原始數(shù)據(jù);
預(yù)定閾值比較單元503,用于對(duì)每一個(gè)發(fā)送進(jìn)程,判斷所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)的大小是否大于預(yù)定閾值;
數(shù)據(jù)處理發(fā)送單元505,用于接收預(yù)定閾值比較單元的判斷結(jié)果;若是,則根據(jù)預(yù)定的算法將所述數(shù)據(jù)發(fā)送進(jìn)程的原始數(shù)據(jù)分為預(yù)定大小的兩個(gè)以上的發(fā)送數(shù)據(jù),并使用所述一種用于數(shù)據(jù)發(fā)送的裝置來發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程對(duì)應(yīng)的所述發(fā)送數(shù)據(jù);若否,則發(fā)送所述數(shù)據(jù)發(fā)送進(jìn)程的所述原始數(shù)據(jù)。
第六實(shí)施例。
請(qǐng)參考圖10,本申請(qǐng)還提供一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法,包括:
步驟s601:獲取各個(gè)數(shù)據(jù)庫的日志發(fā)送進(jìn)程的各個(gè)日志數(shù)據(jù);其中所述日志數(shù)據(jù)的大小是相同的。
獲取所有共享同一個(gè)網(wǎng)絡(luò)資源的各個(gè)主數(shù)據(jù)庫和備份數(shù)據(jù)庫的日志發(fā)送進(jìn)程的各個(gè)待發(fā)送日志數(shù)據(jù),其中各個(gè)待發(fā)送日志數(shù)據(jù)的大小都是相同的。
例如,在本實(shí)施例中,獲取主數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程d、主數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程e、備份數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程f的日志數(shù)據(jù):日志數(shù)據(jù)d-1至d-200,日志數(shù)據(jù)e-1,日志數(shù)據(jù)f-1至f-500。
步驟s603:對(duì)每一個(gè)日志發(fā)送進(jìn)程,判斷所述日志發(fā)送進(jìn)程的日志數(shù)據(jù)的 數(shù)量是否為至少兩個(gè);
若是,則使用權(quán)利要求所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送所述日志發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。
若否,則發(fā)送所述發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。
在本實(shí)施例中,對(duì)應(yīng)主數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程d和備份數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程f的日志數(shù)據(jù)d-1至d-200和日志數(shù)據(jù)f-1至f-500的數(shù)量為至少兩個(gè);對(duì)應(yīng)主數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程d和備份數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程f的這些日志數(shù)據(jù)d-1至d-200和f-1至f-500,使用所述一種用于數(shù)據(jù)發(fā)送的方法來發(fā)送;對(duì)應(yīng)主數(shù)據(jù)庫日志數(shù)據(jù)發(fā)送進(jìn)程e的日志數(shù)據(jù)的數(shù)量不是至少兩個(gè),對(duì)這個(gè)日志數(shù)據(jù)e-1直接發(fā)送。
第七實(shí)施例。
請(qǐng)參考圖11,在上述實(shí)施例中,提供了一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的方法,與之相對(duì)應(yīng)的,本申請(qǐng)還提供一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的裝置。由于裝置實(shí)施例基本相似于方法實(shí)施例,所以描述得比較簡(jiǎn)單,相關(guān)之處參見方法實(shí)施例的部分說明即可。下述描述的裝置實(shí)施例僅為示意性的。
一種用于主數(shù)據(jù)庫和備份數(shù)據(jù)庫之間發(fā)送日志數(shù)據(jù)的裝置,包括:
數(shù)據(jù)獲取單元701,用于獲取各個(gè)日志發(fā)送進(jìn)程的各個(gè)日志數(shù)據(jù);其中所述日志數(shù)據(jù)的大小是相同的;
數(shù)據(jù)數(shù)量判斷單元703,用于對(duì)每一個(gè)日志發(fā)送進(jìn)程,判斷所述日志發(fā)送進(jìn)程的日志數(shù)據(jù)的數(shù)量是否為至少兩個(gè);
數(shù)據(jù)發(fā)送單元703,用于接收所述數(shù)據(jù)數(shù)量判斷單元的判斷結(jié)果;若是,則使用所述的用于數(shù)據(jù)發(fā)送的裝置來發(fā)送所述日志發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。若否,則發(fā)送所述發(fā)送進(jìn)程對(duì)應(yīng)的所述日志數(shù)據(jù)。
在一個(gè)典型的配置中,計(jì)算設(shè)備包括一個(gè)或多個(gè)處理器(cpu)、輸入/輸出接口、網(wǎng)絡(luò)接口和內(nèi)存。
內(nèi)存可能包括計(jì)算機(jī)可讀介質(zhì)中的非永久性存儲(chǔ)器,隨機(jī)存取存儲(chǔ)器(ram)和/或非易失性內(nèi)存等形式,如只讀存儲(chǔ)器(rom)或閃存(flashram)。內(nèi)存是計(jì)算機(jī)可讀介質(zhì)的示例。
1、計(jì)算機(jī)可讀介質(zhì)包括永久性和非永久性、可移動(dòng)和非可移動(dòng)媒體可以由 任何方法或技術(shù)來實(shí)現(xiàn)信息存儲(chǔ)。信息可以是計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序的模塊或其他數(shù)據(jù)。計(jì)算機(jī)的存儲(chǔ)介質(zhì)的例子包括,但不限于相變內(nèi)存(pram)、靜態(tài)隨機(jī)存取存儲(chǔ)器(sram)、動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(dram)、其他類型的隨機(jī)存取存儲(chǔ)器(ram)、只讀存儲(chǔ)器(rom)、電可擦除可編程只讀存儲(chǔ)器(eeprom)、快閃記憶體或其他內(nèi)存技術(shù)、只讀光盤只讀存儲(chǔ)器(cd-rom)、數(shù)字多功能光盤(dvd)或其他光學(xué)存儲(chǔ)、磁盒式磁帶,磁帶磁磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備或任何其他非傳輸介質(zhì),可用于存儲(chǔ)可以被計(jì)算設(shè)備訪問的信息。按照本文中的界定,計(jì)算機(jī)可讀介質(zhì)不包括非暫存電腦可讀媒體(transitorymedia),如調(diào)制的數(shù)據(jù)信號(hào)和載波。
2、本領(lǐng)域技術(shù)人員應(yīng)明白,本申請(qǐng)的實(shí)施例可提供為方法、系統(tǒng)或計(jì)算機(jī)程序產(chǎn)品。因此,本申請(qǐng)可采用完全硬件實(shí)施例、完全軟件實(shí)施例或結(jié)合軟件和硬件方面的實(shí)施例的形式。而且,本申請(qǐng)可采用在一個(gè)或多個(gè)其中包含有計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用存儲(chǔ)介質(zhì)(包括但不限于磁盤存儲(chǔ)器、cd-rom、光學(xué)存儲(chǔ)器等)上實(shí)施的計(jì)算機(jī)程序產(chǎn)品的形式。
本申請(qǐng)雖然以較佳實(shí)施例公開如上,但其并不是用來限定本申請(qǐng),任何本領(lǐng)域技術(shù)人員在不脫離本申請(qǐng)的精神和范圍內(nèi),都可以做出可能的變動(dòng)和修改,因此本申請(qǐng)的保護(hù)范圍應(yīng)當(dāng)以本申請(qǐng)權(quán)利要求所界定的范圍為準(zhǔn)。