【已结束】“我的 TiDB 听我的”第二季来袭——TiDB 5.0 需求全面征集

PD 加减节点需要滚动升级整体集群, 非常不方便,希望可以优化去掉滚动升级的步骤

  • 功能/改进说明 : tispark在对hadoop+tidb进行混合访问的时候,请增加对tidb表的权限控制机制
  • 为什么需要这个功能/改进 : 目前混和访问的时候是没有对TIDB表进行权限控制,默认访问所有的tidb表。在多业务共用集群的情况下,无法方便的进行权限隔离。
  • 其他数据库对应功能 : 无。
  1. 功能/改进说明 : index使用情况
  2. 为什么需要这个功能/改进 :业务一直在改变,有时候一些索引不再使用,想根据索引使用情况,删除冗余索引,为数据腾出一定的空间。
  3. 其他数据库对应功能https://dev.mysql.com/doc/refman/5.7/en/sys-schema-unused-indexes.html
  • 功能/改进说明 : 降低tidb对硬件的依赖
  • 为什么需要这个功能/改进 : tidb能否减少对硬件的依赖。
  • 其他数据库对应功能 : 无。
  • 功能/改进说明 : TiDB资源隔离
  • 为什么需要这个功能/改进 : 目前tidb/pd 单机多实例部署,没有隔离,会相互影响
  • 其他数据库对应功能 :无

好问题

  1. 功能/改进说明 :备份中增加同步(上游mysql,下游tidb,使用dm同步)进度信息
  2. 为什么需要这个功能/改进 :很多公司尝试使用tidb,基本还是以mysql为主作为tp业务库,然后使用tidb作为业务汇总库(tp、ap业务可能都有)。业务线数据库基本都会有很多套,这样使用dm同步mysql至tidb的同步任务就会有很多个。如果遇到tidb集群故障导致同步数据出现异常无法恢复,就可以使用备份重建tidb,然后使用备份中的同步位点信息,直接开启同步任务
  3. 其他数据库对应功能 :就像pt工具中xtrabackup备份mysql数据库一样,备份文件中包含当前库的binlog位点信息,也包含slave角色下的binlog同步位点信息
1 个赞
  1. 功能/改进说明:慢查询分析支持 pt_query_digest
    为什么需要:如果慢查询支持pt_query_digest,这样公司原有的mysql慢查询系统就可以无缝接入tidb的慢查询了

  2. 功能/改进说明:冷热数据分离

  3. 功能/改进说明:提升 TiDB 对 DDL 的兼容性

  4. 功能/改进说明:TiDB OOM 报警

  5. 功能/改进说明:show log 自动清理

1 个赞

增加 help 语法

  • 功能/改进说明 :更完善的 JSON 支持。实现 JSON Partial Updates; 总结 TiDB JSON 最佳实践,例如JSON 字符串长度多大时性能最好?能否实现类似 MongoDB 的文档存储能力?

  • 为什么需要这个功能/改进 :TiDB 天然的分布式特性,再加上易用性好、性能优秀的 JSON 支持,有助于应用开发人员基于 SQL 数据库实现优雅的半结构化数据存储。

  • 其他数据库对应功能 :MySQL 8.0 支持 MySQL Partial Updates

3 个赞
  • 功能/改进说明 :在线增加/修改主键的功能
  • 为什么需要这个功能/改进 :业务方刚开始接入的时候一旦写了自增主键,我们后续发现的时候,就只能让业务方重建表,重新写入数据,被吐槽的不行
  • 其他数据库对应功能 :Oracle/MySQL
5 个赞
  • 功能/改进说明 :支持 Lock tables 语句,提供表锁
  • 为什么需要这个功能/改进 :TiDB集群拆分/迁移场景下,需要在源端锁定待迁移表(LOCK TABLES t1 WRITE, t2 WRITE)阻止写入,等数据验证完毕写入流量迁移完毕后,再释放锁
  • 其他数据库对应功能 :MySQL的Lock tables

期待改善的一些点:

  1. 功能:
    • TiUP集成进DashBoard,对用户提供API,方便业务自建平台
    • DashBoard单独部署,不要占用集群性能,不依赖集群(集群挂掉依然可以进行诊断)
    • 完善下游Binlog方案
    • 提供表:数据、索引的占用空间,提高统计信息的准确度
  2. 稳定性提升:
    • region物理隔离:分裂、合并、调度需要扫描keys实现,耗费性能
    • 无差别的MVCC:读写放大、降低性能,GC会带来性能抖动
    • Compaction:性能抖动
    • 热点:降低热点对系统带来的影响(木桶效应,我们当前的木桶短板太低了)
    • 故障隔离:一个组件的宕机,理论上不应该影响整个集群的服务(比如PD切换Leader,会让QPS短暂掉底)
  3. 故障诊断:
    • 日志格式不统一,排查问题困难,希望能规范错误代码
    • SQL执行的全链路追踪
