字节跳动数据库的过去、现状与未来

动手点关注 干货不迷路 👆

日前,字节跳动技术社区 ByteTech 举办的第四期字节跳动技术沙龙圆满落幕,本期沙龙以《字节云数据库架构设计与实战》为主题。在沙龙中,字节跳动基础架构数据库资深工程师张雷,跟大家分享了《字节跳动数据库的过去、现状与未来》,本文根据分享整理而成。

数据库技术一直是信息技术中极其重要的一环,在步入云原生时代后,云基础设施和数据库进一步整合,弥补了传统数据库的痛点,带来了高可扩展性、全面自动化、快速部署、节约成本、管理便捷等优势。

从 2018 到 2021 年,伴随业务和数据的迅猛增长,字节跳动的分布式数据库系统取得了令人振奋的发展。如下图所示,在这 4 年间,公司应用侧容器数量从 5 万个增长到了 750 万个,截至目前已经突破 1000 万。这 1000 万个容器筑成了字节跳动坚实的云原生基础设施,支撑着整个业务体系的发展。

从在线数据角度看,1000 万个容器构成了超过 10 万个微服务,这些微服务在线上运行期间会产生大量数据。在 2020 年,字节跳动的在线数据量级达到 EB 级;到 2021 年 5 月份,字节跳动数据库团队已支撑超过 10 EB 的存储规模。

6d5fb88d360398b0a1d2d0bee7bb397d.png

面对如此庞大的应用规模和数据规模,如何在数据库领域进行数据管理和数据治理,成了摆在数据库团队面前的巨大难题。而在字节跳动内部,数据库建设主要面临三大挑战:

业务种类繁多。以抖音为例,为了管理用户之间复杂的社交关系,同时根据用户点赞、关注等行为进行智能推荐,我们需要用图进行管理。再如抖音电商商城设计订单、库存等数据,这些信息适合用关系型结构化的结构表达。除此之外抖音还存在大量结构化和非结构化数据,如用户上传的图片、视频,这些信息适合用云存储、对象存储这样的系统来管理。

业务增速快,诉求不断变化。如上图所示,近 3 年内,字节跳动的数据量迎来了近 100 倍的增长,业务对数据的诉求也产生了一些变化。一开始客户只需要几 TB 或几十 GB 的数据,到一年两年后,他们就要求基础架构能应对数十 TB 甚至数百 TB 的数据量级。如何快速满足应用侧的数据容量需求、吞吐需求变化,是我们遇到的第二个挑战。

数据存量太多,成本居高不下。随着业务的快速发展,如何管理庞大的结构化和非结构化数据,并有效应对高昂的成本,对我们而言也十分具有挑战性。

字节跳动数据库的演进

字节跳动数据库经历了以下三个阶段:

20e1cc7c096304d4f6d38f195a048991.png

2015 - 2017 年:刀耕火种的石器时代。在这一阶段,字节跳动的业务量级比较小,主要的 App 是今日头条,因此数据库的实例大概在 1~2k 量级,产品主要以开源的 MySQL 和 MyRocks 为主,运维体系主要是依靠人工和脚本。

2018 - 2021 年:标准化、系统化。随着抖音的快速发展,字节的业务规模也迎来快速增长,达到数千套库和数万个数据库实例,原有产品体系已难以解决用户需求,因此我们引入了类似 MongoDB 等开源方案。此外,我们也从 2019 年开始研发云原生分布式数据库产品 veDB 。我们还更新了运维体系,由原来半自动化半人工的状态逐渐走向平台化,大大提升运营效率。

2021 年底至今:融合智能化。当前,字节跳动内部已经开始研发数据库的第三代产品技术体系。在未来几年内,我们预计公司业务规模会上升到数万套库、数十万数据库实例,因此在原有产品体系基础上,我们引入了 HTAP、Serverless DB、MemDB 等产品和技术,在运维体系上,也引入 AI 技术,使得运维更加智能化。

字节跳动数据库的“过去”

第一代数据库系统架构主要分三层,示意图如下:

04d96defd2c234de2b5c3739c1379c12.png
  • Application 层:前文提到的 1000 万个容器及其构成的 10 万个微服务都部署在应用层;

  • Proxy 层:代理层主要负责数据库的一些接入工作,比如鉴权、流量染色、流量分发等;

  • Database 层:这一层部署着数据库的一些实例,通过数据库的 Binlog 实现数据的同步、高可用。

