重要节点 在淘宝电商交易刚起步的时候,和现在的系统架构比,当时的业务架构相对来说是比较简单的。 在Tair诞生之前,我们内部有一个TDBM系统,这是一个独立的、单机缓存服务,容量是很有限的,所支撑的访问量也有限。最关键的是它是一个单点,在高可用上是没有的。所以在 2009 年的时候,开发
阿里云的内存数据库Tair经过多年演进,已经完整兼容了Memcache&Redis,还有一部分是我们的图引擎,兼容了开源的 Gremlin和Neo4j的 Cypher。我们还有一个支持标准 SQL 的引擎,这个我们用来作为高性能的实时数据处理。所以,我们今天 Tair 内存数据库的定义是一个
Redis的一些痛点 redis痛点 我们可以看一下左边跟右边的痛点为什么会是这样的情况? 其实总结下来就是开源的 Redis 在超多访问链接下,它的性能会下降。但是在容器化的时代下,应用的服务器变得越来越多,每一台应用它的访问连接数也会越来越多,几千上万是很常见的。 另外,在
电商方面: Tair在电商方面,主要是用做缓存与内存存储,一般就用在登陆系统、用户系统、商品系统、购物车、个性化推荐上面。 游戏方面: 游戏客户最重要的除了低延迟、弹性伸缩、高可用之外,还有备份回档、无感扩容。我们今天在主动扩容下,它的业务并不会掉线。这个是通过我们整体的集群
InnoDB逻辑存储结构 InnoDB逻辑存储结构层级:表空间->段->区->页->行 InnoDB逻辑存储结构 如上图所示,数据表有许多数据行,分别存储在16KB的Page上,把一定数量的Page整合为了一个Extent(默认是64个Page即共1M),而
表空间 磁盘部分包括各种表空间,包括系统表空间(System Tablespace)、独立表空间(File-Per-Table Tablespaces)、undo表空间(Undo Tablespaces)、通用表空间(General Tablespaces)、临时表空间(Temporary T
InnoDB内存结构详解 buffer pool buffer pool是InnoDB的缓存,用来存放各种数据,包括索引页(index page)、数据页(data page)、undo页、插入缓冲、自适应哈希索引(AHI)、innodb存储的锁信息、数据字典等。把磁盘上的数据加载到缓冲池
undolog undolog是InnoDB的日志,又称撤销日志文件,属于逻辑日志。undolog内存数据存储在buffer pool中,磁盘数据则存储在undo tablespace。 undolog保存类型为FIL_PAGE_UNDO_LOG在undo page中,一个undo pa
InnoDB两种持久化策略 InnoDB内存部分包括缓冲池(buffer pool) 和日志缓冲(log buffer),两者刷盘方式不同,前者走direct_io模式(直接绕过Page Cache来访问磁盘),后者走Page Cache模式(IO操作需要委托操作系统来完成)。 是否使用
MySQL中的XA协议 有一个名叫X/Open的组织提出了一个名为XA的规范。这个XA规范提出了2个角色: 一个全局事务由多个小的事务组成,所以我们得在某个地方找一个总揽全局的角色用于和各个小事务进行沟通,指导它们是提交还是回滚。这个角色被称作事务协调器(Transaction Coo
什么是图(Graph) 本文介绍的图和日常生活中常见的图片有所不同。通常,在英文中,为了区分这两种不同的图,前者会称为 Image,后者称为 Graph。在中文中,前者会强调为“图片”,后者会强调为“拓扑图”、“网络图”等。 一张图(Graph)由一些小圆点(称为顶点或节点,即 Vert
Nebula Graph 是一款开源的、分布式的、易扩展的原生图数据库,能够承载数千亿个点和数万亿条边的超大规模数据集,并且提供毫秒级查询。 Nebula Graph 1.1 Nebula 数据模型 图空间(Space):图空间是 Nebula Graph 中彼此隔离的图数据集合,
在生产环境中,为了保证服务的高可用和高性能,通常会以集群的方式部署 Nebula Graph。 机器规划 在 3 台服务器上都部署 Graph 服务、Meta 服务和 Storage 服务,这 3 个服务是 Nebula Graph 的核心组件。在 ydt-net–nebula1 服务器
Nebula Graph Studio 是一款可以通过 Web 访问的图数据库开源可视化工具,搭配 Nebula Graph 内核使用,提供构图、数据导入、编写 nGQL 查询、图探索等一站式服务。 前提准备 在安装 Nebula Graph Studio 之前需要确保安装版本为 v10
Nebula Dashboard 是一款用于监控 Nebula Graph 集群中机器和服务状态的可视化工具。 监控集群中所有机器的状态,包括 CPU、内存、负载、磁盘和流量。 监控集群中所有服务的信息,包括服务 IP 地址、版本和监控指标(例如查询数量、查询延迟、心跳延迟等)。
Nebula Exchange 是一款 Apache Spark 应用,用于在分布式环境中将集群中的数据批量迁移到 Nebula Graph 中,能支持多种不同格式(CSV,JSON,Parquet,Neo4j, MySQL 等等)的批式数据和流式数据的迁移。 接下来将用一个示例说明如何使用
对于.NET系的老铁们,相信对 SQL Server 数据库已经很熟悉了。我们平时可能干的最多工作就是CURD了,但有的时候我们也需要对数据库做一些管理工作,比如升级版本。 最常见的场景就是需要将本地环境中的 SQL Server 数据库版本和生产环境的版本保持一致,这样方便我们进行bug排查
什么是索引 索引是创建在表上的,帮我们快速检索数据的一种数据结构。 索引的分类 主键索引:表设立主键之后会自动创建一个主键索引,innodb引擎里面主键索引是聚簇索引 普通索引:普通索引也就是单值索引,只包含一个列,一个表可以有多个普通索引 唯一索引:索引列的值是
最近在给大家做模拟面试和简历优化,其中发现很多人一看到什么千万级数据之类的面试题就会腿软。 也许有些人没遇过上千万数据量的表,也不清楚查询上千万数据量的时候会发生什么。 今天就来带大家实操一下,这次是基于MySQL 5.7.26做测试 准备数据 没有一千万的数据怎么办?
在处理庞大的数据库时,请尝试这些方便的解决方案,以解决常见的问题。 关系型数据库 PostgreSQL(也被称为 Postgres)已经越来越流行,全球各地的企业和公共部门都在使用它。随着这种广泛的采用,数据库已经变得比以前更大了。在 Crunchy Data,我们经常与 20TB 以上的数