一种分布式存储方法、装置、系统以及介质与流程

文档序号:30580225发布日期:2022-06-29 11:46阅读:78来源:国知局
一种分布式存储方法、装置、系统以及介质与流程

1.本技术涉及数据处理技术领域,特别是涉及一种分布式存储方法、装置、系统以及介质。


背景技术:

2.随着时代的发展,业务的增多,产生的数据也越来越多,对于数据的存储也尤为重要。
3.存储数据的设备通常有机械硬盘,固态硬盘,非易失性存储介质等。其中,容量较大的存储介质,其速度较慢但价格较低,而容量较小的存储介质,其速度较快但价格较高。而ceph作为一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统,可以将热数据存入作为快速硬盘设备的缓存池当中,将冷数据存入作为慢速硬盘设备的数据池当中。
4.该系统在获取到新的数据时,由于其在缓存池中为未命中的状态,会将其存入数据池当中,在后续再次获取到该数据时,会将其拷贝到缓存池当中,以便于快速、频繁使用。该方法需要将数据从数据池当中拷贝到缓存池当中,io路径较长,降低了数据存储的效率。
5.由此可见,如何缩短io路径,提高数据存储的效率是本领域技术人员亟待解决的问题。


技术实现要素:

6.本技术的目的是提供一种分布式存储方法、装置、系统以及介质,以用于缩短io路径,提高数据存储的效率。
7.为解决上述技术问题,本技术提供一种分布式存储方法,该方法包括:
8.获取当前数据;
9.判断所述当前数据是否在缓存池中命中;
10.若未命中,则判断所述当前数据是否满足驻留条件;
11.若满足,则将所述当前数据驻留在所述缓存池中;若不满足,则将所述当前数据保存至数据池中。
12.优选的,所述判断所述当前数据是否满足驻留条件包括:
13.为所述当前数据定义热度值;
14.判断所述当前数据的热度值是否不小于阈值,若不小于,则认为满足所述驻留条件,若小于,则认为不满足所述驻留条件。
15.优选的,所述为所述当前温度数据定义热度值包括:
16.每间隔预设时间创建一个集合,将所述当前数据的对象名存入最新创建的集合;所述集合中存有预设时间内访问所述缓存池的数据的对象名;
17.判断所述集合的数目是否大于预设值,若大于,则删除最早创建的集合;
18.其中,每个集合在创建时设有热度值,以使进入同一个集合的对象名对应的数据
的热度值相同;
19.其中,最新创建的集合的热度值大于次新创建的集合的热度值,各集合的热度值随距离最新集合的时间增长而降低;
20.将各集合中的所述当前数据的对象名反应的热度值相加作为所述当前数据的热度值。
21.优选的,在所述将所述当前数据驻留在所述缓存池的步骤之后,还包括:
22.为所述当前数据定义热度属性值;
23.所述热度属性值随时间的增长而降低,随命中次数的增长而增长;
24.根据所述热度属性值将所述缓存池中的数据进行排序,每间隔第二预设时间将所述热度属性值最低的数据驱逐出所述缓存池,存入所述数据池。
25.优选的,还包括:
26.根据所述缓存池中的数据量的变化速度和期望变化速度之间的误差调整所述第二预设时间,具体为比例系数倍的所述误差和积分系数倍的所述误差的积分项以及微分系数倍的所述误差的微分项的加和。
27.优选的,在所述将所述当前数据驻留在所述缓存池的步骤之后,还包括:
28.根据所述缓存池的数据量调整缓存模式,将所述缓存池中的脏数据回刷至所述数据池,所述缓存模式包括回写模式、直写模式和绕写模式;
29.若所述缓存池的数据量小于第一阈值,则将所述缓存模式切换为所述回写模式;
30.若所述缓存池的数据量大于所述第一阈值且小于第二阈值,则将所述缓存模式切换为所述直写模式;
31.若所述缓存池的数据量大于所述第二阈值,则将所述缓存模式切换为所述绕写模式。
32.优选的,还包括:根据获取的所述当前数据的数据量调整线程的使用间隔,以将所述缓存池中的数据和所述数据池的数据存入非易失性存储介质中。
33.为解决上述技术问题,本技术还提供一种分布式存储装置,该装置包括:
34.获取模块,用于获取当前数据;
35.第一判断模块,用于判断所述当前数据是否在缓存池中命中;
36.第二判断模块,用于若未命中,则判断所述当前数据是否满足驻留条件;
37.处理模块,用于若满足,则将所述当前数据驻留在所述缓存池中;若不满足,则将所述当前数据保存至数据池中。
38.为解决上述技术问题,本技术还提供一种分布式存储系统,该系统包括存储器,用于存储计算机程序;
39.处理器,用于执行所述计算机程序时实现如上述的分布式存储方法的步骤。
40.为解决上述技术问题,本技术还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述的分布式存储方法的步骤。
41.本技术所提供的一种分布式存储方法,在获取到当前数据后,先判断当前数据是否在缓存池中命中,若未命中,则判断当前数据是否满足驻留条件。若满足,则将当前数据驻留在缓存池中;若不满足,则将当前数据保存至数据池。相对于当前技术中,需要将数据
池中的数据拷贝到缓存池中,导致数据存储效率降低的问题,采用本技术方案,将满足驻留条件的数据驻留在缓存池中,省去了拷贝的过程,缩短了io路径,同时,也避免了拷贝过程中io相互耦合,挤占大量内存和宽带资源的问题,提高了数据缓存的效率。
42.此外,本技术所提供的一种分布式存储装置、系统以及介质与上述的分布式存储方法相对应,效果同上。
附图说明
43.为了更清楚地说明本技术实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
44.图1为本技术实施例提供的一种分布式存储方法的流程图;
45.图2为本技术实施例提供的一种分布式存储装置的结构图;
46.图3为本技术实施例提供的一种分布式存储系统的结构图。
具体实施方式
47.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本技术保护范围。
48.本技术的核心是提供一种分布式存储方法、装置、系统以及介质,用于缩短io路径,提高数据存储的效率。
49.为了使本技术领域的人员更好地理解本技术方案,下面结合附图和具体实施方式对本技术作进一步的详细说明。
50.图1为本技术实施例提供的一种分布式存储方法的流程图,如图1所示,该方法包括:
51.s10:获取当前数据。
52.s11:判断当前数据是否在缓存池中命中,若未命中,则进入步骤s12。
53.s12:判断当前数据是否满足驻留条件,若满足,则进入步骤s13,若不满足,则进入步骤s14。
54.s13:将当前数据驻留在缓存池中。
55.s14:将当前数据保存至数据池中。
56.ceph作为一种为优秀的性能、可靠性和可扩展性而设计的统一的、分布式文件系统,可以将热数据存入作为快速硬盘设备的缓存池当中,将冷数据存入作为慢速硬盘设备的数据池当中。在创建缓存池时,在ceph中,osd(object storage deviceosd)是负责响应客户端请求返回具体数据的进程,在创建缓存池时,缓存池中的osd需要与数据池的osd一一对应,具体为一个缓存池快速磁盘设备对应一个同节点数据池慢速磁盘设备。缓存池中的osd可以是快速磁盘设备或者快速磁盘设备生成的逻辑卷,映射关系被包含在osdmap中,广播到全局并最终持久化存储到磁盘中。需说明的是建立上述映射关系后,跨池的数据迁移在同一节点上发生,并且以osd上的单一副本或者纠删码片段为粒度,跨池迁移数据对用
户io的影响大大降低,减少了数据迁移的网络层消耗。
57.在步骤s10和s11中,缓存池在接收到用户业务io即当前数据后,会先判断该数据是否已存在于缓存池中,判断其是否命中,如果没有命中,则进入步骤s12,判断当前数据是否满足驻留条件,具体可以是根据判断当前数据是否为多次获取,历史获取时间等情况决定当前数据是否满足驻留条件。如果当前数据满足驻留条件,进入步骤s13,将当前数据驻留在缓存池中,如果不满足驻留条件,则将当前数据保存至数据池中。可以理解的是,驻留在缓存池中的数据应当是被频繁使用的热数据,数据池中的数据应当是不常使用的冷数据。在具体实施中,判断数据是否能够驻留在缓存池的步骤应当是重复执行的,随着进程的执行,当缓存池中的热数据变为了冷数据或者脏数据时,应当通过驱逐或者回刷将其存入至数据池。
58.在具体实施中,用户业务包括读和写,当用户业务为读流程时,在获取到数据后,判断该数据是否在缓存池中命中,如果命中,则可以直接进行读操作,如果未命中,则需要从数据池中读取数据,并判断其是否满足驻留条件,如果满足就将其驻留在缓存池。
59.而当用户业务为写流程时,同样的先判断数据是否在缓存池中命中,如果命中则可以在缓存池中进行写操作,如果没有命中则需要判断是否满足驻留条件。如果满足驻留条件则可以将写数据驻留在缓存池,不同于读流程的是,如果不满足驻留条件,则需要将写数据存入数据池当中。
60.本技术实施例提供的分布式存储方法,在获取到当前数据后,先判断当前数据是否在缓存池中命中,若未命中,则判断当前数据是否满足驻留条件。若满足,则将当前数据驻留在缓存池中;若不满足,则将当前数据保存至数据池。相对于当前技术中,需要将数据池中的数据拷贝到缓存池中,导致数据存储效率降低的问题,采用本技术方案,将满足驻留条件的数据驻留在缓存池中,省去了拷贝的过程,缩短了io路径,同时,也避免了拷贝过程中io相互耦合,挤占大量内存和宽带资源的问题,提高了数据缓存的效率。
61.可以理解的是,能够驻留在缓存池中的数据应当是需要频繁使用的数据,在判断数据能否驻留时,应当结合当前数据的出现频率,以及出现的时间间隔进行评判。在上述实施例的基础上,本实施例提供一种具体的判断当前数据是否满足驻留条件的方法,该方法包括:
62.为当前数据定义热度值;
63.判断当前数据的热度值是否不小于阈值,若不小于,则认为满足驻留条件,若小于,则认为不满足驻留条件。
64.在本实施例中,为当前数据定义热度值,该热度值即代表着当前数据的历史出现频率,出现的时间间隔。在当前数据的热度值不小于阈值时,表示该当前数据满足驻留条件,应当驻留在缓存池中。
65.本实施例提供的分布式存储方法,使用热度值作为当前数据能否驻留在缓存池的判断依据,能够更准确的体现当前数据的热度情况。
66.上述实施例提供了一种具体的判断当前数据是否满足驻留条件的方法,本实施例提供一种在该方法中具体的为当前数据定义热度值的方法,在本实施例中,为当前温度数据定义热度值包括:
67.每间隔预设时间创建一个集合,将当前数据的对象名存入最新创建的集合;集合
中存有预设时间内访问缓存池的数据的对象名;
68.判断集合的数目是否大于预设值,若大于,则删除最早创建的集合;
69.其中,每个集合在创建时设有热度值,以使进入同一个集合的对象名对应的数据的热度值相同;
70.其中,最新创建的集合的热度值大于次新创建的集合的热度值,各集合的热度值随距离最新集合的时间增长而降低;
71.将各集合中的当前数据的对象名反应的热度值相加作为当前数据的热度值。
72.需要说明的是,本实施例中的集合是在缓存池被创建后,创建的字符串类型的集合。集合中保存着预设时间内访问缓存池的数据的对象名,该预设时间可以结合用户业务io的数据量而定。在本实施例中,每间隔预设时间就会创建一个集合,而当集合的数目大于预设值后,就会删除最早创建的集合。也就是说,在本实施例中,集合的最大数目是固定的,并且在达到预设值后保持集合数目不变。在创建每个集合时,每个集合都带有热度值,从而,进入该集合的对象名对应的数据也就带有相同的热度值。在其他实施例中,各集合的热度值可能都是相同的,本实施例提供一种优选的方案,在本实施中,最新创建的集合的热度值大于次新创建的集合的热度值,并且各集合的热度值随距离最新集合的时间增长而降低。在判断时,将各个集合中出现当前数据的对象名对应的集合的热度进行相加,作为当前数据的热度值。可以理解的是,随着集合的删除和创建,在统计数据的热度值的时间段是固定不变的,即预设值个预设时间。因此,每个集合的热度值也在随着集合的删除、创建而改变,例如最新创建的集合的热度值为最高,而当下一个集合创建后,热度值就会降低。
73.为了便于理解,下面结合具体的使用场景进行说明。
74.例如,集合数目的预设值为4,从最早创建的集合到最新创建的集合的热度值依次为4,4,8,12。
75.可以理解的是,如果当前数据的对象名在最新集合和次新集合中出现,则当前数据的热度值为20。在统计出当前数据的热度值后,即可与阈值进行比较。可以看出,在该场景中,数据的最大热度值为28,因此,阈值的设置可以为7*k,其中,k为0到4的整数。例如,k为3,则阈值为21,因此,在最新集合和次新集合中出现的对象名对应的数据的热度值小于阈值,无法驻留。可以看出,如果k为0,则表示该数据只要在集合中出现即可驻留,而k为4时,该数据的对象名需要在每个集合中都出现才能驻留。
76.本实施例提供了一种具体的为当前数据定义热度值的方法,通过该方法实现将当前数据的历史出现次数、出现时间转化为热度值,从而进行热度值与阈值的判断。
77.缓存池的容量是有限的,并且是较小的,如果缓存池中驻留了过多的数据则会影响io速率。
78.因此,在上述实施例的基础上,在本实施例中,在将当前数据驻留在缓存池的步骤之后,还包括:
79.为当前数据定义热度属性值;
80.热度属性值随时间的增长而降低,随命中次数的增长而增长;
81.根据热度属性值将缓存池中的数据进行排序,每间隔第二预设时间将热度属性值最低的数据驱逐出缓存池,存入数据池。
82.在本实施例中,当前数据在驻留在缓存池时会被定义热度属性值,该热度属性值
代表该数据的使用情况。每个数据在驻留时都会被定义初始的热度属性值,本实施例提供的初始热度属性值为两个字节的最大值,65535,该热度属性值随着时间的增长而降低,随着命中次数的增长而增长。例如,时间每过1秒降低1,每命中一次增长1。为了减缓缓存池的数据量压力,根据热度属性值将缓存池中的数据进行排序,具体的,可以根据小根堆方法,将数据进行排序,每间隔第二预设时间将热度属性值最低的数据驱逐出缓存池,存入数据池。
83.本实施例提供的分布式存储方法,通过为驻留在缓存池中的数据定义热度属性值并进行排序,将热度属性值最低的数据驱逐出缓存池,存入数据池,实现对缓存池的数据容量的释放,提高io速率。
84.在具体实施中,根据缓存池中的数据量的多少,两次驱逐之间的时间间隔应当不同,因此,本实施例提供的分布式存储方法还包括:
85.根据缓存池中的数据量的变化速度和期望变化速度之间的误差调整第二预设时间,具体为比例系数倍的误差和积分系数倍的误差的积分项以及微分系数倍的误差的微分项的加和。
86.可以理解的是,积分系数越大,则缓存池数据量比例与期望比例之间的静态误差越小,但是缓存池数据量比例到达期望比例的时间越长。微分系数越大,缓存池数据量比例到达期望比例的时间越短,但是系统越不稳定,容易出现缓存池数据比例上下震荡的现象。所以比例系数和微分系数以及积分系数需要根据不同的用户io场景调整。需要说明的是,缓存池数据量的期望变化速度与缓存池数据容量成反比,当缓存池数据容量为设定的容量阈值的时候期望变化速度为0,当缓存池数据容量小于设定的容量阈值的时候期望变化速度为正值,反之为负值。
87.本实施例提供的分布式存储方法,根据缓存池中的数据量的变化速度和期望变化速度之间的误差调整第二预设时间,在缓存池中的剩余容量低时提高数据的驱逐速度,便于用户业务的进行。
88.在任务进行中,会存在缓存池中存有的是数据的最新版本,但是数据池中存有该数据的历史版本,此时缓存池中的该数据即为脏数据,需要回刷脏数据以更新数据池中数据的版本为最新版本。因此,在上述实施例的基础上,在本实施例中,在将当前数据驻留在缓存池的步骤之后,还包括:
89.根据缓存池的数据量调整缓存模式,将缓存池中的脏数据回刷至数据池,缓存模式包括回写模式、直写模式和绕写模式;
90.若缓存池的数据量小于第一阈值,则将缓存模式切换为回写模式;
91.若缓存池的数据量大于第一阈值且小于第二阈值,则将缓存模式切换为直写模式;
92.若缓存池的数据量大于第二阈值,则将缓存模式切换为绕写模式。
93.在本实施例中,会根据缓存池的数据量调整当前数据的缓存模式,例如当缓存池数据量与总容量的比例小于等于80%,缓存池的缓存模式为回写模式,该模式在数据满足驻留条件时,写io在缓存池完成后直接返回给客户端io结果,脏数据由单独的回写线程回刷到数据池。当缓存池数据量比例大于80%且小于等于90%,缓存池的缓存模式为直写模式,写io等待在缓存池和数据池都完成时返回给客户端io结果,若写io的对象在缓存池中
已经是脏数据,则写io在缓存池完成后直接返回给客户端io结果。当缓存池数据量比例大于90%,缓存池的缓存模式为绕写模式,写io跳过缓存池直接访问数据池。可以理解的是,在数据量较少时,回写模式能够提供更快的io速率,在数据量较多时,直写模式能够防止大量数据的丢失,在数据量极多时,绕写模式能提供更高的效率。
94.在上述实施例中,根据缓存池中数据量的不同情况,通过pid调节的方法对每两次驱逐之间的时间间隔进行调整,同样的,在本实施例中,也可以通过该方法对脏数据的回刷间隔进行调整,对此本实施例不再赘述。
95.在具体实施中,fdatasync线程会调用内核fdatasync接口将缓存池中的数据和数据池的数据存入非易失性存储介质中。在上述实施例的基础上,在本实施例中,还包括:根据获取的当前数据的数据量调整线程的使用间隔,以将缓存池中的数据和数据池的数据存入非易失性存储介质中。
96.本实施例提供的分布式存储方法,当前数据的数据量越多,则fdatasync线程的使用间隔越短,当前数据的数据量越少,则fdatasync线程的使用间隔越长。在数据量多时,通过频繁的调用fdatasync线程,防止磁盘故障时丢失大量数据,在数据少时降低fdatasync线程的调用频率,减少资源损耗。
97.在上述实施例中,对于分布式存储方法进行了详细描述,本技术还提供分布式存储装置对应的实施例。需要说明的是,本技术从两个角度对装置部分的实施例进行描述,一种是基于功能模块的角度,另一种是基于硬件的角度。
98.图2为本技术实施例提供的一种分布式存储装置的结构图,如图2所示,该装置包括:
99.获取模块10,用于获取当前数据。
100.第一判断模块11,用于判断当前数据是否在缓存池中命中。
101.第二判断模块12,用于若未命中,则判断当前数据是否满足驻留条件。
102.处理模块13,用于若满足,则将当前数据驻留在缓存池中;若不满足,则将当前数据保存至数据池。
103.由于装置部分的实施例与方法部分的实施例相互对应,因此装置部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
104.本技术实施例提供的分布式存储装置,在获取到当前数据后,先判断当前数据是否在缓存池中命中,若未命中,则判断当前数据是否满足驻留条件。若满足,则将当前数据驻留在缓存池中;若不满足,则将当前数据保存至数据池。相对于当前技术中,需要将数据池中的数据拷贝到缓存池中,导致数据存储效率降低的问题,采用本技术方案,将满足驻留条件的数据驻留在缓存池中,省去了拷贝的过程,缩短了io路径,同时,也避免了拷贝过程中io相互耦合,挤占大量内存和宽带资源的问题,提高了数据缓存的效率。
105.图3为本技术实施例提供的一种分布式存储系统的结构图,如图3所示,该系统包括:存储器20,用于存储计算机程序;
106.处理器21,用于执行计算机程序时实现如上述实施例分布式存储方法的步骤。
107.本实施例提供的分布式存储系统可以包括但不限于智能手机、平板电脑、笔记本电脑或台式电脑等。
108.其中,处理器21可以包括一个或多个处理核心,比如4核心处理器、8核心处理器
等。处理器21可以采用数字信号处理器(digital signal processor,dsp)、现场可编程门阵列(field-programmable gate array,fpga)、可编程逻辑阵列(programmable logic array,pla)中的至少一种硬件形式来实现。处理器21也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(central processing unit,cpu);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器21可以集成有图像处理器(graphics processing unit,gpu),gpu用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器21还可以包括人工智能(artificial intelligence,ai)处理器,该ai处理器用于处理有关机器学习的计算操作。
109.存储器20可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器20还可以包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器20至少用于存储以下计算机程序201,其中,该计算机程序被处理器21加载并执行之后,能够实现前述任一实施例公开的分布式存储方法的相关步骤。另外,存储器20所存储的资源还可以包括操作系统202和数据203等,存储方式可以是短暂存储或者永久存储。其中,操作系统202可以包括windows、unix、linux等。数据203可以包括但不限于热度值、热度属性值等。
110.在一些实施例中,分布式存储系统还可以包括有显示屏22、输入输出接口23、通信接口24、电源25以及通信总线26。
111.本领域技术人员可以理解,图3中示出的结构并不构成对分布式存储系统的限定,可以包括比图示更多或更少的组件。
112.本技术实施例提供的分布式存储系统,包括存储器和处理器,处理器在执行存储器存储的程序时,能够实现如下方法:
113.获取当前数据;
114.判断当前数据是否在缓存池中命中;
115.若未命中,则判断当前数据是否满足驻留条件;
116.若满足,则将当前数据驻留在缓存池中;若不满足,则将当前数据保存至数据池中。
117.最后,本技术还提供一种计算机可读存储介质对应的实施例。计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述方法实施例中记载的步骤。
118.可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本技术各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(randomaccess memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
119.以上对本技术所提供的分布式存储方法、装置、系统以及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同
之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
120.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1