整体来讲,第一代数据库系统架构以开源 MySQL 为主,通过分库分表中间件为用户提供较好的服务,以人工为主、脚本为辅进行运维。它主要存在以下三个问题:

  • 系统弹性较差。首先是容量难以得到灵活扩展,抖音这类 App 通常都由数万个微服务构成,当微服务的数据量从早期的数十 GB 发展到之后的数十 TB,我们不得不需要花费大量时间拆解原先的库;其次,吞吐量弹性不如人意,互联网行业经常会有春晚、电商促销等活动,我们需要提前进行扩容以应对流量洪峰,活动过后,数据库难以立即收缩,也需要团队花费时间搬迁大量数据;

  • 研发效率问题。在用户侧,从申请数据库到数据库上线,期间会经过漫长的讨论谈判,因此如何提高数据库的研发效率也是我们着重考虑的问题。此外,运维效率也有待提升——大量的拆库和合并工作会为研发带来不小的负担;

  • 综合成本偏高。第一代数据库系统架构为了 reserve CPU 和存储资源以应对流量洪峰和业务增长,早期 CPU 使用率十分低下,比如 MySQL 数据库的 CPU 使用率通常只有 10%,有些节点甚至长期在 5% 以下;存储空间也非常浪费,整个空间的利用率只有 20%-30%。

字节跳动数据库的“现在”

为了解决这三个问题,数据库团队开发了第二代数据库,围绕标准化和系统化构建了庞大的产品矩阵和运维平台。

1961d0bb150c032110b2ee35e8aa7dbe.png

如上图所示,当前字节跳动数据库体系呈现产品多样化、产品智能化两个特征,其中矩阵底层的 Inf-Brain 是数据库管理大脑,主要承担流量预测、熔断预测、智能参数调优等能力。上层各模块则是各细分产品,比如智能运维、分布式中间件、分布式缓存、KV、图等,也有云数据库方向的 veDB、HTAP 相关的一些技术。

veDB主体架构

veDB 自身即一个较大的产品矩阵。它除了提供 MySQL、PG、MongoDB,也在字节跳动内部研发扩展了 Elastic Search 服务,包括自研的、用于处理 TP/AP 相关事务的产品 HTAP。数据库团队在设计上采用了分层式架构,由高性能网络连接上层的数据库和底层的分布式存储引擎平台。

整个 veDB 的架构遵循的基本哲学是分离。

首先是计算和存储的分离。如下图所示,veDB 分为计算层和存储层,其中计算层又被拆分出负责数据库流量调度、接入、鉴权的代理层以及数据库计算层。计算层中是数据库的一些运行实例,它兼容 MySQL、PG 和 MongoDB 等数据库引擎,是无状态的,可以动态地在数据中心里做分布和调度。最下方是存储层,我们把数据库日志、数据库 Page 和对应的处理逻辑都卸载到里面,它支持 HDD、SSD、PM。

其次是日志和数据的分离。我们把数据库的 Wal 和 Page 放到不同介质里,来实现成本和性能之间的平衡。

第三是读写分离。我们最大可以支持一组 15 从的配比,当读流量比较大时,用户可以通过弹性扩充应对读的负载,这在字节跳动内部已经被大规模应用了。

83e9deff68b06ca1aa67e313db72275e.png

基于以上设计,veDB 呈现 6 大特点:

  • 灵活性强:veDB 基于 shared-storage 架构,实现了计算存储分离,业务方可以按需弹性使用存储容量,解决了存储成本比较高的问题;

  • 兼容性好:目前 veDB 基本上已做到 100% 兼容 MySQL 8.0 和 PostgreSQL 12,现已兼容 MongoDB 4.0;

  • 高可用性:存储层多副本,支持单 AZ/跨 3 AZ 强一致部署,既保持了灵活性,又解决了传统通过 Binlog 跨多数据中心异步复制带来的 RPO 无法等于 0 的问题;

  • 高性能:数据库团队做了大量优化工作,使 veDB 在高并发集群模式下的吞吐量 QPS 远超传统单机数据库;

  • 成本低:按需独立扩缩计算/存储,存储层高压缩比,把存储空间利用率从第一代系统的 20%-30% 提升到了现在的 70%;

  • 超大容量:单表 64 TB,并支持 PB-level 解决方案。

业务实践

在业务实践层面,数据库团队主要面对以下三种类型。

b0271bc7d4143233cb50288b5d5b78c8.png

第一类是容量型实例,比如电商某些订单虽然吞吐量不大,但数据量特别大,远超以往 2T-3T 的单机容量。基于第二代数据库系统,在计算存储分级之后,存储层可以无限扩容,使得用户无需担心数据库,只需聚焦业务开发。

