Zetta 架构解析

技术发展的最终目标都要服务于价值,成本驱动技术进步。

事务的数据价值很高,大数据的数据价值密度相对较低,而 Serving 是基于中间的一个场景。Zetta 就是在这个价值密度条件下降低查询成本和使用成本的一个成本折中的产品。

知乎的 Zetta 希望成为 TiDB 生态伙伴,因为 TiDB 的生态,不仅是开放的,而且是成熟的。同时,Zetta 也希望可以在 TiDB 的生态里面成为 Serving 场景下的伙伴。优品拍拍   

在此之前,我们也有一些权衡,如下图,黑色部分是我们已经做了,橙色是我们正要做的,蓝色是我们现在计划去做的。

Zetta 可以选择一致性的级别,支持在强一致读和弱一致读的选择,当然这是根据业务场景来决定的。Zetta 还支持非事务,比如说它可以为了更极端的性能而放弃对事务的要求。另外,Zetta 在未来将会支持缓存读取这将带来性能的进一步提升。

在访问模式中,Zetta 支持宽列的模式。宽列就是一个特别宽的表,这个列是可以不断动态增加的,并且还可以选择高表模式或者宽表模式,这两种模式在物理上是不太一样的,但是在 Zetta 中可以设置。另外 Zetta 还使用了聚簇索引以提升性能,此外还有 Hash 打散。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SI(国际单位制)表是国际通用的计量单位表,用于表示各种物理量的单位。要在Linux上使用C语言实现SI表,您可以使用一个结构体数组来存储单位和其对应的符号和倍数。 以下是一个简单的示例代码,展示了如何实现SI表: ```c #include <stdio.h> // 单位结构体 typedef struct { char *symbol; // 单位符号 double multiplier; // 单位倍数 } Unit; // SI表 Unit si_table[] = { {"Yotta", 1e24}, {"Zetta", 1e21}, {"Exa", 1e18}, {"Peta", 1e15}, {"Tera", 1e12}, {"Giga", 1e9}, {"Mega", 1e6}, {"Kilo", 1e3}, {"Hecto", 1e2}, {"Deca", 1e1}, {"Deci", 1e-1}, {"Centi", 1e-2}, {"Milli", 1e-3}, {"Micro", 1e-6}, {"Nano", 1e-9}, {"Pico", 1e-12}, {"Femto", 1e-15}, {"Atto", 1e-18}, {"Zepto", 1e-21}, {"Yocto", 1e-24} }; int main() { int i; // 打印SI表 printf("SI表:\n"); for (i = 0; i < sizeof(si_table) / sizeof(Unit); i++) { printf("%s\t%.1e\n", si_table[i].symbol, si_table[i].multiplier); } return 0; } ``` 这段代码定义了一个名为 `Unit` 的结构体,它包含了一个表示单位符号的字符串和一个表示单位倍数的浮点数。然后,通过一个 `si_table` 的结构体数组,存储了SI表中的各个单位和倍数。 在 `main` 函数中,我们遍历 `si_table` 数组并打印出单位符号和倍数。 运行这段代码,您将得到SI表的输出结果。 请注意,这只是一个简单的示例,SI表还涵盖了更多的单位和倍数,您可以根据需要进行扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值