專利名稱:合并排序分布式數(shù)據(jù)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種合并排序(Merge Sort)分布式數(shù)據(jù)的方法,尤其涉及一種可應(yīng)用于主從式(Master-Slave)裝置,且只需小存儲(chǔ)容量的緩沖區(qū)(Buffers)的合并排序分布式數(shù)據(jù)的方法。
背景技術(shù):
隨著網(wǎng)絡(luò)應(yīng)用的大幅增長,愈來愈需要處理能力強(qiáng)大且具有高可靠度的網(wǎng)絡(luò)裝置來提供穩(wěn)定的支持與運(yùn)作。其中,由于可堆棧式的網(wǎng)絡(luò)裝置具有的高可靠度、高效率且彈性連接等特性,故例如可堆棧式交換器(Stackable Switch)、可堆棧式集線器(Stackable Hub)、可堆棧式交換集線器(Stackable Switching Hub)或可堆棧式交換路由器(Stackable Switching Router)等的可堆棧式網(wǎng)絡(luò)裝置,已廣泛地被應(yīng)用在各種的網(wǎng)絡(luò)建置中,以方便日后的網(wǎng)絡(luò)擴(kuò)充或調(diào)整網(wǎng)絡(luò)布線拓?fù)?Topology)之用。
可堆棧式的網(wǎng)絡(luò)裝置為一種主從式裝置,其由一個(gè)主端裝置和多個(gè)從端裝置所組成。主端裝置和每一個(gè)從端裝置各自具有多個(gè)連接端口(Ports),借以連接至多個(gè)通訊裝置,而每一個(gè)通訊裝置均具有獨(dú)一(Unique)的媒體訪問控制(Medium Access Control;MAC)地址(Address)。主端裝置具有一主端數(shù)據(jù)組,而每一個(gè)從端裝置各自具有一從端數(shù)據(jù)組,用以記錄連接于其連接端口的通訊裝置的MAC地址。這些MAC地址分散地記載于主端數(shù)據(jù)組和多個(gè)從端數(shù)據(jù)組中,即為所謂的分布式數(shù)據(jù)。為了管理上的需要,使用者常常須查詢分散于從端數(shù)據(jù)組和主端數(shù)據(jù)組中的各連接端口的MAC地址。
請(qǐng)參照
圖1,圖1為現(xiàn)有技術(shù)的主從式裝置合并排序其分布式數(shù)據(jù)的結(jié)構(gòu)示意圖。其中,主端裝置100的主端數(shù)據(jù)組102可儲(chǔ)存8000條MAC地址數(shù)據(jù)記錄,而每一個(gè)從端裝置120a、120b和120c的從端數(shù)據(jù)組122a、122b和122c也可儲(chǔ)存8000條MAC地址數(shù)據(jù)記錄。通常,主端裝置100會(huì)將主端數(shù)據(jù)組102中的8000條MAC地址數(shù)據(jù)記錄全部輸出緩沖區(qū)130,每一個(gè)從端裝置120a、120b和120c也會(huì)分別進(jìn)行數(shù)據(jù)輸出的步驟200,以將從端數(shù)據(jù)組122a、122b和122c的8000條MAC地址數(shù)據(jù)記錄全部輸出緩沖區(qū)130,然后,對(duì)緩沖區(qū)130中的數(shù)據(jù)記錄進(jìn)行排序的步驟,以供使用者查詢。
然而,上述緩沖區(qū)130所需使用的存儲(chǔ)容量相當(dāng)大。假設(shè)有(n-1)個(gè)從端數(shù)據(jù)組122a、122b和122c加上一個(gè)主端數(shù)據(jù)組102,且每一個(gè)從端數(shù)據(jù)組122a、122b和122c和主端數(shù)據(jù)組102均有8000條MAC地址數(shù)據(jù)記錄,則緩沖區(qū)130需要可容納8000×n條MAC地址數(shù)據(jù)記錄的存儲(chǔ)容量。即使使用者僅要取出(Retrieve)例如1000條MAC地址數(shù)據(jù)記錄,緩沖區(qū)130仍需使用上述的龐大的存儲(chǔ)容量。因此,造成制作成本的增加。另一方面,現(xiàn)有的主從式裝置合并排序其分布式數(shù)據(jù)的方式極費(fèi)時(shí)間,造成使用者許多不便。
綜上可知,所述現(xiàn)有技術(shù)的主從式裝置合并排序其分布式數(shù)據(jù)的方式,在實(shí)際使用上,顯然存在不便與缺陷,所以有必要加以改進(jìn)。
發(fā)明內(nèi)容
針對(duì)上述的缺陷,本發(fā)明目的在于提供一種合并排序分布式數(shù)據(jù)的方法,借以大幅地減少緩沖區(qū)所需使用的存儲(chǔ)容量,并可有效地縮短合并排序分布式數(shù)據(jù)的時(shí)間。
根據(jù)上述目的,本發(fā)明提出一種合并排序分布式數(shù)據(jù)的方法,借以適用于主從式裝置,其中該主從式裝置至少包括具有主端數(shù)據(jù)組的主端裝置,和具有多個(gè)從端數(shù)據(jù)組的多個(gè)從端裝置,且從端裝置與從端數(shù)據(jù)組以一對(duì)一的方式相對(duì)應(yīng)。
依照本發(fā)明一較佳實(shí)施例,該合并排序分布式數(shù)據(jù)的方法至少包括開始產(chǎn)生排序結(jié)果表;自主端數(shù)據(jù)組和從端數(shù)據(jù)組中決定出多個(gè)選定數(shù)據(jù)組;對(duì)每一個(gè)選定數(shù)據(jù)組進(jìn)行排序的步驟;分配一緩沖區(qū)至每一個(gè)選定數(shù)據(jù)組;進(jìn)行第一讀取數(shù)據(jù)的步驟,以讀取每一個(gè)選定數(shù)據(jù)組中的排列于最前面的預(yù)設(shè)數(shù)目的數(shù)據(jù)記錄至緩沖區(qū);將每一個(gè)緩沖區(qū)的第一條數(shù)據(jù)記錄移到排序暫存表;進(jìn)行移動(dòng)數(shù)據(jù)的步驟;進(jìn)行合并數(shù)據(jù)的步驟;以及重復(fù)該合并數(shù)據(jù)的步驟,其中若排序結(jié)果表的數(shù)據(jù)記錄的數(shù)目等于預(yù)設(shè)取出的數(shù)據(jù)數(shù)目,則停止執(zhí)行;若這些選定數(shù)據(jù)組的所有數(shù)據(jù)記錄均已讀取完畢,則停止執(zhí)行。并且,該移動(dòng)數(shù)據(jù)的步驟至少包括對(duì)排序暫存表進(jìn)行該排序的步驟;找出排序暫存表的第一條數(shù)據(jù)記錄的出處的特別緩沖區(qū)和特別選定數(shù)據(jù)組;將排序暫存表的第一條數(shù)據(jù)記錄移到排序結(jié)果表;以及將特別緩沖區(qū)的第一條數(shù)據(jù)記錄移到排序暫存表。合并數(shù)據(jù)的步驟至少包括檢查特別緩沖區(qū)是否存有數(shù)據(jù)記錄;若特別緩沖區(qū)存有數(shù)據(jù)記錄,則進(jìn)行移動(dòng)數(shù)據(jù)的步驟;以及若特別緩沖區(qū)沒存有數(shù)據(jù)記錄,則進(jìn)行第二讀取數(shù)據(jù)的步驟,以讀取特別選定數(shù)據(jù)組中的預(yù)設(shè)數(shù)目的下一組數(shù)據(jù)記錄至特別緩沖區(qū)后,進(jìn)行移動(dòng)數(shù)據(jù)的步驟。
因此,應(yīng)用本發(fā)明,當(dāng)使用者要取出一預(yù)設(shè)取出的數(shù)據(jù)數(shù)目的數(shù)據(jù)記錄時(shí),每次僅讀取每一個(gè)選定數(shù)據(jù)組中的預(yù)設(shè)數(shù)目的數(shù)據(jù)記錄至每一個(gè)選定數(shù)據(jù)組所對(duì)應(yīng)的緩沖區(qū),再通過本發(fā)明的合并排序的方式,便可充分地滿足使用者的要求,因而可大幅地減少緩沖區(qū)所需使用的存儲(chǔ)容量,并有效地縮短合并排序分布式數(shù)據(jù)的時(shí)間。
附圖簡要說明下面結(jié)合附圖,通過對(duì)本發(fā)明的較佳實(shí)施例的詳細(xì)描述,將使本發(fā)明的技術(shù)方案及其他有益效果顯而易見。
附圖中,圖1為現(xiàn)有技術(shù)的主從式裝置合并排序其分布式數(shù)據(jù)的結(jié)構(gòu)示意圖;圖2為應(yīng)用本發(fā)明的合并排序分布式數(shù)據(jù)的方法在主從式裝置的結(jié)構(gòu)示意圖;圖3A至圖3C為本發(fā)明的合并排序分布式數(shù)據(jù)的方法的流程圖。
具體實(shí)施例方式
下文,將詳細(xì)描述本發(fā)明。
請(qǐng)參照?qǐng)D2,其為應(yīng)用本發(fā)明的合并排序分布式數(shù)據(jù)的方法于主從式裝置的結(jié)構(gòu)示意圖。在對(duì)每一個(gè)從端數(shù)據(jù)組122a、122b和122c,及主端數(shù)據(jù)組102進(jìn)行排序的步驟后,首先,本發(fā)明分別讀取每一個(gè)從端數(shù)據(jù)組122a、122b和122c中排列于最前面的預(yù)設(shè)數(shù)目(例如40條)的數(shù)據(jù)記錄至每一個(gè)從端數(shù)據(jù)組122a、122b和122c所對(duì)應(yīng)的緩沖區(qū)150a、150b和150c(即數(shù)據(jù)輸出的步驟200),以及讀取主端數(shù)據(jù)組102中排列于最前面的預(yù)設(shè)數(shù)目的數(shù)據(jù)記錄至主端數(shù)據(jù)組102所對(duì)應(yīng)的緩沖區(qū)152。其中排序的步驟可依照由小到大;由大到小或其它的排序類別來進(jìn)行,為方便說明起見,以下以由小到大的排序來做說明。
接著,將緩沖區(qū)152、緩沖區(qū)150a、150b和150c中的第一條數(shù)據(jù)記錄(即各緩沖區(qū)中最小的數(shù)據(jù)記錄)移到一排序暫存表。
然后,進(jìn)行移動(dòng)數(shù)據(jù)的步驟,該移動(dòng)數(shù)據(jù)的步驟為對(duì)排序暫存表中的數(shù)據(jù)記錄進(jìn)行的排序步驟(由小到大);再將排序暫存表中的第一條數(shù)據(jù)記錄(即全部數(shù)據(jù)記錄中最小的數(shù)據(jù)記錄)移到一排序結(jié)果表;并找出該第一條數(shù)據(jù)記錄的出處特別緩沖區(qū)(例如緩沖區(qū)150a)和特別選定數(shù)據(jù)組(例如從端數(shù)據(jù)組122a);接著,將特別緩沖區(qū)的第一條數(shù)據(jù)記錄(即特別緩沖區(qū)中次小的數(shù)據(jù)記錄)移到排序暫存表。
接著,進(jìn)行一合并數(shù)據(jù)的步驟,該合并數(shù)據(jù)的步驟為檢查特別緩沖區(qū)是否仍存有數(shù)據(jù)記錄;若特別緩沖區(qū)仍存有數(shù)據(jù)記錄,則進(jìn)行移動(dòng)數(shù)據(jù)的步驟,將排序后的排序暫存表中的第一條數(shù)據(jù)記錄(即全部數(shù)據(jù)記錄中次小的數(shù)據(jù)記錄)移到排序結(jié)果表,并找出該第一條數(shù)據(jù)記錄的出處新的特別緩沖區(qū)(例如緩沖區(qū)150b)和新的特別選定數(shù)據(jù)組(例如從端數(shù)據(jù)組122b);若特別緩沖區(qū)沒存有數(shù)據(jù)記錄,則進(jìn)行第二讀取數(shù)據(jù)的步驟,以讀取特別選定數(shù)據(jù)組中的下一組40條數(shù)據(jù)記錄至特別緩沖區(qū)(即數(shù)據(jù)輸出的步驟200)后,進(jìn)行移動(dòng)數(shù)據(jù)的步驟,將排序后的排序暫存表中的第一條數(shù)據(jù)記錄(即全部數(shù)據(jù)記錄中次小的數(shù)據(jù)記錄)移到排序結(jié)果表,并找出該第一條數(shù)據(jù)記錄的出處新的特別緩沖區(qū)(例如緩沖區(qū)150b)和新的特別選定數(shù)據(jù)組(例如從端數(shù)據(jù)組122b)。
然后,重復(fù)上述的合并數(shù)據(jù)的步驟,直到排序結(jié)果表的數(shù)據(jù)記錄的數(shù)目等于預(yù)設(shè)取出(例如1000條)的數(shù)據(jù)數(shù)目;或若從端數(shù)據(jù)組122a、122b和122c和主端數(shù)據(jù)組102的所有數(shù)據(jù)記錄均已讀取完畢,則停止執(zhí)行。
由于最多僅同時(shí)自從端數(shù)據(jù)組122a、122b和122c和主端數(shù)據(jù)組102分別輸出40條MAC地址數(shù)據(jù)記錄至其對(duì)應(yīng)的緩沖區(qū)150a、150b和150c和緩沖區(qū)152,所以上述的緩沖區(qū)所使用的總存儲(chǔ)容量為40×n條MAC地址數(shù)據(jù)記錄。
與如圖1所示的現(xiàn)有技術(shù)的方法相較,本發(fā)明可大幅地減少使用存儲(chǔ)容量(由8000×n數(shù)據(jù)記錄條減為40×n條數(shù)據(jù)記錄)。
值得一提的是,上述的說明基于從端數(shù)據(jù)組122a、122b和122c和主端數(shù)據(jù)組102均為使用者要查詢的選定數(shù)據(jù)組。然而,根據(jù)實(shí)際需要,使用者可先自從端數(shù)據(jù)組122a、122b和122c和主端數(shù)據(jù)組102中決定出多個(gè)選定數(shù)據(jù)組,然后,再指定一個(gè)緩沖區(qū)給每一個(gè)選定數(shù)據(jù)組。如此則可進(jìn)一步減少緩沖區(qū)所使用的總存儲(chǔ)容量。并且,該主端數(shù)據(jù)組102位于一主從式裝置的一主端裝置100中,而從端數(shù)據(jù)組122a、122b和122c分別位于該主從式裝置的多個(gè)從端裝置120a、120b和120c中。該主從式裝置可為一可堆棧式網(wǎng)絡(luò)裝置,例如可堆棧式交換器、可堆棧式集線器、可堆棧式交換集線器以及可堆棧式交換路由器等。另外,決定出選定數(shù)據(jù)組的步驟可通過指定主從式裝置(主端裝置100和從端裝置120a、120b和120c)上的多個(gè)連接端口來進(jìn)行;也可通過指定至少一個(gè)虛擬局域網(wǎng)絡(luò)(VLAN),以選定主從式裝置的多個(gè)連接端口來進(jìn)行。
以下將整理說明本發(fā)明的合并排序分布式數(shù)據(jù)的方法的流程請(qǐng)參照?qǐng)D3A至圖3C,其為本發(fā)明的合并排序分布式數(shù)據(jù)的方法的流程圖。首先,進(jìn)行步驟300,以開始產(chǎn)生一排序結(jié)果表。接著,自多個(gè)數(shù)據(jù)組中決定出多個(gè)選定數(shù)據(jù)組(步驟310)。然后,對(duì)每一個(gè)選定數(shù)據(jù)組進(jìn)行排序的步驟(步驟320),并分配一緩沖區(qū)至每一個(gè)選定數(shù)據(jù)組(步驟330)。接著,進(jìn)行第一讀取數(shù)據(jù)的步驟340,以讀取每一個(gè)選定數(shù)據(jù)組中的位于最前面的預(yù)設(shè)數(shù)目的數(shù)據(jù)記錄至其所對(duì)應(yīng)的緩沖區(qū)。然后,將每一個(gè)緩沖區(qū)的第一條數(shù)據(jù)記錄移到排序暫存表(步驟350),并進(jìn)行移動(dòng)數(shù)據(jù)的步驟(步驟360),其中移動(dòng)數(shù)據(jù)的步驟至少包括對(duì)排序暫存表進(jìn)行排序(步驟362);找出排序暫存表的第一條數(shù)據(jù)記錄的出處的特別緩沖區(qū)和特別選定數(shù)據(jù)組(步驟364);將排序暫存表的第一條數(shù)據(jù)記錄移到排序結(jié)果表(步驟366);以及將特別緩沖區(qū)的第一條數(shù)據(jù)記錄移到排序暫存表(步驟368)。
然后,檢查排序結(jié)果表的數(shù)據(jù)記錄的數(shù)目是否等于預(yù)設(shè)取出的數(shù)據(jù)數(shù)目(步驟370),若步驟370的結(jié)果為是,則停止執(zhí)行(步驟400);若步驟370的結(jié)果為否,則檢查選定數(shù)據(jù)組的所有數(shù)據(jù)記錄是否均已讀取完畢(步驟380),若步驟380的結(jié)果為是,則停止執(zhí)行(步驟400);若步驟380的結(jié)果為否,則進(jìn)行合并數(shù)據(jù)的步驟390,其中合并數(shù)據(jù)的步驟390至少包括檢查特別緩沖區(qū)是否存有數(shù)據(jù)記錄(步驟392);若步驟392的結(jié)果為是,則進(jìn)行移動(dòng)數(shù)據(jù)的步驟360;若步驟392的結(jié)果為否,則進(jìn)行第二讀取數(shù)據(jù)的步驟394,以讀取特別選定數(shù)據(jù)組中的預(yù)設(shè)數(shù)目的下一組數(shù)據(jù)記錄至特別緩沖區(qū)后,進(jìn)行移動(dòng)數(shù)據(jù)的步驟360。然后,重復(fù)步驟370、步驟380和步驟390。
由上述本發(fā)明較佳實(shí)施例可知,應(yīng)用本發(fā)明的優(yōu)點(diǎn)為可大幅地減少緩沖區(qū)所需使用的存儲(chǔ)容量,并有效地縮短合并排序分布式數(shù)據(jù)的時(shí)間。因而降低制作成本,提高使用效率。
可以理解的是,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,可以根據(jù)本發(fā)明的技術(shù)方案和技術(shù)構(gòu)思作出其他各種相應(yīng)的改變和變形,而所有這些改變和變形都應(yīng)屬于本發(fā)明后附的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種合并排序分布式數(shù)據(jù)的方法,其特征在于,至少包括開始產(chǎn)生一排序結(jié)果表;自多個(gè)數(shù)據(jù)組中決定出多個(gè)選定數(shù)據(jù)組;對(duì)每一這些選定數(shù)據(jù)組進(jìn)行一排序的步驟;分配一緩沖區(qū)至每一這些選定數(shù)據(jù)組;進(jìn)行一第一讀取數(shù)據(jù)的步驟,以讀取每一這些選定數(shù)據(jù)組中的位于最前面的一預(yù)設(shè)數(shù)目的數(shù)據(jù)記錄至該緩沖區(qū);將每一這些選定數(shù)據(jù)組的該緩沖區(qū)的一第一條數(shù)據(jù)記錄移到一排序暫存表;進(jìn)行一移動(dòng)數(shù)據(jù)的步驟,其中該移動(dòng)數(shù)據(jù)的步驟至少包括對(duì)該排序暫存表進(jìn)行該排序的步驟;找出該排序暫存表的一第一條數(shù)據(jù)記錄的出處的一特別緩沖區(qū)和一特別選定數(shù)據(jù)組;將該排序暫存表的該第一條數(shù)據(jù)記錄移到該排序結(jié)果表;以及將該特別緩沖區(qū)的一第一條數(shù)據(jù)記錄移到該排序暫存表;進(jìn)行一合并數(shù)據(jù)的步驟,其中該合并數(shù)據(jù)的步驟至少包括檢查該特別緩沖區(qū)是否存有數(shù)據(jù)記錄;若該特別緩沖區(qū)存有數(shù)據(jù)記錄,則進(jìn)行該移動(dòng)數(shù)據(jù)的步驟;以及若該特別緩沖區(qū)沒存有數(shù)據(jù)記錄,則進(jìn)行一第二讀取數(shù)據(jù)的步驟,以讀取該特別選定數(shù)據(jù)組中的該預(yù)設(shè)數(shù)目的下一組數(shù)據(jù)記錄至該特別緩沖區(qū)后,進(jìn)行該移動(dòng)數(shù)據(jù)的步驟;以及重復(fù)該合并數(shù)據(jù)的步驟,其中若該排序結(jié)果表的數(shù)據(jù)記錄的數(shù)目等于一預(yù)設(shè)取出(Retrieve)的數(shù)據(jù)數(shù)目,則停止執(zhí)行;若這些選定數(shù)據(jù)組的所有數(shù)據(jù)記錄均已讀取完畢,則停止執(zhí)行。
2.根據(jù)權(quán)利要求1所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,該排序的步驟依照由小到大或由大到小的次序。
3.根據(jù)權(quán)利要求1所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,每一這些數(shù)據(jù)組由多個(gè)媒體存取控制地址所組成。
4.根據(jù)權(quán)利要求1所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,這些數(shù)據(jù)組至少包括一主端數(shù)據(jù)組和多個(gè)從端數(shù)據(jù)組。
5.根據(jù)權(quán)利要求4所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,該主端數(shù)據(jù)組位于一主從式裝置的一主端裝置中,和這些從端數(shù)據(jù)組分別位于該主從式裝置的多個(gè)從端裝置中。
6.根據(jù)權(quán)利要求5所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,該主從式裝置為一可堆棧式網(wǎng)絡(luò)裝置。
7.根據(jù)權(quán)利要求6所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,該可堆棧式網(wǎng)絡(luò)裝置選自于由可堆棧式交換器、可堆棧式集線器、可堆棧式交換集線器以及可堆棧式交換路由器所組成的一族群。
8.根據(jù)權(quán)利要求5所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,所述自這些數(shù)據(jù)組中決定出這些選定數(shù)據(jù)組的步驟通過指定該主從式裝置的多個(gè)連接端口來進(jìn)行。
9.根據(jù)權(quán)利要求5所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,所述自這些數(shù)據(jù)組中決定出這些選定數(shù)據(jù)組的步驟通過指定至少一虛擬局域網(wǎng)絡(luò),以選定該主從式裝置的多個(gè)連接端口來進(jìn)行。
10.根據(jù)權(quán)利要求1所述的合并排序分布式數(shù)據(jù)的方法,其特征在于,這些選定數(shù)據(jù)組為這些數(shù)據(jù)組。
全文摘要
一種合并排序(Merge Sort)分布式數(shù)據(jù)的方法,該方法根據(jù)使用者的需求自多個(gè)數(shù)據(jù)組中決定出多個(gè)選定數(shù)據(jù)組,并且每次僅讀取每一個(gè)選定數(shù)據(jù)組中的預(yù)設(shè)數(shù)目(例如40條)的數(shù)據(jù)記錄至每一個(gè)選定數(shù)據(jù)組所對(duì)應(yīng)的緩沖區(qū)(Buffer),再通過本發(fā)明的合并排序的方式,來獲得使用者所要取出(Retrieve)的數(shù)目(例如1000條)的數(shù)據(jù),其中這些數(shù)據(jù)依照由小到大;由大到小或其它的排序類別的依序排列,借此,本發(fā)明可大幅地減少緩沖區(qū)所需使用的存儲(chǔ)容量,并可有效地縮短合并排序分布式數(shù)據(jù)的時(shí)間。
文檔編號(hào)G06F7/36GK1581060SQ03152258
公開日2005年2月16日 申請(qǐng)日期2003年7月30日 優(yōu)先權(quán)日2003年7月30日
發(fā)明者王然益, 李其樺 申請(qǐng)人:智邦科技股份有限公司