1.双缓冲模型实现大规模数据库聚类方法,其特征是,包括:
针对基因序列数据库进行长度递减排序;
建立两个缓冲区,将整个递减排序后基因序列文件预先载入两个缓冲区;
构建匹配字典:稀疏后缀数组,将缓冲区的一条基因序列构建稀疏后缀数组,作为字典,其它基因序列与字典后缀数组进行匹配,匹配过程中在查询序列的某个位置采取二分查找匹配搜索,并采取逆后缀数组、最小公共子前缀数组、后缀链接进行处理,实现生物基因序列的聚类。
2.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,在两条序列进行相似度匹配的时候,默认较长的一条为代表序列,较短的一条为冗余序列,排序之后的第一条一定是代表序列,下边与其相似度到达阈值的被标记为它的冗余序列。
3.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,将整个基因序列文件分为多个块,然后在内存中建立两个缓冲区,每个缓冲区的大小和块大小相等;
将整个基因序列文件预先载入两个缓冲区,然后基于其中一个缓冲区中的数据进行计算操作的同时另一个缓冲区载入文件,然后进行相应的同步策略,在计算时间远大于i/o时间的情况下,实现计算时间对i/o时间的覆盖。
4.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,设定缓冲区的大小及边界,每个缓冲区数据的实际大小是比设定的大小界限是要大一点的,多出不到一条序列的长度。
5.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,i/o操作与mem-check的计算操作两者之间的同步时:创建一个线程进行读取文件到缓冲区的操作,然后创建一组线程进行mem-check的计算工作,通过设置同步信号量full和empty来具体实现同步。
6.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,针对于n条序列,创建k个线程分别进行计算,n远大于k,每个线程计算的序列索引号为k对于n模运行取余,这样每个线程分得的索引号是固定的。
7.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,在同一个缓冲块中的多条query序列,用最长的计算时间来掩盖次长的计算时间,减少整体水平上的等待时间。
8.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,预先将query源文件进行排序操作,使得其中的数据序列按照长度递减排列,每个线程所分得的数据长度都是相近的,最大精确匹配算法的计算时间与query长度呈正相关,从而使得各个线程之间的运行时间相差不大,整体运行时间趋于平均时间而非最坏情况下运行时间。
9.如权利要求1所述的双缓冲模型实现大规模数据库聚类方法,其特征是,块的大小为动态调度,其中每一个块的大小仅仅设置一个参考值而不是固定大小,在读入操作达到块大小的情况下判断是否读入的序列条数为线程数目的整数倍,如若不是,继续读入知道满足条数为线程数目整数倍的情况为止。
10.双缓冲模型实现大规模数据库聚类系统,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征是,所述处理器执行所述程序时实现以下步骤:
针对基因序列数据库进行长度递减排序;
建立两个缓冲区,将整个递减排序后基因序列文件预先载入两个缓冲区;
构建匹配字典:稀疏后缀数组,将缓冲区的一条基因序列构建稀疏后缀数组,作为字典,其它基因序列与字典后缀数组进行匹配,匹配过程中在查询序列的某个位置采取二分查找匹配搜索,并采取逆后缀数组、最小公共子前缀数组、后缀链接进行处理,实现生物基因序列的聚类。