- 博客(23)
- 收藏
- 关注
转载 性能极致优化
我们在落地过程发现社区版本envoy延迟、资源消耗较大,在一些大扇出复杂场景下,流量劫持带来的延迟上涨接近5ms,cpu消耗占比20%以上,无法满足厂内在线业务高吞吐、低延迟场景。我们分析evnoy底层模型,本质原因是envoy 是一个单进程多线程的libevent线程模型,一个event-loop只能使用一个核,一个回调卡住就会卡住整个线程,容易产生高延时,导致吞吐长尾控制能力比较差。我们基于envoy扩展接口扩展envoy的网络模型&线程模型,引入brpc底层高性能的bthread协程模
2021-06-10 18:51:03 562
转载 落地service mesh实际过程中,面临以下几大挑战
低侵入:百度大大小小有上百个产品线,模块数量级达到万级别,实例数达到百万级别,如何让业务在不改代码前提下无缝迁移,低侵入接入是我们在设计方案考虑第一要素;· 高性能:百度核心产品线在线服务对延迟要求极高,比如推荐、搜索等核心产品线,延迟上涨几毫秒会直接影响用户的体验和公司收入,从业务角度不能接受接入mesh后带来的性能退化。因此我们在落地过程中,投入很大精力来优化mesh的延迟,降低接入mesh后的性能损耗;· 异构系统融合:首先我们需要解决厂内多语言框架互通问题,其次需要统一接口和协议,打通厂内多
2021-06-10 18:48:24 172
转载 service mesh解决什么问题?
为彻底解决当前业务服务治理的痛点和问题,我们引入了service mesh,基本思路解耦治理能力和框架,治理能力下沉到sidecar。内部联合多个部门通过合作共建方式建设通用的service mesh架构, 提供通用的基础稳定性能力和统一的流量控制接口。我们期望service mesh在厂内业务落地解决什么问题?总结为两点:1、基础稳定性能力的关键组件– 为微服务提供通用的基础故障容错能力、基础故障检测能力、统一的干预和控制接口;2、流量治理的核心系统– 实现各产品线整体的连接托管、全局流量..
2021-06-10 18:46:40 162
转载 高级架构能力无法多语言、多框架复用
如某产品线近2年发生数次雪崩case,底层依赖的php、golang等框架需要重复建设来定制动态熔断、动态超时等高级能力,而这些能力在其他rpc框架已支持;如常用架构降级、止损能力各个产品线重复建设,接口方案差异大,从运维层面,运维同学期望基础的架构止损能力在不同产品线之间能够通用化,接口标准化,降低运维成本;2.架构容错能力治理周期长,基础能力覆盖度低随着混沌工程全面落地,对架构能力有了更高要求。多数模块对单点异常,慢节点等异常缺乏基础容忍能力,推动每个模块独立修复,成本高,上线周期长。如
2021-06-10 17:58:31 71
转载 Zetta的未来
第一个是让 Zetta 本身的性能提升,另外是功能上的提升。 第二个是知乎会拓展更多的应用,推广 Zetta 在知乎的场景,同时能够形成一些最佳实践。 第三个是要去拓展场景。我们现在可能专注于在线上做一些事情,后面会慢慢去找到适合大数据的场景的使用案例作为最佳实践。 最后,Zetta 希望在未来可以与 TiDB 进行整合,希望 Zetta 能够成为 TiDB 的生态伙伴。 ...
2021-06-10 17:56:27 58
转载 创作者中心
另外,创造者中心服务也应用了 Zetta。创作者中心是一个展示创作者数据的服务。原来创作者中心的核心数据全部都在 HBase 上,现在通过迁移,数据从原来HBase 里面 NoSQL 表,实现了从 HBase client切到 MySQL client 的改变。现在,查询的代码可以写的非常清楚,每次查询就是一个 SQL。而在 HBase 里面,这个表非常复杂。所以这样带来两个好处,首先是性能上有所提升,其次也代码更加清晰明了。切换后,服务的延迟降低了,同时也消除了延迟的抖动。...
2021-06-10 17:53:51 2050
转载 搜索高亮数据
知乎搜索框的搜索高亮数据的服务,它本来是使用一个名叫 Ignite 的分布式数据库,在使用 Zetta 代替后,延迟的时间大幅降低。同时,除了性能的提升外,运维的难度降低了,再也不需要有专门的运维人员去管理 Ignite 数据库了。...
2021-06-10 17:52:34 61
转载 Zetta 在知乎的应用
Zetta 的投入使用后,给服务的使用方和提供方都带来了非常大的收益。使用方得到了非常大的性能提升。不仅服务的延迟下降了,响应的时间稳定了,并且实现了降低服务成本和物理成本的目标。而对于服务的提供方来说,不再需要去考虑其他的组件,只需要维护好 Zetta 和 TiKV 集群,极大降低了维护的成本,同时所需资源成本也大幅降低。除此之外,因为 TiKV 社区非常活跃,开发人员在遇到问题时可以第一时间进行反馈,并且社区会进行修复,一直持续地改进 TiKV。这样 Zetta 便与 TiDB 生态产生了良性的
2021-06-10 17:50:53 108
转载 架构架构图概览
下面是 Zetta 的架构图。第一个核心是 TableStore 的 server,它的底层存储是 TiKV,但是知乎团队重新设计了数据的结构,包括表映射 KV 的方法等等。重点说一下接入层,接入层本身是没有状态的,为了提升易用性,Zetta 和上层接入层是通过 grpc 进行通信的。但是对于用户来说,暴露 grpc 接口也不好,上层的数据对用户来说不够友好。易用性是通过 MySQL 或者 HBase 的方式将数据映射到 Zetta 上面去,同时也支持数据模型。为了做到低延迟,Zetta 实现了
2021-06-10 17:49:02 162
转载 Zetta 架构解析
技术发展的最终目标都要服务于价值,成本驱动技术进步。事务的数据价值很高,大数据的数据价值密度相对较低,而 Serving 是基于中间的一个场景。Zetta 就是在这个价值密度条件下降低查询成本和使用成本的一个成本折中的产品。知乎的 Zetta 希望成为 TiDB 生态伙伴,因为 TiDB 的生态,不仅是开放的,而且是成熟的。同时,Zetta 也希望可以在 TiDB 的生态里面成为 Serving 场景下的伙伴。在此之前,我们也有一些权衡,如下图,黑色部分是我们已经做了,橙色是我们正要做的,蓝色是
2021-06-10 17:46:45 298
转载 在docker中快速使用各个版本的PostgreSQL数据库
PG安装方法很多,和MySQL类似,给用户提供很大的选择空间。如:RPM包安装(在线、离线)、源码编译安装、系统自带、二进制、NDB安装等。https://www.postgresql.org/https://yum.postgresql.org/rpmchart.phphttps://yum.postgresql.org/11/redhat/rhel-6-x86_64/repoview/postgresqldbserver11.group.htmlhttps://www.postgresq
2021-06-07 17:06:49 535
转载 程序员必须清楚的 10 个高级 SQL 概念!
1.常见表表达式(CTEs)如果您想要查询子查询,那就是CTEs施展身手的时候 - CTEs基本上创建了一个临时表。使用常用表表达式(CTEs)是模块化和分解代码的好方法,与您将文章分解为几个段落的方式相同。请在Where子句中使用子查询进行以下查询。SELECT name, salary FROM People WHERE NAME IN ( SELECT DISTINCT NAME FROM population WHERE country = "Canada" AND ci
2021-06-07 16:59:28 72
转载 混淆电路(Garbled Circuit)
混淆电路是一种密码学协议。图灵奖得主姚期智院士在1982提出著名的Yao's Millionaires' Problem,并给出了基于混淆电路的解决方案。该问题是Alex和Bob在无可信第三方,且不告知对方财富值的情况下比谁更富有。其原理为:所有可计算的函数问题都可转换为不同的电路,由加法电路、乘法电路、移位电路、选择电路等表示。而电路本质上由门(gate)组成,逻辑门包括与门、非门、或门、与非门等。混淆电路把这些门进行加密和打乱来掩盖信息。Alice用密钥加密门的真值表并打乱后输出给Bob。Bob
2021-06-07 16:57:26 1211 1
转载 联邦计算核心技术
为联合打通数据孤岛,解决参与方的数据安全可信隐私保护问题,广义的联邦计算**「Federated Computing」实现方案包括:以密码学为核心的MPC多方安全计算「Secure Multi-Party Computation」,以及硬件可信执行环境TEE「Trusted Execution Environment」**。...
2021-06-07 16:55:39 1328
转载 联邦计算在百度观星盘的实践
在数百万不同的智能手机上部署联邦学习,其本质是移动模型,而非移动数据。为避免用户隐私泄露,联邦学习不需要在云端存储用户数据。智能手机下载当前版本的模型,通过学习本地数据来改进模型,并把模型改进增量加密发送到云端,与其他用户的更新即时整合为共享模型,所有的训练数据仍然在各终端用户的设备中,用户数据不会在云端保存。在国际隐私数据条例(GDPR等)趋严的形势下,以Google为代表的ToC业务(如输入法)开辟了一个全新的思路。国内,联邦学习在产业界延伸至ToB领域,解决ToB AI的困局:隐私保护与数据孤岛问
2021-06-07 16:53:51 56
转载 五行代码实现千万类别分类网络,飞桨大规模分类库揭秘
再一次感慨科技带来的便利的同时,你是否思考过这一神奇“魔法”背后的技术。自然界中花的种类多达45万种,存在的生物种类更是有近亿种之多。你是否想过,如何利用近年来火到爆棚的人工智能技术实现物种的分类和识别?这背后涉大规模图像分类技术。 图像分类技术日趋成熟,ResNet网络在ImageNet数据集上的top5准确率已超过96%。然而,如何高效地完成百万类别甚至是更大规模的分类任务,则是一个极具挑战性的课题。 先从多分类神经网络的实现角度分析,其最后一层通常是由全连接层和Softmax构
2021-06-04 22:22:16 70
转载 漫谈图形引擎中的材质系统
图形引擎通常需要支持不同的渲染效果,一个优秀的材质系统通常要支持多Pass渲染管线和自定义Shader模板,由于渲染效果的复杂多样性会导致Shader数量大幅增加,这样会造成Shader文件冗余,因此材质系统要提供一套Shader复用的机制。同时,市面上各硬件厂商对图形API的支持程度不同,受限于硬件水平的差异,材质系统也要兼容中低高端硬件。综上所述,通用材质系统需要满足以下需求: 多Technique:材质中包含多个实现方案,这样在进行高中低端机适配或实现不同材质效果时,我们可以方便进行
2021-06-04 22:17:55 70
转载 联邦计算在百度观星盘的实践
众所周知,数据是AI技术的燃料,更多高质量的数据意味着可以训练出更好性能的业务模型。随着IT移动化步伐地迈进,互联网数据被割裂为一个个孤岛,制约AI发展的一个瓶颈是保护用户数据隐私和打破不同主体之间数据孤岛的问题。随着移动设备性能的强化,4G/5G的兴起普及,在移动终端上进行模型训练变得可行。2016年,Google团队发布了一篇论文:Communication-Efficient Learning of Deep Networks from Decentralized Data。自此,产业界联邦学习(「F
2021-06-04 22:15:37 229
转载 开源中间件技术支持
寻开源技术专家做长期技术支持的合作,某银行系统使用大量开源中间件,目前使用运行正常,在运行过程中可能有需要做技术支持和维护,希望邀请精通各类开源中间件的技术专家做长期合作。希望合作专家精通其中某一个开源中间件即可, 合作模式: 1、签订年度服务合同,按月支付额定的基础服务费用,在服务年度内对所支撑的开源中间件进行远程技术支持; 2、在服务合同基础上按服务次数进行服务,每次或每天5000元-10000元(现场技术问题排查或培训)。 具体工作内容包括: 1、远程技术支持
2021-06-04 22:12:51 161
转载 自动网络搜索AutoDL之PaddlePaddle实现
本项目是百度大数据实验室(BDL)分层神经架构搜索项目(HINAS)自动发现的模型,利用深度增强学习完成设计。系统由两部分组成,第一部分是网络结构的编码器,第二部分是网络结构的评测器。下载安装命令## CPU版本安装命令pip install -f https://paddlepaddle.org.cn/pip/oschina/cpu paddlepaddle## GPU版本安装命令pip install -f https://paddlepaddle.org.cn/pip/oschina
2021-06-04 22:10:09 231
转载 Tapdata 数据库实时同步的技术要点
在数据库同步场景下,Tapdata 支持批量及增量的数据迁移及同步。Tapdata 主打的是实时场景,所以在数据库增量同步上是一个关键能力。目前 Tapdata 支持的数据源,基本上都支持增量同步。大部分场景下 Tapdata 通过解析数据库日志的方式来获得源端数据库的增删改操作,然后将这些操作转化为标准的数据库事件,推送到内部处理队列。优品拍 数据同步流程 那么,Tapdata 是怎么样来做数据同步的呢? 第一层的数据同步是基于CDC机制,也就是说它并不是用一个 Sele.
2021-06-04 22:08:19 69
转载 线程和并发问题
协程旨在简化异步执行的代码。对于 Android 运行时的协程,lambda 表达式的代码块会在专门的线程中执行。例如,示例中的斐波那契运算:// 在后台线程中运算第十级斐波那契数someScope.launch(Dispatchers.Default) { val fibonacci10 = synchronousFibonacci(10) saveFibonacciInMemory(10, fibonacci10)}private fun synchronousFibo..
2021-06-04 22:05:31 33
转载 Rust 大展拳脚的新兴领域:机密计算
云原生时代,Go 语言凭借其原生支持高并发等特性,一跃成为云原生基层设施建设首选语言,荣登各大编程语言排行榜前列,成为用户增长最快的新兴编程语言之一。而相比之下,同样以取代 C/C++为目的被创造出来的另一门新语言 Rust 在很长一段时间里则不温不火,陷入“叫好不叫座”的尴尬境地。幸运的是,随着云原生浪潮逐渐进入下半场,企业和用户对数据的安全性有了更高的要求,“可信原生”与“机密计算”等数据安全新概念被业界提出,并吸引了大批软硬件巨头入场布局,也让 Rust 这门注重内存安全的高性能编程语言迎来了
2021-06-04 22:03:43 77
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人