- 博客(299)
- 收藏
- 关注
原创 分布式块存储系统Ursa的设计与实现1
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:38:11
766
8
原创 分布式块存储系统Ursa的设计与实现2
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:38:08
1040
7
原创 分布式块存储系统Ursa的设计与实现3
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:38:06
622
7
原创 分布式块存储系统Ursa的设计与实现4
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:38:03
1071
3
原创 分布式块存储系统Ursa的设计与实现5
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:59
1107
1
原创 分布式块存储系统Ursa的设计与实现6
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:55
1114
原创 分布式块存储系统Ursa的设计与实现7
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:51
908
原创 分布式块存储系统Ursa的设计与实现8
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:38
829
3
原创 分布式块存储系统Ursa的设计与实现9
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:34
927
1
原创 分布式块存储系统Ursa的设计与实现10
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:32
1053
1
原创 分布式块存储系统Ursa的设计与实现11
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:27
605
1
原创 分布式块存储系统Ursa的设计与实现12
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:22
808
2
原创 分布式块存储系统Ursa的设计与实现13
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:13
732
2
原创 分布式块存储系统Ursa的设计与实现14
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:09
902
1
原创 分布式块存储系统Ursa的设计与实现15
引言云硬盘对IaaS云计算平台有至关重要的作用,几乎已成为必备组件,如亚马逊的EBS(Elastic Block Store)、阿里云的盘古、OpenStack中的Cinder等。云硬盘可为云计算平台带来许多优良特性,如更高的数据可靠性和可用性、灵活的数据快照功能、更好的虚拟机动态迁移支持、更短的主机故障恢复时间等等。随着万兆以太网逐渐普及,云硬盘的各项优势得到加强和凸显,其必要性变得十分强烈。云硬盘的底层通常是分布式块存储系统,目前开源领域有一些此类项目,如Ceph RBD、Sheepdog。另外
2025-01-11 17:37:04
713
3
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍1
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:33:17
892
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍2
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:33:10
738
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍3
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:33:06
635
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍4
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:33:03
850
1
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍5
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:33:00
849
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍6
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:56
698
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍7
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:52
944
4
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍8
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:49
721
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍9
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:45
780
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍10
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:41
958
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍11
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:36
950
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍12
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:33
803
2
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍13
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:29
806
1
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍14
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:26
608
4
原创 高级语言(Java\Python\Php)的编译:链接及装载过程介绍15
这里我们看到了nm命令的输出默认有三列,其中最左边的一列是变量的相对地址,中间的一列表示变量所在的段的类型,右面表示变量的名字。我们在C源码文件部分曾经提到过,变量和函数的声明本质上是给编译器一个承诺,告诉编译器虽然在本文件中没有这个变量或者函数定义,但是在其他文件中一定有,所以当编译器发现程序需要读取这个变量对应的数据,但是在源文件中找不到的时候,就会把这个变量放在一个特殊的段(段类型为 U)里面,表示后续链接的时候需要在后面的目标文件或者链接库中找到这个变量,然后链接成为可执行二进制文件。
2025-01-10 21:32:21
673
2
原创 Kafka文件存储机制那些事10
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:30:10
1004
1
原创 Kafka文件存储机制那些事1
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:30:00
776
2
原创 Kafka文件存储机制那些事2
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:57
877
原创 Kafka文件存储机制那些事3
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:55
620
2
原创 Kafka文件存储机制那些事4
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:52
1015
4
原创 Kafka文件存储机制那些事5
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:50
1018
8
原创 Kafka文件存储机制那些事6
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:47
699
1
原创 Kafka文件存储机制那些事7
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:37
595
3
原创 Kafka文件存储机制那些事8
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:33
550
原创 Kafka文件存储机制那些事9
在Kafka文件存储中,同一个topic下有多个不同partition,每个partition为一个目录,partiton命名规则为topic名称+有序序号,第一个partiton序号从0开始,序号最大值为partitions数量减1。从上述图3可知这样做的优点,segment index file采取稀疏索引存储方式,它减少索引文件大小,通过mmap可以直接内存操作,稀疏索引为数据文件的每个对应message设置一个元数据指针,它比稠密索引节省了更多的存储空间,但查找起来需要消耗更多的时间。
2025-01-09 21:29:30
621
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