第二类是 QPS 型实例。2021 年春晚,数据库团队支持了某中台的推送业务,目标用户量(设备)高达 10 亿级。最终我们的峰值吞吐量超过了 600 万 QPS,整体数据量也超过了 20TB。活动结束后,因为计算节点都是无状态的,且数据都放在共享存储层,我们轻松完成了节点下线,帮助公司节省了大量计算资源。

第三类是小型实例。字节跳动大部分线上实例都是小型实例,QPS 比较低,数据量也在 GB 级别,这类型的实例可以通过虚拟化、混部、容器等技术降低计算成本。在数据量层面,它们也可以通过共享存储空间降低整体存储成本。

字节跳动数据库的“未来”

未来数据库的情景预测

伴随业务的发展,我们预计在 2022 年以后,字节跳动的数据库规模会达到数万套库、数十万实例。如何更好地支持业务的发展,如何建立管理这数万套库的实力,成了我们下一代技术重点关注的话题——如前所述,在产品方面,数据库团队会持续推出更多产品和引入新技术,使得产品在种类和协议上能出现一定的融合;在运维方面,团队也会引入 AI 技术解决着力解决当前的痛点。

在谈及未来之前,首先我们可以回顾两个问题:

  • 数据库服务产品解决的问题是什么?

  • 数据库服务产品面临的新环境是什么?

对于问题一,在 2018 年,数据库团队面临的问题是业务需要多种类型的数据,但当时的产品无法提供相应支持;发展至今,现在字节跳动已拥有日渐丰富的数据库产品矩阵,我们的新挑战变成了如何帮助用户选择合适的数据库。

对于问题二,早期因为数据规模不大,数据库团队关注的是怎么保留一些存储、计算资源用于构建运营环境的运维体系;现在我们已经拥有百万级服务器规模,如何利用这些资源、在云环境下构建数据库产品的服务成了我们的新探索方向。

数据库管理领域的发展概览

368162f271d208aaf6212f2159d93a2d.png

如果我们回顾数据库技术领域的整体发展情况,不难发现这样的发展规律。

自 1980s DBMS 出现以来,IBM 等商业化公司在早期纷纷推出 OLTP 型数据库,这一时期数据库的典型特征是为了解决应用程序开发过程中管理数据的复杂性问题。随着时间的推移,1990s 企业开始出现大量数据分析型需求,比如银行报表,这催生了一个新的分支 OLAP。

到 21 世纪初,互联网行业迎来大规模爆发,OLTP 开始无法满足企业对于在线数据的一些管理诉求,OLAP 也难以管理离线分析、作业处理系统上的数据,加之商业化数据库和存储带来的巨大成本使企业难以承受,以 NoSQL 和 BigData 为代表的数据库革命正式爆发,无论是 Google 开源的 HDFS、Bigtable,还是 HBase、MongoDB,它们都旨在解决 OLTP 型数据库吞吐量、扩展性不足的问题。

到 2010 年,Google 开始大量使用 NoSQL 和 BigData 数据库系统,但很快它就发现了不少问题,比如 NoSQL 不支持事务且每个产品的 NoSQL 接口都不一样,这给应用程序迁移和学习带来了极大的成本,为此它又开发了 NewSQL 这一新分支。

整体来看,数据库在短短二三十年演进过程出现了大量分支,技术和产品也越来越复杂。到今天,大家又觉得这些东西太复杂,开始着手去做简化,比如 2015 年左右,AWS 结合 OLTP 和云原生发布了分布式数据库 Aurora,结合 OLAP 与云原生发布 Redshift,包括 BigData 也正与数据湖概念结合,衍生出一些新形态。

除此之外,近几年行业又开始流行 HTAP,把云、OLAP、BigData 做有机结合,使数据库既能处理复杂的 query,又能支持在线业务诉求。那么这样的三合一是不是未来的发展趋势呢?我们不知道。

数据库团队的两个观察和思考

数据库领域的技术和产品经历了从简单到复杂再到简单的过程,但如果审视做数据管理的真实初衷,恐怕大家的目标都是为了方便用户——而各种复杂分支恰恰让用户更难做技术选型。

我们能不能不要选择性地去解决一部分问题,而是构建一个大而全的系统去解决问题?我们能否为用户提供统一的数据管理服务?即使现在做不到,那我们能不能提供尽量少的数据管理服务,去简化研发人员的研发成本,包括用户的使用成本和学习成本?

基于以上思考,字节跳动数据库团队产生了两个重要的观察思考:

  • 应用场景方面的融合:提升用户效率,降低用户的接入和使用成本;

  • 基础设施层面的分离和整合:提升系统层面的效率,降低系统层面的成本,可以为用户让利。

