iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季
  • 386
分享到

TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季

摘要

互联网时代,从衣食住行到社交娱乐,几乎所有的业务都离不开数据库服务的支撑,可以说关系数据库是信息社会中最无可替代的基础设施。作为一个基石组件,数据库系统之所以有重要的价值,其本质的原因在于数据库系统提供事务支持。 数据库的本质其实就是做

TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季

互联网时代,从衣食住行到社交娱乐,几乎所有的业务都离不开数据库服务的支撑,可以说关系数据库是信息社会中最无可替代的基础设施。作为一个基石组件,数据库系统之所以有重要的价值,其本质的原因在于数据库系统提供事务支持。

数据库的本质其实就是做三件事:转账,记账,订票。但是天下没有免费的午餐,数据库系统实现之难,也在于实现可靠而高性能的事务引擎。

实现数据库的事务系统,也就意味着郑重承诺,我们系统能够支持:

原子性:转账不能部分成功部分失败; 一致性:系统约束必须保持; 隔离性:并发事务需要保证正确处理; 持久性:数据不能丢。 另外,系统的处理能力、吞吐量,或者说系统的运行成本,都直接决定于事务引擎处理速度和能力。

简而言之,数据库系统需要提供事务保证,而且要高效地处理并发事务。更大的挑战在于,如何在基于不可靠硬件的分布式环境下,实现可靠而高效的分布式事务,提供更强高效的 OLTP 处理能力。

我们在做什么?

TiDB 从一开始就定位于分布式的关系数据库,TiDB 架构组一直致力于 TiDB 事务引擎的架构设计和研发工作,不断解决分布式事务的各种挑战和难题,提升 TiDB 稳定性和 OLTP 处理能力,其中包括但不限于:

  1. 实现完整的基于 Percolator 论文的分布式事务引擎,确保分布式语境下事务原子性和一致性。将 TiDB、PD、TiKV 等分布式组件有效整合,实现基本的分布式事务原语,即两阶段提交的各个基本组成部分,对上层提供完整的事务语义接口;

  2. 并发事务的协调和处理,确保快照读取(Snapshot Isolation)的事务隔离级别。支持数据多版本(mvcC),实现数据历史版本的控制和清理;

  3. 协调事务处理资源使用,提升系统吞吐量和资源利用率,支持量级更大的事务处理能力(GB 级别)和并发控制,提供更佳的资源调度策略;

  4. 提供不同的加锁模型适配不同的业务场景,同时支持乐观和悲观锁的加锁模型,实现高效的优先级评估,等待唤醒,分布式死锁检测等机制;

  5. 尝试不同的提交策略,获取更好的事务处理性能,实现组提交、并行提交、一阶段提交等优化策略,提升系统响应能力和吞吐量,降低延迟;

  6. 处理分布式环境的各种异常(操作系统,磁盘,网络等),保障事务引擎的正确性和性能,实现分布式的容灾测试和异常测试,覆盖分布式环境下所有可能的异常分支,确保在各种异常情况下,分布式事务的正确推进和执行。

除此之外,架构组致力于探索新的事务和存储技术,包括但不限于:

  1. 更强大的日志模块,在实现分布式一致性协议,提供持久化保证的基础上,实现更好的性能和吞吐能力;

  2. 更强大 TiDB OLTP 处理能力,更好的复用执行计划,支持编译、向量化等执行方式,更友好的 cache 使用和更佳的指令执行效率等;

  3. 更前沿的存储技术,新的 lsm 存储引擎,新的索引结构、缓存策略和算法、新的冻结和合并处理机制等,提供更好的读写性能,以及更优的内存,磁盘空间利用率。

期待你的加入!

如果你对下面描述的任何一项,心有戚戚焉——

  • 对分布式技术充满热情,对于 CAP 理论、一致性协议有独到的理解,热衷于解决相关的挑战和难题;

  • 对于事务处理有较深的认识,对于传统数据库的事务、存储引擎实现有深入探究,对于事务异常,并发控制,隔离级别等有独到的理解;

  • 有存储引擎工作的相关经验,对于索引结构,缓存策略,文件系统等有实践经历;

  • 对于分布式执行,有创新的想法,深谙 OLTP 性能调优之道;

  • 对于操作系统,数据库有浓厚的兴趣,期待加入 Newsql 的浪潮。

