vivo 数据库备份恢复系统演化

1 月 2 日
阅读 11 分钟
182
vivo互联网领域拥有的数据库组件分别为 MySQL、MongoDB、TiDB 等,其中MySQL集群占比绝大部分,  MongoDB 集群占比小部分, TiDB 集群占比更小。为了介绍方便,本文把改造前的数据库备份恢复系统称为旧备份恢复系统,改造后的数据库备份恢复系统称为新备份恢复系统。我们将从旧的架构系统开始,发现其不足,慢慢的优化形...

Bigkey问题的解决思路与方式探索

2022-11-22
阅读 6 分钟
840
在Redis运维过程中,由于Bigkey 的存在,会影响业务程序的响应速度,严重的还会造成可用性损失,DBA也一直和业务开发方强调 Bigkey 的规避方法以及危害。

如何实现一个SQL解析器

2022-10-24
阅读 14 分钟
1.1k
随着技术的不断的发展,在大数据领域出现了越来越多的技术框架。而为了降低大数据的学习成本和难度,越来越多的大数据技术和应用开始支持SQL进行数据查询。SQL作为一个学习成本很低的语言,支持SQL进行数据查询可以降低用户使用大数据的门槛,让更多的用户能够使用大数据。

HBase海量数据高效入仓解决方案

2022-03-15
阅读 2 分钟
1.4k
现阶段部分业务数据存储在HBase中,这部分数据体量较大,达到数十亿。大数据需要增量同步这部分业务数据到数据仓库中,进行离线分析,目前主要的同步方式是通过HBase的hive映射表来实现的。该种方式具有以下痛点:

分布式数据库排序及优化

2022-03-07
阅读 4 分钟
1.7k
一、背景1.1 分布式数据库架构当前分布式数据库架构有不少,但是总体架构相差不大,主要组件都包含协调节点、数据分片、元数据节点、全局时钟。一种常见的分布式架构如下图:gtm :全局事务管理器(全局时钟),一主多备;catalog: 元数据管理,一主多备;group: 水平分片,每个group由一主多备数据存储节点组成;proxy : ...
封面图

vivo数据库与存储平台的建设和探索

2022-01-25
阅读 8 分钟
1.3k
本文根据Xiao Bo老师在“2021 vivo开发者大会"现场演讲内容整理而成。公众号回复【2021VDC】获取互联网技术分会场议题相关资料。

2021年vivo互联网技术最受欢迎文章TOP25

2022-01-11
阅读 5 分钟
2.2k
岁月流转,时光飞逝,转眼2021年已经画上句号。过去一年,vivo 互联网技术共推送了107篇文章,涉及服务器、前端、数据库等技术。今天小编就带大家回顾一下2021年我们最受欢迎的25篇文章(根据阅读量和点赞筛选)。1《MongoDB在评论中台的实践》随着公司业务发展和用户规模的增多,很多项目都在打造自己的评论功能,而评...
封面图

Redis线程模型的前世今生

2021-11-30
阅读 13 分钟
2k
众所周知,Redis是一个高性能的数据存储框架,在高并发的系统设计中,Redis也是一个比较关键的组件,是我们提升系统性能的一大利器。深入去理解Redis高性能的原理显得越发重要,当然Redis的高性能设计是一个系统性的工程,涉及到很多内容,本文重点关注Redis的IO模型,以及基于IO模型的线程模型。

深入剖析Redis客户端Jedis的特性和原理

2021-11-02
阅读 23 分钟
2.4k
Redis的Java生态的客户端当中包含Jedis、Redisson、Lettuce,不同的客户端具备不同的能力是使用方式,本文主要分析Jedis客户端。

你分库分表的姿势对么?——详谈水平分库分表

2021-10-25
阅读 11 分钟
2.2k
提起分库分表,对于大部分服务器开发来说,其实并不是一个新鲜的名词。随着业务的发展,我们表中的数据量会变的越来越大,字段也可能随着业务复杂度的升高而逐渐增多,我们为了解决单表的查询性能问题,一般会进行分表操作。
封面图

Redis大集群扩容性能优化实践

2021-10-18
阅读 12 分钟
3.6k
某些业务对Redis集群访问时延比较敏感,例如现网环境对模型实时读取,或者一些业务依赖读取Redis集群的同步流程,会影响业务的实时流程时延。业务侧可能无法接受。
封面图

Percolator模型及其在TiKV中的实现

2021-09-22
阅读 8 分钟
3.1k
Percolator是Google在2010年发表的论文《Large-scale Incremental Processing Using Distributed Transactions and Notifications》中提出的一种分布式事务解决方案。在论文中该方案是用来解决搜索引擎的增量索引问题的。
封面图

带你走进MySQL全新高可用解决方案-MGR

2021-08-31
阅读 13 分钟
7.6k
相信很多人对MGR这个词比较陌生,其实MGR(全称 MySQL Group Replication 【MySQL 组复制】)是Oracle MySQL于2016年12月发布MySQL 5.7.17推出的一个全新高可用和高扩展的解决方案。具备以下特性:

