合并排序分布式数据的方法

文档序号:6374454阅读:306来源:国知局
专利名称:合并排序分布式数据的方法
技术领域
本发明涉及一种合并排序(Merge Sort)分布式数据的方法,尤其涉及一种可应用于主从式(Master-Slave)装置,且只需小存储容量的缓冲区(Buffers)的合并排序分布式数据的方法。
背景技术
随着网络应用的大幅增长,愈来愈需要处理能力强大且具有高可靠度的网络装置来提供稳定的支持与运作。其中,由于可堆栈式的网络装置具有的高可靠度、高效率且弹性连接等特性,故例如可堆栈式交换器(Stackable Switch)、可堆栈式集线器(Stackable Hub)、可堆栈式交换集线器(Stackable Switching Hub)或可堆栈式交换路由器(Stackable Switching Router)等的可堆栈式网络装置,已广泛地被应用在各种的网络建置中,以方便日后的网络扩充或调整网络布线拓扑(Topology)之用。
可堆栈式的网络装置为一种主从式装置,其由一个主端装置和多个从端装置所组成。主端装置和每一个从端装置各自具有多个连接端口(Ports),借以连接至多个通讯装置,而每一个通讯装置均具有独一(Unique)的媒体访问控制(Medium Access Control;MAC)地址(Address)。主端装置具有一主端数据组,而每一个从端装置各自具有一从端数据组,用以记录连接于其连接端口的通讯装置的MAC地址。这些MAC地址分散地记载于主端数据组和多个从端数据组中,即为所谓的分布式数据。为了管理上的需要,使用者常常须查询分散于从端数据组和主端数据组中的各连接端口的MAC地址。
请参照

图1,图1为现有技术的主从式装置合并排序其分布式数据的结构示意图。其中,主端装置100的主端数据组102可储存8000条MAC地址数据记录,而每一个从端装置120a、120b和120c的从端数据组122a、122b和122c也可储存8000条MAC地址数据记录。通常,主端装置100会将主端数据组102中的8000条MAC地址数据记录全部输出缓冲区130,每一个从端装置120a、120b和120c也会分别进行数据输出的步骤200,以将从端数据组122a、122b和122c的8000条MAC地址数据记录全部输出缓冲区130,然后,对缓冲区130中的数据记录进行排序的步骤,以供使用者查询。
然而,上述缓冲区130所需使用的存储容量相当大。假设有(n-1)个从端数据组122a、122b和122c加上一个主端数据组102,且每一个从端数据组122a、122b和122c和主端数据组102均有8000条MAC地址数据记录,则缓冲区130需要可容纳8000×n条MAC地址数据记录的存储容量。即使使用者仅要取出(Retrieve)例如1000条MAC地址数据记录,缓冲区130仍需使用上述的庞大的存储容量。因此,造成制作成本的增加。另一方面,现有的主从式装置合并排序其分布式数据的方式极费时间,造成使用者许多不便。
综上可知,所述现有技术的主从式装置合并排序其分布式数据的方式,在实际使用上,显然存在不便与缺陷,所以有必要加以改进。