首先是横向融合探索,简化业务应用数据管理体系。举个例子,过去构建一个微服务,数据层既要考虑在线数据,也会考虑离线数据,不可避免会涉及多种数据库及每种数据库下不同的表的管理,导致在线应用的复杂度较高。同时从在线数据生成到离线分析,数据的可见性通常会以天、小时、分钟级别计数。在数据 ETL 过程中,数据的 integrity 如何去保证,这也是一个非常大的挑战。

字节跳动数据库团队一直在尝试通过技术上的融合简化在线应用的数据管理,例如 veDB 正在探索把 MySQL、ES Protocols 的协议集成到数据库里,支持事务处理、分析查询、搜索等融合任务,使应用侧只需关注数据本身,无需关注数据和维护多种数据库。在事务处理层面,veDB 已经能做到数据可见性秒级,并且强一致,支持 snapshot 隔离级别。通过存储层的技术整合,veDB 也大幅优化了数据的存储成本,显著降低了数据冗余系数。

其次是纵向融合探索,重塑应用缓存和数据库边界。单体和微服务时代,用户在使用数据库时,需要在前面挂一个 Redis,因为数据库的吞吐量通常不能够做得很大,容易被过高的 QPS 打挂。当企业架构从单体时代发展到在线微服务时代,这种做法会带来大量缓存系统和数据库类型的复杂管理难题,因此我们希望通过一套系统重塑应用缓存和数据库,为用户带来便捷。比如我们正在 veDB 中做一些软件和技术硬件层面的探索,尽可能减少用户的数据管理成本和学习成本,同时消除用户 multi-tiering 数据流动管理,让用户聚焦业务逻辑,也帮助他们消除了原先数据与缓存不一致性等业界难题。

第三是分离和整合:新的变量、硬件和系统。除了用户层面一些应用场景的融合,我们也在公司基础架构体系内部看到了一些分离和整合的内容,比如软件、硬件和操作系统。下图左侧是数据库模块,从上到下分别是  SQL 层、事务层、缓存层和存储层;右侧则是云数据中心里应用的运行时环境,比如公司大部分微服务都跑在 K8s 上,硬件层面的新算力、新互联、新存储都在与时俱进地发生变化。

以算力为例,从只有 CPU 到发展到 CPU+GPU+DPU+FPGA,数据库团队一直在尝试把压缩、加密解密等复杂的、需要消耗算力的作业放到 FPGA 里去。当公司 CPU 算力从 96c 发展到 192c 甚至超过 300c,如何重塑数据库里的索引、事务处理也是我们要提前思考的问题。

4f126b42095fe1c53386af9771493ab2.png

第四是分离与整合:当前云数据中心的 building blocks。

总的来讲,数据库也是一种软件,当前我们能不能利用云中心里的硬件和运行时环境使数据库变得更强大、更弹性,也是一个重要方向。

数据库团队在软件、系统层面做了非常多的工作,比如把数据库 Severless 化,把数据库里的状态放到分布式的 Persistent Memory 构建的高性能存储引擎里,在存储层实现自动分层分级。通过这样,我们可以把计算层做得更加弹性。

以下图为例,有三个租户,其中租户 A 需要一些 MySQL 和 PG。我们可以把这些租户的数据库实例运行在容器中,动态地做计算资源调配,根据业务的高峰期和低谷期提供不同大小的数据库实例来实现弹性。在这种大一统运营模式之下,我们就可以摆脱以往独立物理机数量不足的窘境,利用公司百万级服务器实现算力复用。

24dea27cf10a125c9e21e2f82da4c2e2.png

未来,数据库团队会围绕应用场景层面的融合、纵向的技术整合以及硬件和系统的整合,重新构建云数据库,使它能够回归用户价值,帮助用户提升开发效率、运行效率和运营效率,降低学习和使用等各类成本。

字节跳动基础架构数据库&云存储团队

Database & Cloud Storage Team,服务于字节跳动全系产品。在这里,我们有丰富的云存储产品,负责治理数十 EB 级别的海量数据;有多种数据库产品,提供极致时延、超大吞吐的云原生数据库服务;有前沿的技术研究,探索新硬件与新软件架构的融合,打造下一代革命性的云存储与数据库产品。

9ef6b50a0499bb838c55483836cf4171.png

以上内容整理自第四期字节跳动技术沙龙《字节云数据库架构设计与实战》,获取讲师 PPT 和回放视频,请在公众号“字节跳动技术团队”后台回复关键词“0416”

相关推荐

2024 抖音欢笑中国年(五):Wasm、WebGL 在互动技术中的创新应用

