多线程环境下,读写锁是一种常用的同步原语,适用于多读者-多写者的经典问题;合理的使用可以在保证数据一致性的前提下,大幅提升读性能,但不合理的使用可能会导致死锁。本文从一次协程泄露问题入手,分析golang读写锁可能产生死锁的场景,希望读者可以避坑。
时光匆匆,【哔哩哔哩技术】公众号又与大家携手走过了充实的一年。2024年我们共精心打造了99 篇原创技术文章,全方位、多角度地剖析了各类前沿技术与实用业务应用。今天,我们特别挑选出 2024 年度广受好评的 20 篇文章,汇集成这份年度精选干货,邀您一同回顾那些闪耀着智慧光芒的技术瞬间,汲取宝贵的知识养分,激发新的灵感火花!
得物开放平台是一个把得物能力进行开放,同时提供给开发者提供 公告、应用控制台、权限包申请、业务文档等功能的平台。 面向商家:通过接入商家自研系统。可以实现自动化库存、订单、对账等管理。 面向ISV :接入得物开放平台,能为其产品提供更完善的全平台支持。 面向内部应用:提供安全、可控的、快速支持的跨主体通讯。 得物开放平台目前提供了一系列的文档以及工具去辅助开发者在实际调用API之前进行基础的引导和查询。 但目前的文档搜索功能仅可以按照接口路径,接口名称去搜索,至于涉及到实际开发中遇到的接口前置检查,部分字段描述不清等实际问题,且由于信息的离散性,用户想要获得一个问题的答案需要在多个页面来回检索,造成用户焦虑,进而增大TS的答疑可能性。
当前JDK的版本已经到了23了,不过最近的LTS版本是21,刚好最近准备把直播侧serverless应用的JVM环境升级到java21(目前是11),在升级前对21的特性做一个简单的了解和熟悉,下面是个人熟悉过程中的笔记,大家可以按照每一节特性中的代码自己在本地run下,可以更快地做个了解。 JDK的版本其实最近几年开始,已经是6个月一个版本了,LTS版本大概差不多间隔4-6个版本(不定),每次升级,都会有比较多的迭代,但是主要还是集中在几个方面:1. 新特性的支持,其实主要还是面向编写和阅读的自然语言化,做的新特性的提供或者语法糖的封装,突出易懂易用;2. 内部核心实现的性能或者能力的提升,感知比较多的是gc,或者是内部的hotspot的能力等;3. bugfix,漏洞修复等。 LTS版本还是值得去了解,有条件的话也是比较推荐在生产环境去做使用的,因为不管是上述哪个方面带来的提升,对开发以及系统运维来说,都是属于易得的红利。
从“先预估后分配”的判别式方法,到直接面向最终拍卖结果的生成式方法,生成式模型能否为在线广告的拍卖机制优化带来持续增量?本文介绍阿里妈妈展示广告机制策略团队在 AIGA(AI-Generated Auction)方向的前沿探索-生成式拍卖研究工作。
随风潜入夜,润物细无声,TencentOS 内核团队今年4月在 Linux 社区提交的2个 commit,在社区正式重视 Page Cache 问题前的几个月前,默默完成了 Bug 的修复并优化了性能。TencentOS 内核团队的 Patch 被公认为最佳修复, Linus Torvalds 更评价其"不明觉赞,祝顺利" 。本文将由浅入深解析底层原理,厘清问题来龙去脉。
随着B站业务的飞速发展,数据规模呈指数级增长,计算集群也逐步从单机房扩展到多机房部署模式。多个业务线依托大数据平台驱动核心业务,大数据系统的高效性与稳定性成为公司业务发展的重要基石。如图1,目前在大数据基础架构下,我们主要采用 Spark、Flink、Presto 以及 Hive 作为计算引擎支撑各类复杂业务场景需求,离线计算集群基本每天运行30+万左右的 Spark 作业,包括任务调度平台的 ETL 任务、Kyuubi 提交的 Adhoc 作业等,其作业的 Shuffle 数据规模能够达到30PB以上,同时单个作业的 Shuffle 量最大规模有几百TB。同时 Shuffle 算子作为大数据计算引擎中间数据处理最重要的算子,Shuffle 的稳定性关系着线上大量离线作业的可靠性和性能。因此,对于海量的 Shuffle 中间数据和复杂多变的计算环境来说,保证 Shuffle 数据处理的稳定性对线上作业的稳定性和运行效率尤为重要。
在当今飞速发展的时代,AI技术正不断渗透到我们生活的各个层面,深刻改变着传统的工作方式和生活模式。面对这一重大变革,我们不能被动观望或抗拒,而应积极拥抱AI,将其作为成长的助力。只有与AI协同发展,才能在这场技术革新的浪潮中立于不败之地,顺势而为才能事半功倍。