前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >为什么现在都要搞,高大上的分布式数据库

为什么现在都要搞,高大上的分布式数据库

作者头像
AustinDatabases
发布于 2021-09-24 09:38:58
发布于 2021-09-24 09:38:58
1.1K0
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

数据库的领域尤其是国内,专门搞单体方面的数据库公司是越来越少,基本上大部分都在搞或正要搞分布式数据库. 分布式数据库不光是专业的数据库公司在做, 各大银行也有在搞自己的分布式数据库. 如题,为什么现在都在搞"高大上" 的分布式数据库. 其实要说清这个问题,本身可能和数据库没有太多的关系.

这个还的从硬件来说起, X86结构的计算机,基本上能看到文字的人,至少人手一台. 而ARM结构的计算机,不少人是第一次听说. 咱们在往下看,一些CPU 的型号

大部分国内大型国有企业, 党政军,以及国家核心机构, 国有银行,及具有国有股份的银行,都已经开始不建议使用INTER处理器的计算设备了, 也就是说上面看似陌生的服务器产品将有很大的需求来自于这些单位和企业. (小声说一句,这些产品一点也不便宜,并且供不应求)

那么基于这些硬件结构的服务器上,架设的操作系统也就必然不能是WINDOWS ,或者 MACOS ,UNIX 等操作系统了, 可能是你听都没有听说过的 麒麟系统.

那么咱们继续往下捋, 基于这些硬件结构和操作系统之上的数据库产品也的重新来过, 实际上留给这些硬件和操作系统成长的空间还有很大. 我想你明白我的意思.

此时你可能说,用MYSQL, 开源的

, 基于开源协议以及国家安全等因素, 基于MYSQL的开源数据库的二次开发已经处于停滞的状态. WHY???? 想想那些还用ORACLE 盗版的企业,哪里有钱买你的二次开发的MYSQL , 而国家核心的那些"厉害角色", 早就把MYSQL 这样的产品画在圈外了.

在国内政策导向的基础上, 数据库产品的空白就显现了,基于硬件和软件"名录"中的产品的性能因素, 如果凭借单机的方法,则很难超越 ORACLE + 超高硬件及操作系统加持后的性能巅峰.

所以,老一辈领导的名人名言, 多生孩子好打仗, 此时数据库产品的分布式化就变成一种"需求" . 根据这些需求自然就有相关的供应商来出产适合当前国情的数据库产品.

废话了那么多,现在才开始进入真正的主题, 分布式数据库是真香,还是无奈的选择. 实际上分布式数据库是基于当前的国产硬件,以及单机产品无法达到某些 O 记产品的高性能而做出的妥协.

有人可能说, ORACLE 好用就应该用优秀的产品, 但在优秀的产品也躲不过国情的标签,国内是基于整个国家安全和稳定的考虑. 在目前国情的情况下, 分布式数据库在技术上就成为了必然.

另一个非政策的原因就是成本, (东方看政策, 西方看成本), 本身ORACLE的计费通过CPU 来进行计算, 而越高级的硬件会充分发挥ORACLE的计算性能, 这就变成一个死循环, ORACLE 产品的成本高, 而要充分发挥ORACLE 产品的性能, 需要使用更高级的小型机, 而小型机的成本也不低, 如果将所有的应用都跑到小型机和ORACLE, 则维护成本,后期的硬件升级成本,以及人员的成本都会非常高. 并且这些资源尤其人员,很难找到合适的.

资本家本性除了要榨干每一滴血管的血外,另一个本性或者人性,就是不愿意受制于人, 所以ORACLE 这样产品也必然让资本不欢喜. 分布式数据库的产出有着充分的理由和需求. 廉价的硬件, 简单的单节点架构构成, 想想都会让资本家开心, 😄

从分布式数据库系统本身的技术角度考虑,主要可以做到

1 分布式存储, 数据存储扩容,缩容, 节点高容错性,通过多节点将数据分散存储满足 高可用,数据冗余, 读写分离,数据存储节点替换添加的多种需求