前言随着 Web 前端技术的不断发展,越来越多的新兴技术方案被引入到 Web 开发中,其中 Wasm 和 WebGL 作为前端领域的两大利器,为开发者带来了更多的可能性。本文将结合2024 年抖音欢笑中国年的部分项目,重点介绍如何利用 Wasm 和 WebGL 对目前流行的一些前端互动技术(比如 Lottie、渲染引擎、动画图片等)进行创新和实践,利用 Wasm 和 WebGL 等新技术方案的特性...

字节跳动技术团队官方博客 2万+

2024 抖音欢笑中国年(四):渲染技术实践与探索

作者:陈瑞、欧阳浩铸、王武俊、倪梵云前言抖音在2024年春节期间推出了欢笑中国年系列活动,为用户带来了全新的体验和乐趣。而SAR Creator则为该项目研发工作提供了重要的技术支持。SAR Creator是一款基于 Typescript 的高性能、轻量化的互动解决方案,目前支持了浏览器和跨端框架平台,服务于字节内部的各种互动业务。这些绚烂多彩的互动场景当然也离不开实时渲染技术的支持,因此本文将专...

字节跳动技术团队官方博客 2万+

2024 抖音欢笑中国年(三):编辑器技巧与实践

前言本次春节活动中,我们大部分场景使用内部的 SAR Creator互动方案来实现。SAR Creator 是一款基于 TypeScript 的高性能、轻量化的互动解决方案,目前支持了Web和字节内部跨端框架平台,服务于字节内部的各种互动业务,包括但不限于抖音春节、抖音直播礼物、抖音UG活动等。SAR Creator 编辑器支持了图形化界面,提供了各类完善的系统(光照、动画、脚本等)供用户快速便捷...

字节跳动技术团队官方博客 1万+

2024 抖音欢笑中国年(二):AnnieX互动容器创新玩法解析

本文基于24年抖音春节活动业务背景,介绍了字节跨端容器AnnieX在游戏互动套件上的探索,致力于提升容器在游戏互动场景的优化能力。业务背景AnnieX作为字节一方游戏统一容器,服务字节内部电商、直播、UG等跨端场景业务。在字节一方游戏互动场景,有大量的一方游戏业务对容器有特定的流量、端能力和游戏优化的诉求。因此我们不断深入互动游戏业务特点,为字节游戏提供完善游戏端能力和流量运营能力,同时提供游戏互...

字节跳动技术团队官方博客 1万+

2024 抖音欢笑中国年(一):招财神龙互动技术揭秘

字节跳动旗下的抖音等 App 在 2024 年春节期间推出了欢笑中国年系列活动,在实现增长业务目标的同时,为用户带来了全新的体验和乐趣。「招财神龙」是其中的一个重要玩法。前言本次春节活动,使用到了字节内的主要前端、跨端、互动技术产品。主要涉及:跨端框架提供了首屏直出的方案使其具有较短的首屏时间,能够大大提升业务加载成功率。跨端框架也提供了 Canvas 作为 SAR Creator 等渲染引擎的...

字节跳动技术团队官方博客 1万+

Monorepo 解决方案 — 基于 Bazel 的 Xcode 性能优化实践

背景介绍书接上回《Monorepo 解决方案 — Bazel 在头条 iOS 的实践》,在头条工程切换至 Bazel 构建系统后,为了支持用户使用 Xcode 开发的习惯,我们使用了开源项目 Tulsi 作为生成工具,用于将 Bazel 工程转换为 Xcode 工程。但是在使用的过程中,我们发现了一些问题,其中影响较大的是,Xcode 工程卡顿:对于头条这种大型项目来说,Xcode 卡顿一直是本地...

字节跳动技术团队官方博客 1万+

抖音 ANR 自动归因平台建设实践

背景介绍本文在 2024 年初最新一期『抖音客户端基础技术大揭秘』技术沙龙活动中已做过专题分享,本次将内容重新整理文章进行分享。公众号后台回复技术沙龙可查看沙龙回放及 PPT~抖音作为一个超大型的应用,我们在 ANR 问题治理上面临着很大的挑战。首先对于存量问题的优化,由于缺少有效的归因手段,一些长期的疑难问题一直难以突破解决,例如长期位于 Top 1 的 nativePollOnce 问题。同时...

字节跳动技术团队官方博客 2万+

CVPR 2024 | CAMixerSR 动态注意力分配的超分辨率加速框架

背景随着相关技术和应用的发展,比如超高清屏幕、虚拟现实(VR)等沉浸式体验的增加,用户对超高分辨率图像和视频的需求变得越来越强烈。在这些场景中,图像的质量和清晰度对于提供最佳的用户体验至关重要。超高分辨率不仅能提供更清晰、更真实的视觉效果,还能在一定程度上增强人们的互动和沉浸感,在一些VR场景中我们需要8K甚至16K的才可以满足需求。然而要生成或者处理这些超高分辨率的内容,对算力的要求也是与日增长...