**那么, 欢迎加入 TiDB Architecture Team!和我们一起挑战在不可靠的硬件环境下实现可靠的数据库服务的终极难题,打造新一代的海量数据存储系统,实现更低成本更高性能的分布式关系数据库服务。**这里是一个数据库技术和分布式技术的爱好者聚集地,高效快乐的工作的同时,你可以收获满满的个人成长,在基础核心技术领域遨游,尽情放飞想象力。

加入我们吧!

我们认为优秀的工程师或多或少有以下共同特质:

· A Quick Learner
· A- n Earnest CuriOSity
· Faith in Open Source
· Self-driven
· Get Things Done

如果你符合以上特质,欢迎进入招聘页面查看目前开放的工作机会:

https://www.pingcap.com/recruit-cn/join/#positions

简历投递通道:hire@pingcap.com

实习生:公司的各项福利和学习资源对实习生全面开放,更重要的是实习生还未毕业就有机会接触工业级项目,而且实习期间表现优异者将有机会获得校招绿色通道特权。针对实习时间并不充裕的小伙伴,你可以先通过 Talent Plan 丰富基础知识(https://university.pinGCap.com/talent-plan/),也可以通过参与 TiDB 开源社区获得更多实践机会!

伯乐推荐:如果你身边有符合以上要求的小伙伴,也可以找我们聊一聊,推荐成功就有机会获得伯乐推荐奖励。伯乐推荐邮件格式:[伯乐推荐] 候选人姓名-职位名称-推荐人姓名-推荐人手机号。

您可能感兴趣的文档:

--结束END--

本文标题: TiDB Architecture Team:挑战数据库的本质难题 | PingCAP 招聘季

本文链接: https://www.lsjlt.com/news/4600.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • mysql拒绝访问怎么办
    mysql 出现拒绝访问的原因和解决方法:权限问题:授予用户适当的数据库或表访问权限。防火墙或安全组:允许对 mysql 端口(3306)的入站连接。密码错误:重置 mysql 密码或使...
    99+
    2024-05-18
    mysql
  • mysql怎么比较日期大小
    mysql 中比较日期大小的方法包括:直接比较两个日期,使用 、= 运算符。使用 date_format() 函数将日期转换为字符串,然后比较字符串大小。使用 str_to_date()...
    99+
    2024-05-18
    mysql
  • mysql怎么加锁
    mysql中加锁是一种确保数据并发访问一致性的机制。加锁方式有:表级锁(对整个表加锁)和行级锁(对特定行加锁)。加锁类型有共享锁(允许读取但禁止修改)、排他锁(禁止读取和修改)和意向锁(...
    99+
    2024-05-18
    mysql 并发访问
  • mysql误删数据怎么恢复
    mysql误删数据可通过以下步骤恢复:停止数据库服务,防止数据覆盖。若开启binlog日志,可从中提取删除语句,再重新执行后将数据恢复。使用恢复工具修复表文件或恢复事务。从备份中恢复数据...
    99+
    2024-05-18
    mysql
  • 怎么判断mysql安装成功
    成功安装 mysql 的方法:检查命令行界面版本号;连接到 mysql 服务器,输入 "mysql -u root -p";创建数据库,输入 "create database test;...
    99+
    2024-05-18
    mysql linux macos 防火墙配置
  • mysql怎么修改表名
    如何修改 mysql 表名:检查当前表名:show tables;运行 rename table 语句:rename table 旧表名 to 新表名;验证更改:show tables;...
    99+
    2024-05-18
    mysql
  • mysql删除的表怎么恢复
    mysql 中已删除表的恢复方法主要涉及以下步骤:检查 binlog 日志以获取删除事务信息;使用数据恢复工具扫描数据库文件;从备份还原表数据;或联系 mysql 支持寻求帮助。 My...
    99+
    2024-05-18
    mysql 数据丢失
  • mysql复合主键怎么写
    在 mysql 中编写复合主键:在 create table 语句中使用 primary key 约束并列出字段名称。复合主键的好处包括提高查询效率、保证数据完整性和强制数据顺序。注意选...
    99+
    2024-05-18
    mysql
  • 怎么查看mysql数据库版本
    如何查看 mysql 数据库版本?连接到数据库并执行查询:select version();检查命令行或 mysql workbench 中的服务器属性。 如何查看 MySQL 数据库...
    99+
    2024-05-18
    mysql linux
  • 怎么检测mysql安装成功
    要验证 mysql 安装是否成功,请执行以下步骤:检查系统服务是否正在运行。使用 mysql 命令行工具连接到服务器。创建一个测试数据库并使用它。在数据库中创建一个测试表。插入测试数据并...
    99+
    2024-05-18
    mysql linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作