基于ClickHouse的Billions2.0日志方案上线后(B站基于Clickhouse的下一代日志体系建设实践),虽然能够降低60%的存储成本,但仍然存在几个比较明显的问题,需要进一步的优化和解决。
在哔哩哔哩海外市场,视频上传是创作者最重要的功能之一,也是创作者对平台忠诚度和满意度的重要影响因素之一。然而,2022年Q3,产品负责人在海外对创作者进行线下访谈的过程中,发现超过50%的创作者对上传体验不满意,主要反馈有两个方面:上传速度慢、上传进度长时间卡住。这些问题严重影响了创作者的上传效率和体验,甚至导致了部分创作者放弃上传或者转投其他平台。 为了优化上传体验,提升视频上传成功率,我们于2022年Q4季度针对海外创作端上传链路进行了专项治理。但在实施之前,我们分析了面临的几方面问题和挑战: 缺少技术数据来分析具体问题,导致我们无法准确定位问题点和优化方向 东南亚相对于国内较弱的网络环境和机型环境,导致了上传链路上存在很多不稳定因素 如何在有限的人力资源下,平衡业务需求和技术需求,让产出最大化。 为了解决这些问题和挑战,我们从数据、产品、技术三个维度组织了一系列的工作
AI算法复杂度逐年上升,需要高效的方式支持AI模型的推理和部署。 随着应用规模的扩大,算力资源消耗也在快速增长,对线上资源产生极大的压力。 B站AI涉及计算机视觉(CV)、自然语言处理(NLP)、语音等多个场景,服务于内容安全审核、内容理解和创作的上百个应用场景。
从主站业务角度来看,关系链指的是用户A与用户B的关注关系。以关注属性细分,以关注(订阅)为主,还涉及拉黑、悄悄关注、互相关注、特别关注等多种属性或状态。目前主站关系链量级较大,且还以较快速度持续增长。作为一个平台型的业务,关系链服务对外提供一对多关系点查、全量关系列表、关系计数等基础查询,综合查询峰值QPS近百万,被动态、评论等核心业务依赖。 在持续增长的数据量和查询请求的趋势下,保证数据的实时准确、保持服务高可用是关系链架构演进的核心目标。
直播互动玩法,早在2014年就曾有人在Twitch平台进行尝试,在这一类玩法中,直播间观众可以通过弹幕指令共同操纵主播的游戏内容,在国内被称为“弹幕互动玩法”。 2021年H2,随着修勾夜店在B站的爆火,直播弹幕互动玩法如雨后春笋般出现,直播技术团队也开始了对互动开放技术体系的探索。 2021年底,直播开放平台立项,旨在基于B站的内容生态和直播技术,面向行业开发者开放核心直播技术能力,打造用户、创作者和平台多方共赢的开放生态。 2022年H1,围绕直播间互动玩法和游戏化互动场景,直播开放平台迅速落地,提供了直播间数据开放、API支持、SDK支持、定制化支持等技术服务,为直播互动内容生态建立了坚实的基础。 本文主要介绍直播技术团队在互动开放生态演进道路上的经验与思考。
在过去一年的时间里,B站离线平台资源调度侧的主要挑战有两个方面: 1) 随着业务的不断增长,离线集群规模快速膨胀,用户对资源的需求在持续增大,主集群长期处于Pending较高的状态,资源需求超过交付量 2) 出于降本增效的考虑,消解Pending的方法不能仅靠物理机的增加了,而是需要在物理机整体数量不变的基础上通过超卖来提升集群整体的资源利用率。 为了应对上述挑战,调度侧在向内与向外两个方向上进行了积极的探索。“向内”聚焦于单台物理机,通过超配的方式不断提高单台物理机的利用率,使得单台节点能够处理更多的任务;“向外”与云平台部门合作,共同探索混部技术的落地,到目前为止,已经完成了离线超配,离在线混部、在离线混部等集群建设以及潮汐混部的技术实现,使得不同集群间的资源能够被更充分地调动。 为此我们自研了组件Amiya,旨在解决大数据集群资源缺口问题,自上线后较好的完成了Yarn离线集群以及在离线混部集群资源超配的工作。以离线主集群为例,目前5000多台NodeManager所在的节点已完成了Amiya的部署。在Amiya开启后,为Yarn额外提供了约683TB的可申请Memory
动态综合页比较容易因为高热事件,引起大量用户持续消费feed流,导致线上拉取动态时间线feed流接口快速飙升至平时峰值2~3倍以上而大量超时,较多用户无法正常消费其feed流。从监控上发现outbox(用户发件箱)服务依赖的redis集群大量实例CPU使用率皆超过了95%甚至达到100%(如图1)。因此,瓶颈在于outbox redis集群压力太大,无法扛住过大的高热流量。而痛点在于redis集群无法高效快速扩容,因此,我们遇到此类情况通常只能被迫降级限流,以防情况进一步恶化。
领域驱动设计作为一种设计思维方式从被提出到现在,社区也不断丰富了领域事件,事件溯源,CQRS等设计元模型。随着个人对领域驱动设计的理解不断深入,结合自身在项目中的实践经验,以目前bilibili OGV的业务为例通过领域驱动设计的分析设计建模方法,试图说明领域驱动设计的统一过程和思考方式,本篇文章只包含问题域分析,没有提及架构,设计模型和编码层面的内容。文章通过对价值需求分析方法,获取问题领域相关利益者,在相关利益者的基础上通过分析业务需求的业务流程和业务场景,在业务需求分析结果的业务流程图和业务用例图基础上,通过领域识别和划分得出领域划分结果领域映射图让问题领域变的清晰。
最近AIGC的爆发引发了非常多行业的恐慌也包括程序员群体。如何掌握工具例如Copilot等是下一个时代最重要的能力。但是在当前苹果封闭的生态下,对于先进的生产力的渴望也是促使这篇文章诞生的原因。 Xcode是苹果的用于研发苹果软件生态的集成研发环境(IDE)相信作为苹果最强生态的iOS研发应该完全不陌生。这个让人又熟悉又陌生的老兄弟跟着iOS的辉煌也已经快20岁了,笔者差不多是从3.x年代开始使用Xcode研发iOS 3.x的而这15年唯一不变的可能就是在商店里糟糕的评分和社区中不怎么好的口碑。