字节跳动技术团队官方博客 1万+

CVPR 2024 | Modular Blind Video Quality Assessment:模块化无参视频质量评估

无参视频质量评估 (Blind Video Quality Assessment,BVQA) 在评估和改善各种视频平台并服务用户的观看体验方面发挥着关键作用。当前基于深度学习的模型主要以下采样/局部块采样的形式分析视频内容,而忽视了实际空域分辨率和时域帧率对视频质量的影响,随着高分辨率和高帧率视频投稿逐渐普及,特别是跨分辨率/帧率视频转码档位画质评估场景中,这种影响变得更加不可忽视。在本文中,我们...

字节跳动技术团队官方博客 1万+

2024 AI & 前端:回首展望,光芒未至,破晓之前!

前言回望 2023 年,ChatGPT 的突然爆火,让 AI 无疑成为最为值得注目的新兴领域之一,我们也一起见证了生成式 AI 的寒武纪大爆发。这一年来,国内外的生成式 AI 、大模型和相关产品以令人眼花缭乱的速度更新迭代,新的创业浪潮风起云涌。在这 AI 浪潮下,也让我们有了新的开发思考,探索着在各个环节中“前端 & AI”的应用场景。勇于探索的前端开发者们已经开始挥舞着 AI 的“魔法...

字节跳动技术团队官方博客 1万+

Kotlin 云端差分缓存技术

本文由字节跳动 Buildinfra 团队出品。在我们的工程上线 Monorepo 全源码后,Kotlin 编译成了整个编译中最耗时的步骤,全源码过程中大量的 BuildCache Miss 导致我们的编译数据落后原来多仓二进制时代很多,且业界没有相关的解决方案。本篇文章我们来具体阐述下 BuildInfra 团队自研的解决方案 - Kotlin 云端差分方案的原理和技术实现。一、Monorepo...

字节跳动技术团队官方博客 1万+

字节跳动基础架构SRE-Copilot获得2023 CCF国际AIOps挑战赛冠军

近日,2023 CCF国际AIOps挑战赛决赛暨“大模型时代的AIOps”研讨会在北京成功举办,活动吸引了来自互联网、运营商、科研院所、高校、软硬件厂商等领域多名专家学者参与,为智能运维的前沿学术研究、落地生产实践打开了新思路。决赛中,从初赛两百多支队伍中脱颖而出的十支入围队伍分别展示了各自的方案,并进行了现场答辩,评审专家从选题方向、创新性、实用性、完整度和实验复现结果等多角度进行了综合评定,最...

字节跳动技术团队官方博客 2万+

字节跳动百万级Metrics Agent性能优化的探索与实践

背景metricserver2 (以下简称Agent)是与字节内场时序数据库 ByteTSD 配套使用的用户指标打点 Agent,用于在物理机粒度收集用户的指标打点数据,在字节内几乎所有的服务节点上均有部署集成,装机量达到百万以上。此外Agent需要负责打点数据的解析、聚合、压缩、协议转换和发送,属于CPU和Mem密集的服务。两者结合,使得Agent在监控全链路服务成本中占比达到70%以上,对Ag...

字节跳动技术团队官方博客 1万+

西瓜视频RenderThread引起的闪退问题攻坚历程

背景影响西瓜之前存在过一类RenderThread闪退,从堆栈上看,全部都是系统so调用,给人的第一印象像是一个系统bug,无从下手。闪退集中在Android 5~6上,表现为打开直播间立即闪退。该问题在2022年占据Native Crash Top5,2023年更是上升到到Top1。因此有必要投入时间和精力再重新审视一下这个问题。在历经多周的源码分析和排查后,逐步明确了问题根因并修复,最终取得了...

字节跳动技术团队官方博客 2万+

字节电商双11 大促容量保障是如何做的?