发明内容
针对上述的缺陷,本发明目的在于提供一种合并排序分布式数据的方法,借以大幅地减少缓冲区所需使用的存储容量,并可有效地缩短合并排序分布式数据的时间。
根据上述目的,本发明提出一种合并排序分布式数据的方法,借以适用于主从式装置,其中该主从式装置至少包括具有主端数据组的主端装置,和具有多个从端数据组的多个从端装置,且从端装置与从端数据组以一对一的方式相对应。
依照本发明一较佳实施例,该合并排序分布式数据的方法至少包括开始产生排序结果表;自主端数据组和从端数据组中决定出多个选定数据组;对每一个选定数据组进行排序的步骤;分配一缓冲区至每一个选定数据组;进行第一读取数据的步骤,以读取每一个选定数据组中的排列于最前面的预设数目的数据记录至缓冲区;将每一个缓冲区的第一条数据记录移到排序暂存表;进行移动数据的步骤;进行合并数据的步骤;以及重复该合并数据的步骤,其中若排序结果表的数据记录的数目等于预设取出的数据数目,则停止执行;若这些选定数据组的所有数据记录均已读取完毕,则停止执行。并且,该移动数据的步骤至少包括对排序暂存表进行该排序的步骤;找出排序暂存表的第一条数据记录的出处的特别缓冲区和特别选定数据组;将排序暂存表的第一条数据记录移到排序结果表;以及将特别缓冲区的第一条数据记录移到排序暂存表。合并数据的步骤至少包括检查特别缓冲区是否存有数据记录;若特别缓冲区存有数据记录,则进行移动数据的步骤;以及若特别缓冲区没存有数据记录,则进行第二读取数据的步骤,以读取特别选定数据组中的预设数目的下一组数据记录至特别缓冲区后,进行移动数据的步骤。
因此,应用本发明,当使用者要取出一预设取出的数据数目的数据记录时,每次仅读取每一个选定数据组中的预设数目的数据记录至每一个选定数据组所对应的缓冲区,再通过本发明的合并排序的方式,便可充分地满足使用者的要求,因而可大幅地减少缓冲区所需使用的存储容量,并有效地缩短合并排序分布式数据的时间。
附图简要说明下面结合附图,通过对本发明的较佳实施例的详细描述,将使本发明的技术方案及其他有益效果显而易见。
附图中,图1为现有技术的主从式装置合并排序其分布式数据的结构示意图;图2为应用本发明的合并排序分布式数据的方法在主从式装置的结构示意图;图3A至图3C为本发明的合并排序分布式数据的方法的流程图。
具体实施例方式
下文,将详细描述本发明。
请参照图2,其为应用本发明的合并排序分布式数据的方法于主从式装置的结构示意图。在对每一个从端数据组122a、122b和122c,及主端数据组102进行排序的步骤后,首先,本发明分别读取每一个从端数据组122a、122b和122c中排列于最前面的预设数目(例如40条)的数据记录至每一个从端数据组122a、122b和122c所对应的缓冲区150a、150b和150c(即数据输出的步骤200),以及读取主端数据组102中排列于最前面的预设数目的数据记录至主端数据组102所对应的缓冲区152。其中排序的步骤可依照由小到大;由大到小或其它的排序类别来进行,为方便说明起见,以下以由小到大的排序来做说明。
接着,将缓冲区152、缓冲区150a、150b和150c中的第一条数据记录(即各缓冲区中最小的数据记录)移到一排序暂存表。
然后,进行移动数据的步骤,该移动数据的步骤为对排序暂存表中的数据记录进行的排序步骤(由小到大);再将排序暂存表中的第一条数据记录(即全部数据记录中最小的数据记录)移到一排序结果表;并找出该第一条数据记录的出处特别缓冲区(例如缓冲区150a)和特别选定数据组(例如从端数据组122a);接着,将特别缓冲区的第一条数据记录(即特别缓冲区中次小的数据记录)移到排序暂存表。
接着,进行一合并数据的步骤,该合并数据的步骤为检查特别缓冲区是否仍存有数据记录;若特别缓冲区仍存有数据记录,则进行移动数据的步骤,将排序后的排序暂存表中的第一条数据记录(即全部数据记录中次小的数据记录)移到排序结果表,并找出该第一条数据记录的出处新的特别缓冲区(例如缓冲区150b)和新的特别选定数据组(例如从端数据组122b);若特别缓冲区没存有数据记录,则进行第二读取数据的步骤,以读取特别选定数据组中的下一组40条数据记录至特别缓冲区(即数据输出的步骤200)后,进行移动数据的步骤,将排序后的排序暂存表中的第一条数据记录(即全部数据记录中次小的数据记录)移到排序结果表,并找出该第一条数据记录的出处新的特别缓冲区(例如缓冲区150b)和新的特别选定数据组(例如从端数据组122b)。
然后,重复上述的合并数据的步骤,直到排序结果表的数据记录的数目等于预设取出(例如1000条)的数据数目;或若从端数据组122a、122b和122c和主端数据组102的所有数据记录均已读取完毕,则停止执行。
由于最多仅同时自从端数据组122a、122b和122c和主端数据组102分别输出40条MAC地址数据记录至其对应的缓冲区150a、150b和150c和缓冲区152,所以上述的缓冲区所使用的总存储容量为40×n条MAC地址数据记录。
与如图1所示的现有技术的方法相较,本发明可大幅地减少使用存储容量(由8000×n数据记录条减为40×n条数据记录)。
值得一提的是,上述的说明基于从端数据组122a、122b和122c和主端数据组102均为使用者要查询的选定数据组。然而,根据实际需要,使用者可先自从端数据组122a、122b和122c和主端数据组102中决定出多个选定数据组,然后,再指定一个缓冲区给每一个选定数据组。如此则可进一步减少缓冲区所使用的总存储容量。并且,该主端数据组102位于一主从式装置的一主端装置100中,而从端数据组122a、122b和122c分别位于该主从式装置的多个从端装置120a、120b和120c中。该主从式装置可为一可堆栈式网络装置,例如可堆栈式交换器、可堆栈式集线器、可堆栈式交换集线器以及可堆栈式交换路由器等。另外,决定出选定数据组的步骤可通过指定主从式装置(主端装置100和从端装置120a、120b和120c)上的多个连接端口来进行;也可通过指定至少一个虚拟局域网络(VLAN),以选定主从式装置的多个连接端口来进行。
以下将整理说明本发明的合并排序分布式数据的方法的流程请参照图3A至图3C,其为本发明的合并排序分布式数据的方法的流程图。首先,进行步骤300,以开始产生一排序结果表。接着,自多个数据组中决定出多个选定数据组(步骤310)。然后,对每一个选定数据组进行排序的步骤(步骤320),并分配一缓冲区至每一个选定数据组(步骤330)。接着,进行第一读取数据的步骤340,以读取每一个选定数据组中的位于最前面的预设数目的数据记录至其所对应的缓冲区。然后,将每一个缓冲区的第一条数据记录移到排序暂存表(步骤350),并进行移动数据的步骤(步骤360),其中移动数据的步骤至少包括对排序暂存表进行排序(步骤362);找出排序暂存表的第一条数据记录的出处的特别缓冲区和特别选定数据组(步骤364);将排序暂存表的第一条数据记录移到排序结果表(步骤366);以及将特别缓冲区的第一条数据记录移到排序暂存表(步骤368)。
然后,检查排序结果表的数据记录的数目是否等于预设取出的数据数目(步骤370),若步骤370的结果为是,则停止执行(步骤400);若步骤370的结果为否,则检查选定数据组的所有数据记录是否均已读取完毕(步骤380),若步骤380的结果为是,则停止执行(步骤400);若步骤380的结果为否,则进行合并数据的步骤390,其中合并数据的步骤390至少包括检查特别缓冲区是否存有数据记录(步骤392);若步骤392的结果为是,则进行移动数据的步骤360;若步骤392的结果为否,则进行第二读取数据的步骤394,以读取特别选定数据组中的预设数目的下一组数据记录至特别缓冲区后,进行移动数据的步骤360。然后,重复步骤370、步骤380和步骤390。
由上述本发明较佳实施例可知,应用本发明的优点为可大幅地减少缓冲区所需使用的存储容量,并有效地缩短合并排序分布式数据的时间。因而降低制作成本,提高使用效率。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术方案和技术构思作出其他各种相应的改变和变形,而所有这些改变和变形都应属于本发明后附的权利要求的保护范围。
权利要求
1.一种合并排序分布式数据的方法,其特征在于,至少包括开始产生一排序结果表;自多个数据组中决定出多个选定数据组;对每一这些选定数据组进行一排序的步骤;分配一缓冲区至每一这些选定数据组;进行一第一读取数据的步骤,以读取每一这些选定数据组中的位于最前面的一预设数目的数据记录至该缓冲区;将每一这些选定数据组的该缓冲区的一第一条数据记录移到一排序暂存表;进行一移动数据的步骤,其中该移动数据的步骤至少包括对该排序暂存表进行该排序的步骤;找出该排序暂存表的一第一条数据记录的出处的一特别缓冲区和一特别选定数据组;将该排序暂存表的该第一条数据记录移到该排序结果表;以及将该特别缓冲区的一第一条数据记录移到该排序暂存表;进行一合并数据的步骤,其中该合并数据的步骤至少包括检查该特别缓冲区是否存有数据记录;若该特别缓冲区存有数据记录,则进行该移动数据的步骤;以及若该特别缓冲区没存有数据记录,则进行一第二读取数据的步骤,以读取该特别选定数据组中的该预设数目的下一组数据记录至该特别缓冲区后,进行该移动数据的步骤;以及重复该合并数据的步骤,其中若该排序结果表的数据记录的数目等于一预设取出(Retrieve)的数据数目,则停止执行;若这些选定数据组的所有数据记录均已读取完毕,则停止执行。
2.根据权利要求1所述的合并排序分布式数据的方法,其特征在于,该排序的步骤依照由小到大或由大到小的次序。
3.根据权利要求1所述的合并排序分布式数据的方法,其特征在于,每一这些数据组由多个媒体存取控制地址所组成。
4.根据权利要求1所述的合并排序分布式数据的方法,其特征在于,这些数据组至少包括一主端数据组和多个从端数据组。
5.根据权利要求4所述的合并排序分布式数据的方法,其特征在于,该主端数据组位于一主从式装置的一主端装置中,和这些从端数据组分别位于该主从式装置的多个从端装置中。
6.根据权利要求5所述的合并排序分布式数据的方法,其特征在于,该主从式装置为一可堆栈式网络装置。
7.根据权利要求6所述的合并排序分布式数据的方法,其特征在于,该可堆栈式网络装置选自于由可堆栈式交换器、可堆栈式集线器、可堆栈式交换集线器以及可堆栈式交换路由器所组成的一族群。
8.根据权利要求5所述的合并排序分布式数据的方法,其特征在于,所述自这些数据组中决定出这些选定数据组的步骤通过指定该主从式装置的多个连接端口来进行。
9.根据权利要求5所述的合并排序分布式数据的方法,其特征在于,所述自这些数据组中决定出这些选定数据组的步骤通过指定至少一虚拟局域网络,以选定该主从式装置的多个连接端口来进行。
10.根据权利要求1所述的合并排序分布式数据的方法,其特征在于,这些选定数据组为这些数据组。
全文摘要
一种合并排序(Merge Sort)分布式数据的方法,该方法根据使用者的需求自多个数据组中决定出多个选定数据组,并且每次仅读取每一个选定数据组中的预设数目(例如40条)的数据记录至每一个选定数据组所对应的缓冲区(Buffer),再通过本发明的合并排序的方式,来获得使用者所要取出(Retrieve)的数目(例如1000条)的数据,其中这些数据依照由小到大;由大到小或其它的排序类别的依序排列,借此,本发明可大幅地减少缓冲区所需使用的存储容量,并可有效地缩短合并排序分布式数据的时间。
文档编号G06F7/36GK1581060SQ03152258
公开日2005年2月16日 申请日期2003年7月30日 优先权日2003年7月30日
发明者王然益, 李其桦 申请人:智邦科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1