2 分布式计算, 单体数据计算主要的缺点在于, 忙时计算能力不足, 闲时计算能力剩余, 通过分布式计算的特点,将计算的算力平衡分布,并且通过将任务分解后,让多个节点分布式计算来满足硬件单体的性能不满足.

但分布式数据库本身也带来一些不好解决的问题,

1 随着并发的提高, 事务控制节点的性能瓶颈的问题 (集中控制的事务ID, MVCC 会在此方面存在性能瓶颈 )

2 数据备份,尤其是增量备份的问题, 在数据量超大时的FULL备份的时长问题

3 高并发下,分布式数据库设计中的2PC,造成的性能衰减愈加严重的问题,

尤其在大事务回滚的情况下.

4 数据存储节点非传统模式(非行存储模式)在数据存储中带来的性能损耗以及查询速度问题

5 分布式数据库本身理论薄弱, 需要耗费大量的时间摸索验证.

基于需求,分布式数据库是必须要做的, 这是涉及,硬件, 国情,政策,成本以及"金主"爸爸的多方面的综合性的因素. 一个产品的诞生不是凭空捏造, 这是时代和当时环境所"创造"出来的产物.

不过好的消息也有, 分布式数据库目前都属于摸索和初始的阶段,大家都处于起步阶段,目前呼声比较高的开源的分布式数据库

1 TIDB

2 Cockroach DB

3 Yugabyte

4 Cassandra

5 OB

以及基于POSTGRES-XL/XC 协议的产品 如

1 PolarDB

2 Tbase

3 Goldendb (PGXC 风格混合MYSQL的一个变种)

从上面可以看到, 国产分布式数据库大部分都是基于POSTGRESQL 分布式协议或学习相关的风格改造的产品,

有对polardb 感兴趣的可以去看看这篇,关于polardb对POSTGRESQL的改进.