前言Rhino 简介Rhino是字节自研全链路容量评估产品,致力于构建完整的全链路容量评估解决方案(覆盖:容量预估->资源准备->数据准备->容量验证->监控->分析->决策->处理反馈);围绕容量在稳定性、成本、效率 三方面提供业务全方位基础支撑。Rhino 目前已经成为字节各业务容量评估主流解决方案,并且历年来在业务大型活动稳定性保障中(抖音春节项目、...

字节跳动技术团队官方博客 10万+

使用火山引擎 APMPlus 解决抖音Top 1 Java 崩溃的通用优化方案

背景近3个月,抖音 Android 版面临一个多次触发线上报警的崩溃问题,全量版本和灰度版本的异常数据激增,该问题不仅容易触发报警,更成为了 Java Top 1 崩溃问题,带来巨大困扰,急需攻坚解决。本文展现了具体的分析过程、优化思路和解决方案,同时提供了已集成该方案的实用工具。初步分析多维特征我们以某发版期间数据为例进行分析:机型方面:比较分散,有聚集部分samsung sm-s9180 占比...

字节跳动技术团队官方博客 2万+

用 Addon 增强 Node.js 和 Electron 应用的原生能力

前言Node.js Addon 是 Node.js 中为 JavaScript 环境提供 C/C++ 交互能力的机制。其形态十分类似 Java 的 JNI,都是通过提供一套 C/C++ SDK,用于在 C/C++ 中创建函数方法、进行数据转换,以便 JavaScript / Java 等语言进行调用。这样编写的代码通常叫做 Bindings。此外还有基于 C ABI Calling Convent...

字节跳动技术团队官方博客 2万+

火山引擎 ByteHouse 的增强型数据导入技术实践

作为企业数字化建设的必备要素,易用的数据引擎能帮助企业提升数据使用效率,更好提升数据应用价值,夯实数字化建设基础。数据导入是衡量OLAP引擎性能及易用性的重要标准之一,高效的数据导入能力能够加速数据实时处理和分析的效率。作为一款OLAP引擎,火山引擎云原生数据仓库ByteHouse源于开源ClickHouse,在字节跳动多年打磨下,提供更丰富的能力和更强性能,能为用户带来极速分析体验,支撑实时数据...

字节跳动技术团队官方博客 1万+

打造企业级智能问答系统的秘密:如何使用云数据库 PostgreSQL 版实现向量检索

本文就如何利用火山引擎云数据库 PostgreSQL 版和大语言模型技术(Large Language Model,简称 LLM),实现企业级智能交互式问答系统进行介绍。通过本文,你将会了解交互式问答系统的原理,学习 PostgreSQL 的向量化存储和检索技术,以及大语言模型交互技术等。背景在大数据的浪潮下,众多企业建立了自己的知识库,以便于信息检索和知识查询。然而,随着知识库内容的膨胀,传统的...

字节跳动技术团队官方博客 2万+

抖音大型直播的画质优化实践

面临挑战随着抖音内容生态的不断丰富,越来越多的大型赛事在抖音平台进行直播,世界杯/春晚/亚运会等各项赛事节目引来大量用户观看。卡塔尔世界杯期间,抖音提供的稳定高质直播画面为观众带来了完美的观赛体验,决赛的 PCU 高达 3700W+。不同赛事节目涉及链路众多,且不同赛事之间存在差异,如何保障各链路的画质稳定并进一步提升画质,是一个巨大的挑战。如何应对挑战?画质优化链路大型赛事直播涉及链路较长,不同...

字节跳动技术团队官方博客 2万+

抖音直播新一代BVC编码器正式亮相

面临挑战在直播行业发展如火如荼的今天,用户对视频体验的要求也水涨船高。视频基础体验的关键要素包括清晰度、流畅度、低延迟等,而这些要素的“第一性原理”,就是视频本身的编码效率,也就是压缩率。视频编码是整个技术体系的基座,编码效率的显著提升,能够在同等码率下极大提高画质,从而改善用户体验。视频编码效率的重要性不言而喻,但进一步地提升也并非易事,尤其在直播场景中,对编码速度、延迟、码率控制等方面都有很高...

字节跳动技术团队官方博客 7356

Go Metrics SDK Tag 校验性能优化实践

背景Metrics SDK 是与字节内场时序数据库 ByteTSD 配套的用户指标打点 SDK,在字节内数十万服务中集成,应用广泛,因此 SDK 的性能优化是个重要和持续性的话题。本文主要以 Go Metrics SDK 为例,讲述对打点 API 的 hot-path 优化的实践。用户在使用 SDK API 进行打点时,需要传入指标对应的 Tag:tags:=[]m.T{{Name:"foo...

字节跳动技术团队官方博客 1万+

云上智能驾驶三维重建最佳实践

智能驾驶技术的不断发展,正在改变着我们的出行方式和交通系统。作为其中的一个关键技术,三维重建在智能驾驶系统中起着重要的作用。除去车端本身的感知、重建算法,自动驾驶技术的落地与发展需要庞大的云端重建能力支撑,火山引擎多媒体实验室通过行业领先的自研三维重建技术,结合强大的云平台资源与能力,助力相关技术在云端大规模重建、自动标注、真实感仿真等场景的落地与应用。本文重点介绍火山引擎多媒体实验室三维重建技术...

字节跳动技术团队官方博客 6305

火山引擎实时、低延时拥塞控制算法的优化实践

摘要火山引擎智能拥塞控制算法 VICC(Volcano Intelligent Congestion Control)是一种自适应的拥塞控制算法,旨在解决全球不同网络环境下,不同音视频应用对带宽利用率和延时的差异化要求。它结合了传统拥塞控制算法(如 GCC 和 BBR)的优点,并且能够根据不同的网络条件、业务偏好和码率特征进行自适应调整,包括自适应拥塞响应速度、自适应带宽探测幅度、自适应丢包检测策...

字节跳动技术团队官方博客 6735

veImageX 演进之路:Web 图片加载提速50%

背景说明火山引擎veImageX演进之路主要介绍了veImageX在字节内部从2012年随着字节成长过程中逐步演进的过程,演进中包括V1、V2、V3版本并最终面向行业输出;整个演进过程中包括服务端、客户端、网络库、业务场景与优化等多个角度介绍在图像处理压缩、省成本与体验优化的经验与方案;本篇文章重点介绍在web端演进和提供的能力,图片是 Web 站点中的重要元素,图片体积、格式、分辨率以及渲染方式...

字节跳动技术团队官方博客 6589

自研多模态追踪算法 PICO 为「手柄小型化」找到新思路

作者:张韬、林泽一 、闻超 、赵洋研发背景作为头戴的追踪配件,VR手柄可以通过HMD(头戴显示设备)的inside-out光学追踪定位原理,计算出手柄的空间运动轨迹,同时结合6轴传感器实现6DoF空间定位。与此同时,结合手柄控制器的物理按键、马达反馈、摇杆等,用户还能获得逼真、细腻的触觉反馈,进一步增强虚拟现实人机交互的能力以及沉浸感,这也是目前无手柄方案所难以实现的。目前主流VR手柄的追踪技术方...

字节跳动技术团队官方博客 7816

如何利用播放器节省20%点播成本

点播成本节省的点其实涉及诸多部分,例如:CDN、转码、存储等,而利用播放器降本却是很多客户比较陌生的部分。火山引擎基于内部支撑抖音集团相关业务的实践,播放器恰恰是成本优化中最重要和最为依赖的部分。火山引擎的视频团队做了份数据统计,在一个很经典的视频业务中,我们在2022年至2023年大约1年半的时间里,针对这个业务进行了33次成本优化点,其中13次是播放器主导的优化,其余的有12次也是需要播放器强...

字节跳动技术团队官方博客 6176

火山引擎 ByteHouse:ClickHouse 如何保证海量数据一致性

背景ClickHouse是一个开源的OLAP引擎,不仅被全球开发者广泛使用,在字节各个应用场景中也可以看到它的身影。基于高性能、分布式特点,ClickHouse可以满足大规模数据的分析和查询需求,因此字节研发团队以开源ClickHouse为基础,推出火山引擎云原生数据仓库ByteHouse。在日常工作中,研发人员经常会遇到业务链路过长,导致流程稳定性和数据一致性难保障的问题,这在分布式、跨服务的场...

字节跳动技术团队官方博客 6900

抖音集团都在用的画质评估工具,确定不试试吗?

导读本文从抖音集团内部画质评估体系的建设历程着笔,主要分享了画质评测对于业务的重要性、主要应用场景和内部产品的一些典型实践案例。通过分享业务视角遇到的一些问题和我们的解决思路,希望能抛砖引玉,为遇到类似困扰的伙伴们提供有价值的参考。画质评估体系建设历程为何评测画质如此重要?我们通过线上业务大量实验发现,图片画质优劣对点击率、 停留时长等消费类指标有正相关影响,间接影响用户收益指标。因此,建设一套行...

字节跳动技术团队官方博客 7939

VLDB 2023 | CDSBen: 字节跳动 veDB 数据库存储系统性能测试模型

背景随着业务爆炸式增长与云原生技术的日渐成熟,大量云原生分布式数据库产品如雨后春笋般涌现,其中一部分主打 OLTP 场景的分布式数据库强调的是从计算-存储分离架构获得弹性收益;对于业界各种计算-存储分离架构的数据库而言,怎么用真实的端到端数据库 workload 去 benchmark 其底层存储系统一直存在以下难题:对于数据库专用存储系统,不存在如 fio 一样的“事实标准” benchmark...

字节跳动技术团队官方博客 5895
上一篇: Abase2:字节跳动新一代高可用 NoSQL 数据库
下一篇: 字节跳动智创音视频团队拿下 NTIRE2022 ESR 挑战赛主赛道冠军
 字节跳动技术团队
字节跳动技术团队 企业官方账号 企业官方账号
博客等级 码龄7年 8152粉丝 316原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值