过去十年,图计算无论在学术界还是工业界热度持续升高。相伴而来的是,全世界的数据正以几何级数形式增长。在这种情况下,对于数据的存储和查询的要求越来越高。因此,图数据库也在这个背景下引起了足够的重视。根据世界知名的数据库排名网站 DB-Engines.com 的统计,图数据库至 2013 年以来,一直是“增速最快”的数据库类别。虽然相比关系型数据库,图数据库的占比还是很小。但由于具有更加 graph native 的数据形式,以及针对性的关系查询优化,图数据库已经成为了关系型数据库无法替代的数据库类型。此外,随着数据量的持续爆炸性上涨,人们对于数据之间的关系也越来越重视。人们希望通过挖掘数据之间的关系,来获取商业上的成功,以及获得更多人类社会的知识。因此我们相信,天生为存储数据关系和数据挖掘而优化的图数据库会在数据库中持续保持高速增长。
本文旨在介绍 vivo 内部的特征存储实践、演进以及未来展望,抛砖引玉,吸引更多优秀的想法。
在当前整个行业及公司内部降本增效的大背景下,B站内部也在积极推进实时与在线业务资源的整合,往云原生架构迁移,统一资源池与调度,提升资源利用效率。不过面临的现实问题就是,不同业务场景下,资源的规格诉求不尽相同。在线的业务资源池,由于在线业务的属性,一般只具备很强的计算能力而基本不带存储以及io能力。Flink虽然是一个计算引擎,但是由于其stateful的特性,在很多计算场景下,对存储和io其实有比较强的诉求,因此实时的资源池,同时具备很强的存算能力。两种资源池的整合,必然面临兼容性问题,考虑到大数据整体的存算分离发展趋势,我们尝试对Flink进行存算分离的改造,核心工作就是statebackend的远程化。
茄子科技(海外 SHAREit Group)是一家全球化互联网科技公司,主要从事移动互联网软件研发与全球移动广告变现解决方案、跨境支付解决方案等互联网服务等业务。茄子快传(SHAREit)是茄子科技旗下的代表产品, 是一款一站式数字娱乐内容与跨平台资源分享平台,累计安装用户数近 24 亿。茄子科技作为一家出海企业,已经在东南亚、南亚、中东以及非洲等地区,打造了多款工具和内容的应用,并且在 Google Play 的下载榜上常年名列前茅。
LSMT,即Log-Structured Merge-Tree,这是一个经典的数据结构,在大数据系统中有着非常广泛的应用。很多耳熟能详的经典系统,底层就是基于LSMT实现的。早期的数据库系统一般都采用B-Tree家族作为索引,例如MySQL。2000年后诞生的数据库大多采用LSMT索引,例如Google BigTable,HBase等,是通过Append-only Write+择机ompact来维护结构的索引树。
patpatbear,携程软件技术专家,负责携程缓存内核的维护,热爱开源,专注于高性能、分布式NoSQL系统的建设和应用。
本文主要讨论一个问题:ValueState 中存 Map 与 MapState 有什么区别?
TiKV 推出了名为“partitioned-raft-kv”的新实验性功能,该功能采用一种新的架构,不仅可以显著提高 TiDB 的可扩展性,还能提升 TiDB 的写吞吐量和性能稳定性。
Flink 1.10 release 文档描述了一些比较重要的点,比如配置、操作、依赖、1.9 版本和 1.10 版本之间的区别,如果你准备将 Flink 升级到 1.10 版本,建议仔细看完下面的内容。
互联网产品中存在很多种类的数据,不同种类的数据对于存储系统的一致性,可用性,扩展性的要求是不同的。比如,金融、账号相关的数据对一致性要求比较高,社交类数据例如点赞对可用性要求比较高。还有一些大规模元数据存储场景,例如对象存储的索引层数据,对一致性,扩展性和可用性要求都比较高,这就需要底层存储系统在能够保证数据强一致的同时,也具有良好的扩展性。在数据模型上,有些数据比如关系,KV 模型足够用;有些数据比如钱包、账号可能又需要更丰富的数据模型,比如表格。
KeeWiDB,骨骼清奇,是万中无一的NoSQL奇才。现将KeeWiDB高性能修炼之路整理至此秘籍,见与你有缘,随KeeWiDB一同登顶吧! 创新性分级存储架构设计,单节点读写能力超过18万QPS,最高可线性堆叠至千万级并发吞吐量,同时兼容Redis协议,访问延迟达到毫秒级,新一代分布式KV存储数据库KeeWiDB在NoSQL江湖中脱颖而出。 由内而外深入探索其成长史,可从三个角度讲起,为并发而生的架构、量身“自”造的引擎以及新老硬件的加持。修炼的过程有点长,且听我娓娓道来。 江湖 · 风云涌动 随着web
Titan 是由 PingCAP 研发的一个基于 RocksDB 的高性能单机 key-value 存储引擎,其主要设计灵感来源于 USENIX FAST 2016 上发表的一篇论文 WiscKey。WiscKey 提出了一种高度基于 SSD 优化的设计,利用 SSD 高效的随机读写性能,通过将 value 分离出 LSM-tree 的方法来达到降低写放大的目的。
RocksDB 想必大家并不陌生,它是一款高性能的嵌入式KV数据库,是众多自研数据库背后的男人。
RocketMQ 最早诞生于淘宝的在线电商交易场景,经过了历年双十一大促流量洪峰的打磨,2016年捐献给 Apache 社区,成为 Apache 社区的顶级项目,并在国内外电商,金融,互联网等各行各业的广大客户落地验证,得到广泛认可。
随着 2.0 各版本的陆续发布,Nebula Graph 迎来了一系列的改动,在存储方面,影响最大的改动就是底层编码格式进行了修改。Nebula Graph 的底层存储是基于 KV 保存在 RocksDB 中,本文将介绍新老编码格式的差异,以及为什么要修改存储格式等一系列问题。
LotusDB 是一个基于 LSM Tree 进行设计,并结合 B+ 树优势的单机 KV 存储引擎,读写性能稳定、快速。
TiDB-Lightning Toolset 是一套快速全量导入 SQL dump 文件到 TiDB 集群的工具集,自 2.1.0 版本起随 TiDB 发布,速度可达到传统执行 SQL 导入方式的至少 3 倍、大约每小时 100 GB,适合在上线前用作迁移现有的大型数据库到全新的 TiDB 集群。
会保证每周不低于两篇更新,订阅方式见👉这里,欢迎喜欢我文章的朋友们的订阅支持,激励我产出更多优质文章。 RocksDB 是很多分布式数据库的底层存储,如 TiKV、CRDB、NebulaGraph 等等。在 DataDog 工作的 Artem Krylysov 写了一篇文章(原文链接:https://artem.krylysov.com/blog/2023/04/19/how-rocksdb-works/)来对 RocksDB 做了一个科普,通俗易懂,在这里翻译下分享给大家。
这篇文章将主要描述,如何使用我最近新开发的 WAL(Write Ahead Log)构建属于你自己的 KV 存储引擎。
本文主要介绍 TiKV 线程池性能调优的主要手段,以及 TiKV 内部线程池的主要用途。
传统上,无论是基于 MapReduce 的数据流,还是基于 Spark/Flink 的流水线,其数据的来源和最终落脚点都可以是分布式存储(比如 GFS、HDFS、S3)。
之前,我们开源了腾讯云数据库Tendis存储版,同时又对这个产品的适用场景、架构、特性和发展历程进行了分享。 而这次,我们还对Tendis存储版的技术特性进行深度解读。 进入公众号,后台回复“0120刘锐”,即可下载分享PPT。本文将主要分为简介,架构,和特性三个部分展开。 tendis存储版是一款支持redis协议,数据存放在磁盘的存储引擎。架构可以简单的分为三层,一个是tendis的server层,然后是rocksdb的引擎层,底层我们通常采用ssd来提高io速度,当然sata盘也是可以的。我们
写请求从TiDB传入到scheduler pool,scheduler pool负责协调并发写入的冲突;如果有多个写请求要写同一个KEY或者遇到锁的时候,scheduler pool通过latch来进行排队,成功获得latch的可以继续往下走传递给raftstore pool,其他写请求继续等待;
1. 当Sql进入TiDB时先获取Token,事务开始时获取Start TS (异步方式获取)
作者 | 蚂蚁链 LETUS 技术负责人 田世坤 写在前面 文字产生以前,结绳记事是人类用来存储知识和信息的主要方式。此后,从竹简、纸张的发明,到工业时代的磁盘存储,再到信息时代的数据库,存储方式不断革新,“存力”不断提高。 11 月 3 日,在 2022 云栖大会上,蚂蚁链历经 4 年技术攻关与测试验证的区块链存储引擎 LETUS(Log-structured Efficient Trusted Universal Storage)正式发布。 这一款面向区块链可信数据存储的技术产品,不仅用来解决
这是 JavaGuide 的「优质开源项目推荐」第 10 期,每一期我都会精选 5 个高质量的 Java 开源项目。今天要推荐的 5 个项目是:
在有赞早期的时候,当时只有 MySQL 做存储,codis 做缓存,随着业务发展,某些业务数据用 MySQL 不太合适, 而 codis 由于当缓存用, 并不适合做存储系统, 因此, 急需一款高性能的 NoSQL 产品做补充。考虑到当时运维和开发人员都非常少, 我们需要一个能快速投入使用, 又不需要太多维护工作的开源产品。 当时对比了几个开源产品, 最终选择了 aerospike 作为我们的 KV 存储方案。 事实证明, aerospike 作为一个成熟的商业化的开源产品承载了一个非常好的过渡时期 在很少量的开发和运维工作支持下, 一直稳定运行没有什么故障, 期间满足了很多的业务需求, 也因此能抽出时间投入更多精力解决其他的中间件问题。
在日常业务使用或运维管理 TiDB 的过程中,每个开发人员或数据库管理员都或多或少遇到过 SQL 变慢的问题。这类问题大部分情况下都具有一定的规律可循,通过经验的积累可以快速的定位和优化。 但是有些情况下不一定很好排查,尤其涉及到内核调优等方向时,如果事先没有对各个组件的互访关系、引擎存储原理等有一定的了解,往往难以下手。
随着云服务基础架构以及微服务技术的日益成熟,很多大型系统能够分解为根据应用 workload 需求的多个子系统,再通过网络交互组装在一起协同工作。 Nova-LSM,一个将基于LSM-Tree的分布式KV 存储系统分解为使用RDMA进行通信的组件的工作。这些组件将存储与处理分开,使处理组件能够共享存储带宽和空间。处理组件将文件块 (SSTable) 分散到任意数量的存储组件中,并通过一定机制平衡它们之间的负载,在运行时动态构建范围以并行化压缩并提高性能。Nova-LSM 具有很好的可伸缩性,在一些场景下性
第二章讲了上层抽象:数据模型和查询语言。本章下沉一些,聚焦数据库底层如何处理查询和存储。这其中,有个逻辑链条:
LSM-Tree(Log Structured Merge Tree)是数据库领域内较高效的key-value存储结构,被广泛应用于工业界数据库系统,如经典的单机kv数据库LevelDB、RocksDB,以及被诸多分布式NewSQL作为底层存储引擎。 本期将由腾讯云数据库高级工程师韩硕来为大家分享基于LSM-Tree存储的数据库性能改进,重点介绍近年来学术界对LSM-Tree的性能改进工作,并探讨这些改进措施在工业界数据库产品中的应用情况以及落地的可能性。以下是分享实录: LSM-Tree基本结构 LS
TiDB这个词,相信大家或多或少都曾经耳闻过,但是很多人觉得他是分布式数据库,自己的业务是使用mysql,基本使用不上这个技术,可能不会去了解他或不会去深入了解。最近一个月,基于实际业务的应用场景,从测试环境测试基础学习,到生产环境性能压测、高可用测试、故障测试等的学习,到今天TiDB终于完成了线上业务的承接使命,而这一切只是开始,而非终点;
RocksDB是Facebook的一个实验项目,目的是希望能开发一套能在服务器压力下,真正发挥高速存储硬件(特别是Flash存储)性能的高效数据库系统。这是一个C++库,允许存储任意长度二进制kv数据。支持原子读写操作。
tidb这个技术名词很多同学或多或少都曾经耳闻过,但是很多同学觉得他是分布式数据库,自己的业务是使用mysql,基本使用不上这个技术,可能不会去了解他。最近业务上有个需求使用到了tidb,于是学习了一下基本原理,会发现这些原理其实不仅仅局限于分布式数据库这一块,很多技术都是通用的,所以在这里写一下分享一下学习tidb的一些心得。
Nacos尽可能减少用户部署以及运维成本,做到用户只需要⼀个程序包,就快速单机模式启动 Nacos 或集群模式启动 Nacos。而 Nacos 是⼀个需要存储数据的组件,为实现目标,就要在 Nacos 内部实现数据存储。单机问题不大,内嵌关系型数据库即可;但集群模式就要考虑保障各节点间的数据⼀致性及数据同步,就得引入共识算法,通过算法保障各节点间的数据⼀致性。
Redis本身内容繁杂,要是上来就研究一细节点,如连接池、数据结构,虽可直接学到某个点的详尽源码内容,甚至尽快解决一些事故,但容易溺死在细节汪洋,无法整体把控Redis。
在上次的 nebula-storage on nLive 直播中,来自 Nebula 存储团队的负责人王玉珏(四王)同大家分享了 nebula storage 这块的设计思考,也解答了一些来自社区小伙伴的提问。本文整理自该场直播,按照问题涉及的分类进行顺序调整,并非完全按照直播的时间先后排序。
自2015年开始,手游从萌芽期发展到如今炙手可热的领域,发展的速度之快一定推动了背后技术的改革换新,传统的技术为了适应新时代的变化,也会不断进化,而Tendis的出现也让所有关注朋友们眼前一亮,那么,如何打造一款受欢迎的KV存储数据库? 5月22日08:50-18:00,3306π将集结多位行业专家,在广东广州天河区黄埔大道中322号粤大金融城国际酒店六楼平安厅与大家相约互动,点击「阅读原文」即可报名。 此次活动中,腾讯云数据库专家工程师,Tendis技术负责人陈福荣也将分享《如何打造一款受欢迎的KV存储
TiDB 集群的监控面板里面有两个非常重要、且非常常用的指标,相信用了 TiDB 的都见过:
Go生态圈有好几个K/V数据库,我们经常用它来做我们的存储引擎,但是这些数据库引擎的性能如何呢?本文试图用性能而不是功能的数据考察这些数据库,我测试了几种场景: 并发写、并发读、单一写并发读、并发删除,得出了一些有趣的数据。
Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。
本文会详细的介绍 TiKV 是如何处理读写请求的,通过该文档,同学们会知道 TiKV 是如何将一个写请求包含的数据更改存储到系统,并且能读出对应的数据的。
项目简介 Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口,可提供大容量、低成本、强持久化的数据库能力,适用于兼容Redis协议、需要大容量且较高访问性能的温冷数据存储场景。Tendis目前已经被应用到腾讯内、外部大型项目中。 集群架构 Tendis使用去中心化集群架构,每个数据节点都拥有全部的路由信息,用户可以访问集群中的任意节点,并且通过redis的move协议,最终路由到正确的节点。 每个Tendis节
Fusion-NewSQL是由滴滴自研的在分布式KV存储基础上构建的NewSQL存储系统。Fusion-NewSQ兼容了MySQL协议,支持二级索引功能,提供超大规模数据持久化存储和高性能读写。
Fjall 是一个可嵌入的基于 LSM 的 forbid-unsafe Rust 键值存储引擎。它的目标是成为一个可靠且可预测但性能优异的通用 KV 存储引擎,适用于小型数据集,尤其是大于内存大小的数据集。我刚刚发布了1.0版本,该版本稳定了其数据格式,适用于所有未来的1.x.x版本。
之前在 刷题攻略登上榜首这篇文章中说过,Carl不仅写了刷题攻略,还写了很多优秀的开源项目。
RocksDB项目是起源于Facebook,是一款作为各种存储介质上的服务器工作负载的存储引擎,最初专注于快速存储(尤其是闪存存储)。它是一个 C++ 库,用于存储任意大小的字节流的键和值。它支持点查找和范围扫描,并提供不同类型的 ACID 保证。
数据库调优可以使数据库应用运行得更快,但对于很多人来说,对数据库内核进行调优是一项很有挑战的“技术活”,是只属于少部分内核研发们的“游戏”。但即使是他们,对数据库内核进行性能调优,也充满了不确定性,它需要综合考虑各种复杂因素,如硬件层面的 CPU、 I/O、 内存和网络,以及软件层面关于操作系统、中间件、数据库参数等配置,还有运行在数据库上的各种查询和命令等。在本次 Hackathon 2021 比赛中,TPC 战队就完成了这一项“挑战”,采用 bottom-up 的设计思路,更好地利用硬件资源,使用 TPC (thread-per-core) 线程模型优化了 TiKV 的写入性能、性能稳定性和自适应能力。TPC 战队也凭借这一硬核项目一举斩获了三等奖与技术潜力奖。
Tendis是腾讯互娱CROS DBA团队 & 腾讯云数据库团队自主设计和研发的分布式高性能KV存储数据库,兼容Redis核心数据结构与接口。
领取专属 10元无门槛券
手把手带您无忧上云