7 个赞

功能/改进说明:tidb 读写分离,可定具体的tikv节点做读服务,相应tikv节点可异步同步数据,接受可指定延迟。

3 个赞

1、 功能/改进说明: 更多的参数支持全局在线修改,比如:oom-action、mem-quota-query、slow-threshold 为什么需要这个功能/改进: 为了修改慢查询的阀值还需要重启tidb实例,这个有点。。。 其他数据库对应功能: Mysql可以在线修改慢查询阀值、innodb_buffer等

2、 功能/改进说明: tidb的慢日志支持pt-online-schema-change做分析入库,目前只支持分析,不支持入库 为什么需要这个功能/改进: 目前大家公司都有慢查询分析系统了,并且大部分都是基于pt-online-schema-change做分析入库的,tidb如果不支持还需要为tidb单独写一套分析入库的程序 其他数据库对应功能: 下面是pt_query_digest分析mysql慢日志并入库的功能 pt_query_digest –review h=$monitor_db_host,D=$monitor_db_database,t=mysql_slow_query_review
–history h=$monitor_db_host,D=$monitor_db_database,t=mysql_slow_query_review_history
–no-report --limit=0% --charset=utf8
–since “$last_analysis_time”
–filter="$event->{Bytes} = length($event->{arg}) and $event->{hostname}="$host" and $event->{client}=$event->{User} and $event->{user}=$event->{User} and $event->{db}=$event->{DB}" $slowquery_file

3、 功能/改进说明: drainer to kafka支持多个分区,可以按表的主键分区 为什么需要这个功能/改进: 一个分区的话消费端只能同时有一台服务器消费,一个是单独问题一个是并发问题 其他数据库对应功能: 无

4、 功能/改进说明: Tidb兼容更多的Mysql DDL操作,比如:字符集变更、int变varchar,varchar(100)变varchar(10)、 为什么需要这个功能/改进: 因为我们比较依赖DM做Mysql 到Tidb的同步,这些不兼容的话Task同步经常报错,需要投入很多精力处理 其他数据库对应功能: 无

5、 功能/改进说明: DM支持从monogdb同步数据到Tidb,并且支持全量、增量、全量+增量的方式 为什么需要这个功能/改进: 1、方便从MongoDB迁移到tidb,2、可以很方便的把MongoDB的数据接入tidb,在tidb上做多种数据源的分析 其他数据库对应功能: 阿里云开源的datax有这个功能,但是只支持全量迁移

2 个赞
  1. 功能/改进说明 :优化小表读取性能,小表指100万记录以下的数据表处理能力。
  2. 为什么需要这个功能/改进 :优化应用架构,其实小表在实际的应用中占比也是挺大的,而当前 TiDB 处理小表读取时间大约在100-400ms 之间,而 MySQ 远远小于100ms。
  3. 其他数据库对应功能 :MySQ 远远小于100ms
1 个赞

PD加减节点现在是可以不滚动升级集群的

1 个赞
  • 功能/改进说明 :TiKV支持日志最大保留天数或者日志最大个数
  • 为什么需要这个功能/改进 :不需要定期去清理TiKV的日志
  • 其他数据库对应功能 :大部分数据库都提供

1 个赞
  1. 功能/改进说明 :优化热表读取性能,提供数据缓存到内存的功能。
  2. 为什么需要这个功能/改进 :部分公共核心表被高频访问,目前是通过缓存到redis实现高性能访问。如果从tidb反复读取,性能差强人意。
  3. 其他数据库对应功能 :MySQ 远远小于100ms,redis访问更快。
1 个赞
  1. 功能/改进说明 :SQL提交后想取消,退出当前终端,无法准确找到并取消该查询
  2. 为什么需要这个功能/改进 :当DBA误操作使用select * 查询一个TB级别的表,无法正常kill掉而导致tidb-server出现OOM。如果是update或者delete语句还可能会出现数据污染的情况。
  3. 其他数据库对应功能 :MySQ 退出终端则SQL取消,tidb分布式事务可能需要考虑更加复杂的情况。