下一个阶段的数据库的比赛的赛道已经铺好,至于怎么比,谁能获胜, 谁是分布式的数据库界的ORACLE, 都是未知数. 至于ORACLE 或早或晚,都会变成我们心中的诺基亚.

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-08-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
手把手带你撸一个网易云音乐首页-适配篇
Hello, 大家好,今天是和大家分享如何用 Swift 开发网易云音乐首页的第四篇文章,在前几篇文章中我分别和大家分享了如何使用 MVVM 模式来构建应用,以下是文章的直通车:
HelloWorld杰少
2022/08/04
5780
手把手带你撸一个网易云音乐首页-适配篇
手把手带你撸一个网易云音乐首页(二)
Hello,大家好,转眼已经来到了7月份,记得鲁迅说过:不管你上半年混的有多惨,请不要气馁,因为伟大的事业都是在下半年完成的。
HelloWorld杰少
2022/08/04
1.5K0
手把手带你撸一个网易云音乐首页(二)
Swift纯代码 UICollectionView 分组显示、Cell圆角、选中变色
上一篇介绍了如何使用swift纯代码构建UIColletionView,本篇继续介绍如何对其分组、设置分组标题、cell 圆角、选中变色。 效果图如下:
热心的程序员
2018/08/30
5.3K0
Swift纯代码 UICollectionView 分组显示、Cell圆角、选中变色
iOS_系统自带地图圆形区域选择范围
5.聚集操作:删除原理的大头针,在新经纬度添加大头针,并将地图移动到新的经纬度(反地理编码获得位置信息)
mikimo
2022/07/20
2.4K0
iOS_系统自带地图圆形区域选择范围
Swift纯代码走进UICollectionView
2.jpg Swift对于一门新的iOS编程语言,他的崛起是必然的 我们这群老程序员们学习新的技能也是必然的 不接受新技能将被这大群体无情的淘汰 So 我欣然接受这门看似不成熟的语言 下面我们说说Swift中比较常见的控件UICollectionView 首先我们设置一个全局的UICollectionView和一个数据源 var colltionView : UICollectionView var dataArr = NSMutableArray() 然后设置UICollectionVie
Bison
2018/06/28
3.3K0
Swift-MVVM 简单演练(四)
Swift-MVVM 简单演练(一) Swift-MVVM 简单演练(二) Swift-MVVM 简单演练(三) 前言 这一篇主要写微博的首页布局,及MVVM模式的体会。像微博这种自定义的Cell布局略显复杂一些,我们最好将其拆分出来各个不同的模块来处理比较好一些。不要像之前那样,所有的控件都写在一个cell里面,那样不好处理。虽然说总体上来说,是学习MVVM模式,但是架构都是基于项目而设立的。脱离业务谈什么模式本身就不是很好。凡事有法,但法无定式。依个人习惯去延伸就好。没必要非得说谁的代码就一定是错的。这
用户1890628
2018/05/10
2.4K0
Swift 探索 UICollectionView 之 SupplementaryView 和 Decoration View
大家早上好,又到了每周和大家分享开发心得的时间啦!上周我分享了一篇关于 UICollectionView 自定义布局实现 Cover Flow 的文章(文章直通车),这也是我分享的关于 UICollectionView 系列的第四篇文章了,那今天我还是继续给大家带来 UICollectionView 开发系列的第五篇,这也是该系列计划写的最后一篇啦!当然,如果苹果开发者团队推出了关于 UICollectionView 的新的技术或者是我在开发中发现了新的技术点,我还是会持续更新这个系列,最终的目的是我希望通过这个系列的文章能把 UICollectionView 这个控件的核心技术点汇总齐全,毕竟 UICollectionView 使用的范围太广泛了。
HelloWorld杰少
2022/08/04
2.5K0
Swift  探索 UICollectionView 之 SupplementaryView 和 Decoration View
Swift日常开发随笔
提示:之所以为空白,是因为我把下拉列表中的tableView.reloadData()这行代码屏蔽掉了,加入的数组没有刷新。
编程怪才-凌雨画
2020/10/11
2.1K0
iOS 封装跑马灯和轮播效果
iOS UICollectionView实现跑马灯和轮播效果.gif 功能描述:WSL_RollView 是基于UICollectionView实现的支持水平和垂直两个方向上的的分页和渐进循环轮播效果,可以设置时间间隔、渐进速率、是否循环、分页宽度和间隔,还支持高度自定义分页视图的控件。 一、实现方法 ①、 首先用UICollectionView和计时器实现一个基本的水平滚动效果,如下图,这个太简单就不在此详述。 iOS UICollectionView ②、对比上面的效果图,我们还需要解决分页的宽度
且行且珍惜_iOS
2018/10/10
4.3K0
iOS 封装跑马灯和轮播效果
手把手带你撸一个网易云音乐首页(一)
Hello,大家好,近期我一直在学习用 Swift 编码,由于之前很多项目我都是用 OC 实现的,所以导致我现在对 Swift 还是处于一个学习的阶段中。为了提高自己的学习效率,每次我都会为自己定下一个短期的目标,就那这次来说吧,为了加快自己上手 Swift, 我为自己定下了的目标就是完成一个 Swift 版本的网易云音乐 App。不知道大家在学习一门新语言的时候,是如何提高学习效率的?不妨在评论区与大家交流一下。
HelloWorld杰少
2022/08/04
1.1K0
手把手带你撸一个网易云音乐首页(一)
使用 UICollectionView 实现分页滑动效果
在上篇博客中,给大家演示了如何利用 UICollectionView 这个强大的控件去实现一个卡片轮播的效果,后来有网友联系我说:"他遇到一个问题,当他滚动的 item 宽度与屏幕宽度一致时,滚动效果是正常的,但当把 item 宽度的值设置成小于屏幕宽度的时候,滚动就会出现遮挡的 bug, 这该如何解决呢!"
HelloWorld杰少
2022/08/04
3.3K0
使用 UICollectionView 实现分页滑动效果
iOS开发-搜索栏UISearchBar和UISearchController
最近项目中用到了搜索栏,所以在网上搜了一些相关的资料学习了一下,现在记录一下,iOS中的搜索栏实现起来相对简单一点,网上也有很多参考资料,不过靠谱的不是很多,很多都是iOS 8.0之前的实现,iOS 8.0上的实现貌似很少看到,看了一些其他人的代码,使用了一下UISearchController感觉还是非常不错的。好了不多说了 ,来点干货吧。 1 UISearchBar和UIDisplayController实现搜索 是网上最常见的也算是最简单的,也有使用Searh Bar Search Displa
roc
2018/03/30
2.5K0
iOS开发-搜索栏UISearchBar和UISearchController
AVKit框架详细解析(三) —— 基于视频播放器的画中画实现(二)
源码 1. Swift 接着就是源码了 1. AppDelegate.swift import AVKit import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.Laun
conanma
2021/09/04
2K0
Swift-低仿搜狐新闻标签页效果
前言:先看下效果 Tips: 这是用Swfit写的一个小Demo,用UICollectionView实现的拖拽排序,点击排序的效果。 我所用的UICollectionView的排序方法是系统默认
用户1890628
2018/05/10
2K0
Swift 自定义布局实现 Cover Flow 效果
大家早上好,今天我又给大家带来了一篇关于 UICollectionView 系列的文章,在上一篇文章中,我们实现了一个酷炫的瀑布流布局,带大家初步的了解了在 UICollectionView 中该如何创建自定义布局。但是上一篇中实现的自定义布局稍显简单,只能说是比较粗略的计算了下布局各个 item 的位置,搞明白了继承自 UICollectionFlowLayout 子类它需要重载的方法的意义,那么今天这篇文章我们就来实现一个更加复杂的自定义布局: Cover Flow 效果吧!
HelloWorld杰少
2022/08/04
2K0
Swift 自定义布局实现 Cover Flow 效果
使用 UICollectionView 实现首页卡片轮播效果
今天跟大家来聊聊一个强大的 UI 控件:UICollectionView。UICollectionView 是 iOS6 之后引入的一个新的 UI 控件,与 UITableView 有着很多相似的地方,在开发过程中我们都会选择使用它们俩来为 App 的整个页面进行布局,比如说淘宝的首页;相比 UITbleView,UICollectionView 的功能比它要强大的多,它支持水平与垂直俩种方向的布局,开发者可以完全自定义一套 layout 布局方案,实现出意想不到的效果。
HelloWorld杰少
2022/08/04
2.3K0
使用 UICollectionView 实现首页卡片轮播效果
教你写个多表视图
如图所示的多表视图是一个很常用的东西,之前我是用UIScrollView和UITableViewController做的。把当前的控制器作为一个父控制器,添加三个UITableViewController的实例作为子控制器,把父控制器中的 scrollView 作为容器,然后添加子控制器中的 tableView 作为子视图。这样做有一个问题,一旦有十几二十个表的话,内存就要爆炸了。解决的办法是可以自己写个重用机制,不过这显然没必要,用自带重用机制的UICollectionView应该是个更好的选择。
Sheepy
2018/09/10
1.6K0
教你写个多表视图
iOS流水布局UICollectionView简单使用引实现结
开发中我们最常看到的可能是表视图UITableView了,但其实还有一个视图也很常见,特别是一些图片、商品、视频的展示界面,用UICollectionView来展现往往会更加方便。
Cloudox
2021/11/23
1.2K0
iOS流水布局UICollectionView简单使用引实现结
Swift纯代码构建UICollectionView
先看下效果图,很简洁,没有任何样式。 效果图 接下来就是具体的实现。 1. 创建ViewController 命名为SHomeViewController。 2. 声明 UICollectionVie
热心的程序员
2018/08/30
2K0
Swift纯代码构建UICollectionView
仿淘宝类电商秒杀分页控件(附源码)
最近公司一个电商应用要实现一个类似淘宝淘抢购页面逻辑的功能,起初本来想找个第三方的组件,后面发现网上并没有类似的实现。所以后面决定自己封装一个,效果如下所示:
网罗开发
2021/04/28
1.4K0
仿淘宝类电商秒杀分页控件(附源码)
推荐阅读
相关推荐
手把手带你撸一个网易云音乐首页-适配篇
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档