十亿级流量下,我与Redis时延小突刺的战斗史

2021-06-22
阅读 14 分钟
3.1k
某一日收到上游调用方的反馈,提供的某一个Dubbo接口,每天在固定的时间点被短时间熔断,抛出的异常信息为提供方dubbo线程池被耗尽。当前dubbo接口日请求量18亿次,报错请求94W/天,至此开始了优化之旅。
封面图

MongoDB 在评论中台的实践

2021-03-01
阅读 4 分钟
7.2k
随着公司业务发展和用户规模的增多,很多项目都在打造自己的评论功能,而评论的业务形态基本类似。当时各项目都是各自设计实现,存在较多重复的工作量;并且不同业务之间数据存在孤岛,很难产生联系。因此我们决定打造一款公司级的评论业务中台,为各业务方提供评论业务的快速接入能力。在经过对各大主流 APP 评论业务的...

SpringBoot 2.0 中 HikariCP 数据库连接池原理解析

2021-01-26
阅读 8 分钟
3.7k
作为后台服务开发,在日常工作中我们天天都在跟数据库打交道,一直在进行各种CRUD操作,都会使用到数据库连接池。按照发展历程,业界知名的数据库连接池有以下几种:c3p0、DBCP、Tomcat JDBC Connection Pool、Druid 等,不过最近最火的是 HiKariCP。

MySQL 5.6.35 索引优化导致的死锁案例解析

2021-01-25
阅读 8 分钟
5.8k
随着公司业务的发展,商品库存从商品中心独立出来成为一个独立的系统,承接主站商品库存校验、订单库存扣减、售后库存释放等业务。在上线之前我们对于核心接口进行了压测,压测过程中出现了 MySQL 5.6.35 死锁现象,通过日志发现引发死锁的只是一条简单的sql,死锁是怎么产生的?发扬技术人员刨根问底的优良传统,对于这...

Canal 组件简介与 vivo 帐号实践

2020-12-07
阅读 7 分钟
2.5k
互联网应用随着业务的发展,部分单表数据体量越来越大,应对服务性能与稳定的考虑,有做分库分表、数据迁移的需要,本文介绍了vivo帐号应对以上需求的实践。

vivo 云服务海量数据存储架构演进与实践

2020-11-16
阅读 6 分钟
1.4k
随着 vivo 云服务业务发展,云服务用户量增长迅速,存储在云端的数据量越来越大,海量数据给后端存储带来了巨大的挑战。云服务业务这几年最大的痛点,就是如何解决用户海量数据的存储问题。

Redis 缓存性能实践及总结

2020-10-12
阅读 6 分钟
7.7k
在互联网应用中,缓存成为高并发架构的关键组件。这篇博客主要介绍缓存使用的典型场景、实操案例分析、Redis使用规范及常规 Redis 监控。

Android 原生 SQLite 数据库的一次封装实践

2020-08-10
阅读 12 分钟
3.2k
本文主要讲述原生SQLite数据库的一次ORM封装实践,给使用原生数据库操作的业务场景(如:本身是一个SDK)带来一些启示和参考意义,以及跟随框架的实现思路对数据库操作、APT、泛型等概念更深一层的理解。

OpenTSDB 数据存储详解

2020-07-16
阅读 7 分钟
1.8k
随着互联网、尤其是物联网的发展,我们需要把各种类型的终端实时监测、检查与分析设备所采集、产生的数据记录下来,在有时间的坐标中将这些数据连点成线,往过去看可以做成多纬度报表,揭示其趋势性、规律性、异常性;往未来看可以做大数据分析,机器学习,实现预测和预警。

MySQL 的 crash-safe 原理解析

2020-05-25
阅读 7 分钟
2k
MySQL作为当下最流行的开源关系型数据库,有一个很关键和基本的能力,就是必须能够保证数据不会丢。那么在这个能力背后,MySQL是如何设计才能保证不管在什么时间崩溃,恢复后都能保证数据不会丢呢?有哪些关键技术支撑了这个能力?本文将为我们一一揭晓。

vivo 大规模特征存储实践

2020-03-23
阅读 9 分钟
2.6k
AI 技术在 vivo 内部应用越来越广泛,其中特征数据扮演着至关重要的角色,用于离线训练、在线预估等场景,我们需要设计一个系统解决各种特征数据可靠高效存储的问题。

深入理解 MySQL ——锁、事务与并发控制

2019-03-26
阅读 12 分钟
6.8k
本文首发于 vivo 互联网技术微信公众号 [链接]作者:张硕 本文对 MySQL 数据库中有关锁、事务及并发控制的知识及其原理做了系统化的介绍和总结,希望帮助读者能更加深刻地理解 MySQL 中的锁和事务,从而在业务系统开发过程中可以更好地优化与数据库的交互。