助你解锁万物智联新机遇 —— YMatrix 超融合数据库

2023-11-19

近期,在 YMatrix 5.0 发布会上,四维纵横创始人 & CEO 姚延栋分享了《返璞归真,以简驭繁 —— YMatrix 超融合数据库 5.0 发布》的主题演讲。在本次演讲中,介绍 YMatrix 超融合数据库的发展历程及现阶段的技术痛点,深入阐释了万物智联时代数据库的最佳形态。本文根据现场演讲内容整理而成。

⚠️ 四维纵横创始人姚延栋的精彩演讲可以通过“YMatrix 超融合数据库” 视频号 & B站 上观看啦!

“返璞归真,以简驭繁” - 超融合数据库 YMatrix 5.0 新品发布会

一、数据库的未来:超融合数据库

这十来年,我们见证很多大数据和数据库产品的潮起潮落、兴衰变迁,我们开始反思数据库的本质是什么,特别是万物智联和数字化转型时代,数据库的形态应该是什么样的?这些反思催生了 YMatrix,目标是打造为万物智联和数字化转型时代而生的数据库。

万物智联时代,时序是最重要的新变量。为此我们选择了时序数据库切入,然而和其他时序数据库明显不同,我们是超融合时序数据库,不单支持时序,还可以支持关系、JSON、GIS、文本等。

经过两年多对产品的打磨,YMatrix 已经在全球最大的 IoT 时序场景落地,在该企业每天写入的数据超过十万亿个数据点,同时还有高并发的查询。大家试想一下,一方面有数据的疯狂写入,同时还要支持高并发查询,在有限的资源下,相互之间会竞争 CPU、IO 等资源,非常有挑战。

通过我们优秀的工程师团队不懈地努力,大幅优化了写入以及资源使用率后,我们搞定了这个场景,客户非常满意。现在我们可以自信地说 YMatrix 已经穿透了时序场景,而 5.0 将更多的研发重心放在了“超融合”

为什么是“超融合”?

因为我们相信超融合是万物智联时代的最佳数据库形态。

过去 20 多年出现过很多优秀的产品,他们或者是性能卓越,或者是功能强大,或者是易用性极佳。即便是到了今天,用户仍在选择数据库时,不得不在功能、性能、易用,这三者之间进行权衡和取舍。

有的数据库性能卓越,但是易用性欠佳;有的数据库支持关系数据,但是不支持时序;有的数据库支持时序,但是不支持分析和 Machine Learning 等等,而我们认为应该是更多的融合,而不是权衡和取舍。举例来说,智能手机成功地将电话 MP3、GPS、照相机以及存算能力融合在一起,这种融合不单开创一个全新的消费电子领域,也改变了人们的工作和生活方式。

与此类似,超融合数据库也是 N 合一,把多种不同数据库品类的常用功能整合在一起。这里的 N 是指场景的不同,可以是 1、2 或 3,甚至更多。这种融合不是简单功能上的堆砌,而是真正提供一个数据基座的基础设施级别的数据库。当然,这样的融合本身不会带来产业的巨变,它更像是催化剂,能够催化和加速各行各业的数字化革新。

超融合 — 功能

谈到融合,最主要的是功能上的融合,各种不同的数据库产品和品类,区别最大的就是功能。

按照不同的标准有不同的划分方式

这里我们以数据模型处理模型来分类,按照数据模型有关系数据库、时序数据库、图数据库等,而处理模型又可以进一步细分,如处理类型有 OLTP 和 OLAP,时效性有批处理系统和流处理系统,这两大分类最早常见于大数据领域。近几年随着流和数据库更多的整合,流数据库也受到越来越多人的关注。按照处理模式是否已知可以分为数据仓库和数据湖。

可以看到数据库的品类非常的多,这一方面说明了数据库是丰富多彩的,同时也给用户带来了选择困惑。

试点困境

现在工业 4.0 和智能制造备受关注。以工业场景为例,在工业场景里有很多重要的信息化系统,譬如有制造执行系统 MES、仓储管理系统 WMS、质量管理系统 QMS,这些信息化系统大多使用关系型数据库,常见的有 SQLServer、MySQL 和 Oracle。这些数据库很多都是跟随着信息化系统进入企业的。

随着智能制造的发展,企业希望构建设备的智能管理和运维,为此需要耗时数月选型时序数据库,引入时序数据库,以解决时序数据的采集、存储和监控等问题。常见的时序数据库产品有 OpenTSDB、 InfluxDB 等。

时间的推移下,数据会不断地积累,形成历史数据,这些历史数据中蕴含着丰富的价值。为了挖掘这些价值,促进企业的数据驱动实现决策支持,我们需要搭建 BI 和选型数据仓库,常见的数据仓库和分析型数据库有Greenplum、Clickhouse 和 Hadoop 等。机器学习在工业里面使用了很长时间,近年来随着大数据的发展,基于大数据模型的机器学习算法,精度更高,因此企业希望引入基于大数据的机器学习模型,叠加工业激励模型去实现企业的降本增效。

为此需要引入 Spark、TensorFlow 机器学习平台, 这一趋势会随着需求不断发展而继续。譬如,当需要解决文本检索的时候,引入 Elasticsearch 或 Solr;当需要解决地理位置数据处理,需要引入 ArcGIS;当需要解决文档数据时,引入 MongoDB。

每一次的选型,少则需要耗时一两个月,多则耗时半年甚至一年以上。很多时候还会发生选型时测试是好的,一旦上生产却问题频出,很多企业被迫放弃选型或者是重新选型。

这一现象也称为试点困境,甚至有人称之为试点炼狱。

选型的结束并不是工作的结束,而是更多工作的开始,每一种产品都需要运维、监控、报警、导入、导出、备份、恢复、高可用、权限管理等。诸多产品的叠加,运维的复杂度就会更高。一旦出现问题,就会造成生产和交付出现问题,并且每一种产品都有学习成本,诸多产品的学习成本叠加在一起就会更高,而使用不当是很多问题的关键。

回归数据库本质

这么多的数据库,数据库的本质是什么?如果我们抛除掉所有的概念以及技术细节,数据库的本质就三件事情:接数据、存数据和用数据。

过去很多不同的数据库都是在使用不同的方式去解决这三个最本质的问题。所谓天下大事,合久必分,分久必合。上世纪八九十年代,数据库趋势以和为主,而 21 世纪的头十几年,数据库以分为主要趋势,面向细分场景去开发数据库,以解决该场景下的问题,所以形成了很多的数据库品类。

当时有一点卖方市场的意思,重要的是要看数据库的开发人员能够开发出什么样的产品来给业界使用,而用户更多的是组合不同的产品来去解决自己全场景的问题。

为什么会这样?主要还是由于事物发展到不同阶段造成的。不管是硬件技术、分布式数据库技术还是开源软件,相对都比较早期,积累和沉淀比较薄弱,在面向细分场景可以有效地降低复杂度,提升成功的概率。

近几年,数据库领域融合趋势渐显,出现了诸如 HTAP、湖仓一体等热词。我们不禁要问,融合的尽头是什么?作为数据库人,是继续一个问题、一个问题的解决当下,还是以终为始,思考终局?更重要的是,用户想要的到底是什么样的数据库。

用户其实并不关心 TP、AP、批流、湖仓,用户想要的是一款强大的数据库,可以解决最根本的数据问题。有数据就可以往里面写,想用可以随时用。用户更希望把精力放在数据自身的价值和业务价值上,而不是数据库的价值。所谓批流之分,湖仓之分只是阶段性的产物。

超融合解决方案

采用 YMatrix 超融合数据库,只需要选型一次,也只需要运维一个产品,选型成本和用户运维成本会大幅地降低。一旦完成选型后,当新需求出现时,无需再耗费数月去选型一个专用数据库,只需要研究在 YMatrix 中如何实现该功能。

主要涉及到三个方面,建模、写入和查询

同样以工厂场景为例,我们来看使用 YMatrix 数据库的客户旅程感受。首先是工厂的信息化系统,信息化系统使用的是关系型数据库,而 YMatrix 本身是一个严格意义上的关系型数据库,和 PostgreSQL 的接口完全兼容,可以使用标准的 SQL 进行建模、写入和查询。熟悉 SQL 的人一看便知。

在关系数据或者 OLTP 场景下, YMatrix 推荐使用 Heap 存储引擎,怎么做也是非常简单,只需要在建表时使用 using heap 即可,其他的所有工作会由数据库来自动实现。一旦建模完成,查询和写入都可以使用标准 SQL 实现。

当需要建设设备智能运维系统时,无需再去选型专用时序数据库,只需看如何在 YMatrix 实现,方法和前面一样,使用标准 SQL 进行建模、写入和查询。

只有一点区别,建模时使用 MARS2 存储引擎。MARS2 是我们专门为时序场景打造的存储引擎,性能非常的好。当需要构建报表或者建设 BI 系统时,也无需耗时再去选型专用的分析型数据库,只需使用 YMatrix 提供的强大数据分析能力。

如上图所示,该 SQL 使用了窗口函数来计算跳变差值。经常用于安全和报警等场景下,可以看到,短短 10 几行 SQL 就可以实现强大的业务价值。

上图是另外一个例子,大概 20 行左右的 SQL,用于计算所有车辆的全天驾驶循环,通常会用在高级分析和机器学习模型训练中。

这两个 SQL 主要想演示 YMatrix 强大数据分析能力,寥寥几行 SQL 就可以快速提供业务价值。如果和 BI 软件的集成,可以让业务人员直接挖掘数据价值。

机器学习

YMatrix 提供了库内机器学习,也就是 In-Database Machine Learning,这也是一个非常强大的能力。

我们看一下上图,是用户自定义函数,类似于存储过程,可以直接在数据库内执行。函数体是用 Python 来实现,在里面可以调用任意 Python 代码。例子中可见,使用了 pandas 流数据库,同时也调用了用户自己编写的 metric,最后一行调用了 metric.forecast 函数,以实现模型的训练和预测。

这意味着你可以在数据库内执行任意的 Python 代码来去实现原地数据分析,也意味着整个 Python 生态为你开放,更意味着无限的数据分析可能,功能强大,感兴趣的朋友可以好好地研究一下。

YMatrix 还支持其他数据库功能,譬如文本检索、JSON 和 GIS 等,使用方法非常简单。使用标准 SQL 建模、写入、查询,只需要在建模的时候使用正确的数据类型即可。

此外,YMatrix 还提供了强大的索引能力来去加速不同场景下的查询性能。

下图,我们展示了一个 SQL 示例,用于计算过去 24 小时内,在某个点周边两公里的所有 ATM 机,提款超过 2000 元的所有交易。

这是一个非常复杂的业务需求,但是我们使用了 6 条 SQL 在 YMatrix 里即可完成这个业务场景。

我们可以对比一下两种不同的客户体验,一种需要试点、选型、学习、适配,耗时数月以上;另外一种使用 YMatrix 当下立即开发,并且全部使用标准 SQL,学习曲线很低,可以带来超过 10 倍,甚至 100 倍以上的效率提升。

YMatrix 超融合数据库 + 现代 SQL 可以实现无限可能。YMatrix 强大功能远不至此,随着使用的深入,经常会惊喜地发现原来这样的功能已经实现。这里列举几个常用的,譬如:用户透明分区,无需用户再去手动分库分表,冷热分级存储、物化视图、索引、压缩等。

值得强调的是,YMatrix 还支持 ACID,确保数据不丢、不错、不重。很多时序数据库和分析型数据库都不支持 ACID,无法确保数据的正确性。

最后,我们用两张图来对比两种不同的技术栈和体验。

采用超融合架构,可以有效地节省设施成本及运维成本,提升开发效率并降低人才门槛。我们知道在数字化转型时代,最稀缺的人才是复合型人才,教育和培训很难快速地满足业内对于复合型人才的需求。通过降低人才门槛可以有效地缓解这一问题,所以使用 YMatrix 超融合解决方案可以大幅地降低行业专家驾驭数字技术的难度,真正的为行业转型赋能。

超融合 — 性能

过去两年来,我们和很多客户及同行进行交流,大家都认可超融合数据库的价值,但是也有两点顾虑,一是能不能实现,二是即使实现了,性能会怎么样?

前面我们回答了第一个问题,现在我们来回答第二个问题 —— 性能。

性能可以说是数据库领域永远具有吸引力的话题,因为性能数字清晰直观,孰优孰劣,孰强孰弱,一目了然。特别是近来很多厂商去参加性能的打榜、打擂,有一点大跃进的意思。

但这也是好事,说明技术是在不断地进步。然而我们也注意到,绝大多数的厂商仍然是在打单榜、打细分的场景。现在数据库竞争已经到了深水区,单靠某个细分场景上,20-30% 性能优势甚至是一倍的优势,已经难以再获得用户的青睐,而需要铁人三项甚至是十项全能。

YMatrix 非常看重在用户全场景之下的性能表现,包括写入、时序查询、单表分析、多表分析、 Machine Learning、OLTP 等,有了性能的支撑,超融合才有意义。

我们来看下面 6 个数字。

第一个数字:1.52 亿数据点/秒。

这是一个真实客户场景写入的性能表现,单看这个数字可能没什么感觉,我们来做一个对比,工业大数据是一个典型的时序场景,而一般工厂的数据规模在 10 万点左右。现在我们解决了 1.52 亿规模场景,可以说是工厂场景的 1500 倍以上,从侧面说明了 YMatrix 的强大写入能力。

这个客户是理想汽车,我们使用 10 台 x86 服务器,实现了 1.52 亿数据点/秒的写入能力,同时还可以支撑高并发的查询。

创业两年来,我们也接触过数百家大大小小企业,包括我们也看到国内外友商很多场景案例分享,理想汽车是我们目前了解到最大的时序场景,可以说是时序的珠穆朗玛峰。感谢我们优秀的团队,我们已经登顶,如果你有更大的场景,我们非常期待交流。

为什么写入性能我们使用时序场景,因为时序场景 99% 的操作是写入,对写入的性能要求最高。如果我们能搞定这个场景之下对高并发、低延迟写入的要求,我们就可以相对比较容易的搞定其他场景的写入性能诉求。

第二个数字:5.1 倍

这是 YMatrix 和 TimescaleDB 在时序场景下查询的性能对 比,用的是 TSBS 标准 Benchmark,TimescaleDB 耗时是 YMatrix 的 5.1 倍。

TimescaleDB 是一款优秀的时序数据库,创立于 2015 年,现在估值超过 10 亿美金,是一家独角兽企业,客户也很多,包括像苹果这样的全球知名企业。TSBS 是 TimescaleDB 官网推荐的一个 Benchmark,我们采用其企业 CPU only 测试集,用的是 10 万设备规模 ,TimescaleDB 耗时是 YMatrix 5.1倍。

这里我们使用的是 MARS2 存储引擎,TimescaleDB 使用 Heap,而 YMatrix 也有 Heap 存储引擎。如果两个产品都使用 Heap 存储引擎的话, YMatrix 性能比 TimescaleDB 快一倍以上。

顺带一提,YMatrix 和 TimescaleDB 都是基于 PostgreSQL,所以在创业早期我们也借鉴了一些 TimescaleDB 的做法,比如说 TimescaleDB 会使用 Heap 去承接时序场景下的热数据,7 天之后会自动转换成冷数据,把 1000 行压成一行以去实现类似于列存,提高压缩比。

我们当时认为这种方法应该是可行的,因为 TimescaleDB 已经获得了广泛的接受,但是当我们实现之后,到国内客户现场去 POC 时,才发现这种方法根本不工作。

原因有三点:第一,在转表时,资源消耗非常重,会造成大量数据积压;第二,一单转表,冷数据不能更新,但在很多场景下,更新是一个常规操作;第三,明细查询和聚合查询比较慢。

吸取了这些教训之后,我们重新设计了存储引擎 MARS2,解决高并发、低延迟的数据写入性能问题,同时也不再分冷、热,而是都可以 Update,最后就是明细查询和聚合查询性能有了大幅地提升。

第三个数字:27 %。

这是 YMatrix 和 Clickhouse 在 SSB 1000上面的性能对比数字 ,Clickhouse 耗时比 YMatrix 多 27%。众所周知,Clickhouse 是一款卓越的分析型数据库,主打单表的性能, 因其性能卓越,所以很多厂商都去找 Clickhouse 打擂,我们也不免俗。

Clickhouse 性能非常好,主要来源于两个点,一是存储的有序化,二是执行向量化,然后就是大量其他细节的长期打磨。在实现了有序存储和向量化执行器之后,YMatrix 和 Clickhouse 性能在同一个数量级。随后我们在 SSB 场景之下投入了大量的资源去进行细化。

很多时候我们的工程师为了几个百分点的提升而鏖战,最终我们在微批动态执行等方面取得突破之后,得到了今天的数字,可以说实属不易。

第四个数字是 X

这里我们卖一个关子,是和 Greenplum 的性能对比,用的是 TPC-H Benchmark,Greenplum 是一款卓越的 MPP 数据仓库,自 2015 年开源以来,受到了业内的广泛关注。

Greenplum 由于其在功能、性能、稳定性方面的综合表现出色,在国内外有大量的商业用户和免费用户,也有多家互联网厂商采用开源的  Greenplum 构建了其 MPP 数据仓库,譬如说阿里的 ADB。我们后续会通过公众号发布详细的评测文章,敬请各位朋友关注。

第五个数字是 8 倍。

YMatrix 和 Spark 在 Machine Learning 场景之下性能对比,也是我们客户的实测数据。这个客户使用 Spark + Hive,耗时是 YMatrix + Python 的 8 倍以上。

Spark 是全球知名的开源大数据平台,而 Spark ML 是全球知名的 Machine Learning Library,我们也见到很多用户使用 Spark + Hadoop 技术栈,这个技术栈有一个非常明确的特点就是数据贴近计算。当需要进行模型训练时, Spark 去数据源拉取数据到 Spark 集群。这样一来,数据量大性能损耗非常明显。

YMatrix 提供了强大的库内机器学习能力,可以把任意的 Python 或 R 的机器学习算法下推到数据库里面,也就是说计算贴近存储。这样避免移动海量的数据,同时借助于 YMatrix 强大的并行执行能力,性能优势很明显。

第六个数字:160 万。

YMatrix 和 Intel 实验室联合测试的结果,用的是 TPC-B 国际标准测试集。英特尔提供 5 台服务器,每台是 128 个 core,256GB 内存。在 TPC-B 标准 Benchmark 之下,主键查询 TPS 高达 160 万,而 Update 和 Insert 的 TPS 也超过 20 万以上,包含增、删、改、查,4条 SQL 的事务, TPS 高达 6.7 万。

虽然 YMatrix 主打场景不是极致的 OLTP,但是可以看到性能数据依然非常卓越,可以满足很多企业的 OLTP 以及 HTAP 场景,绝大多数企业的 TPS 在 10 万以下。

我们用了 6 个数字,分别从写入性能、时序查询、单表 OLAP、多表 OLAP、Machine Learning 及 OLTP 等方面展示了 YMatrix 强大综合性能能力,可以说非常亮眼。一款数据库不但融合了很多功能,而且性能也很卓越,特别是在时序、分析和 Machine Learning 等主打场景之上,可以做到比专用的数据库还要快。

YMatrix 是怎么做到的?

YMatrix 5.0 中包含了多达 138 项性能优化,特别是数据写入、分析等方面,我们进行了指令集的优化。很多时候我们的性能团队都拿着汇编代码在研究“时间去了哪里”,通过和时间赛跑,我们确实追回了很多“时间”,最终取得现在的结果。

超融合 — 易用

功能丰富,性能卓越还不够。我们认为万物智联时代,数字化转型时代的数据库还要做到简单易用,只有足够的简洁才能够降低门槛,才能够真正的赋能各行各业数字化转型。

安装

使用数据库的第一步是安装,然而由于分布式数据库的复杂度,繁琐的安装步骤让很多的初学者望而却步。为了解决这个问题,我们提供了体验极佳的图形化 installer 在 10 分钟左右就可以完成一个分布式集群的搭建。

更进一步,为了降低初学者的学习曲线,我们还提供了 onboarding 特性,让用户可以在 3 分钟之内,体验一个完整的 IoT 场景,包括数据的写入、查询及分析。

安装好数据库之后,下一步就是数据入库。Kafka 是目前业内事实上的工业标准,有大量用户在使用 Kafka 来实现数据的分发。为了降低数据入库的复杂度,实现实时数据入库,我们提供一个图形化的 Kafka 链接器,可以 6 步零代码实现 Kafka 的秒级入库,大幅降低了数据入库的复杂度。

监控

没有监控的数据库可以说就像是一个盲盒,充满着不确定性和惊奇。YMatrix 非常看重可观测性,5.0 里面提供了超过 100 项核心指标,运维人员通过指标可以了解整个集群的运行全局和细节。

这些指标时时刻刻在为集群做 X 光,确保数据库的健康平稳地运行。一旦发生问题,通过相关指标,可以快速定位原因,快速地解决问题。

故障全自动回复

YMatrix 4.0 如果发生 master 故障,还需要人工的干预才能恢复。在 5.0 中,我们对故障的监测和高可用进行了全新的设计。基于 Qurom 技术,我们现在无需人工干预,可以全程实现任意节点自动 failover,这样一来大幅提升了集群的鲁棒性,让 DBA 也可以睡个好觉。

扩容

扩容在很多场景下是一个低频操作,对于大多数企业来说,两三年扩容一次就不错了。在物联网场景之下,时序生产的速度非常的快,扩容成为了常规操作。

YMatrix 5.0 中,我们对扩容进行了重新设计,基于 segment set 特性,可以确保扩容的过程中业务零中断,并且不影响读写。这样一来可以保证在扩容的过程之中业务正常运行,让 DBA 的工作更为容易。

二、返璞归真 以简驭繁

超融合数据库是一个全新的尝试。和以往不同,超融合是站在用户的视角来思考用户的全场景,全场景需要什么样的数据库。

苹果公司早期的交互设计师泰斯勒提出复杂度守恒定律,定律指出一个系统的一些复杂度是没有办法被降低的,这种内在的复杂度只能通过产品设计的方式去平衡和转移。数据库就是一个非常复杂的系统,整个数据库界过去 20 年一直在努力降低或转移复杂度,而不同的数据库产品和品类都是这种努力的尝试。

客户证言

回归根本,用户最想要的就是一款强大的数据库,可以解决所有数据的最根本问题,接数据、存数据和用数据。YMatrix 4.0 发布以来,受到了很多创业公司到大型企业的认可,其中还包括市值超过万亿的公司,譬如宁德时代、比亚迪,也有世界 500 强企业,譬如三一重工、小米等。作为一家创业两年左右的基础软件企业,能为这些伟大的企业服务是我们的骄傲。

三个时代

每个时代都有不同的时代需求,也有不同的时代诉求,每个时代也有其最主要的玩家,因此需要为时代而生的产品服务。我们已经走过了信息化时代和大数据时代,进入了数智化和万物智联的时代。

YMatrix 致力为数智化和万物智联的时代打造为这个时代而生的数据库。今天,我们一起深耕数据库领域十多年的数据库人定义了一个数据库的新品类,走在了世界的前列,也走到了已知和未知的边界。前方可见之路是越来越少,却也充满着无限的可能,我们一方面心怀忐忑,同时也满怀期待,也热忱的期望,对数据库有极大热忱的工程师可以加入我们团队,一起玩一个无限的游戏。

三、结语

今天我们发布 YMatrix 5.0,其中包含众多新特性,特别是在性能和易用性方面,希望 YMatrix 能够为更多的用户带来价值,也期待着更多的用户给予我们反馈,让我们可以在超融合的路上越走越好。

自创业做时序数据库以来,我就对时间的本质非常感兴趣。关于时间,最新的物理学形成了很多颠覆认知的新共识。时间的本质是什么?尚未定论。古希腊人早就用了两个词来表示时间,一个是 Chronos,一个是 Kairos。Chronos 是定量的、机械式的时间,Kairos 是定性的,具有特定意义的时间,也是组成我们人生故事和记忆的时刻。

希望本次 YMatrix 5.0 发布会可以带给诸位 Kairos 时光。最后感谢大家观看本次的发布会,谢谢。




原文链接

本文为 YMatrix 原创内容,未经允许不得转载。

欲了解更多超融合时序数据库相关信息,请访问 “YMatrix 超融合数据库” 官方网站

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

助你解锁万物智联新机遇 —— YMatrix 超融合数据库 的相关文章

随机推荐

  • 【MySQL】sql给表起别名

    有时候 在对数据库中的表进行操作的时候 发现表名比较冗长 这时候我们就需要对表创建一个别名 别名的关键字为as 也可以不加 现在有一个student表 结构如下 现在我认为student太长了 我不想一直打 sql语句如下 select a
  • setTimeout异步

    同步任务和异步任务 同步和异步操作的区别就是是否阻碍后续代码的执行 同步任务是那些没有被引擎挂起 在主线程上排队执行的任务 只有前一个任务执行完毕 才能执行后一个任务 异步任务是那些被引擎放在一边 不进入主线程 而进入任务队列的任务 只有引
  • 【IEEE 13 节点分配系统中的THD降低】系统的谐波分析给出了各种总线上电流和电压的谐波频谱和THD(Simulink实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Simulink仿真实现 1 概述 IEEE 13 节点分配系统中的THD
  • 第三方微信登陆的后台实现

    关于微信第三方的开发 官方文档给了很详细的解析说明 有不清楚流程的同学可以先去官网学习 而我这里主要是整理一下自己的后台处理流程 其实微信登录就是通过用户的授权 允许app获取用户的微信信息 再往自己的数据库插入获取的信息 这里用手机app
  • 6. C++知识点之三目运算符

    三目运算符 C 有一个常用来代替if else语句的操作符 这个操作符被称为三木运算符 它是C 中唯一一个需要3个操作数的操作符 该操作符的通用格式如下 b a c 如果b为真 则整个表达式的值为a 否则表达式的值为c 下面两个语句演示了该
  • 千万并发连接下,如何保障网络性能

    点击一键订阅 云荐大咖 专栏 获取官方推荐精品内容 学技术不迷路 过去几十年互联网呈爆发式的增长 内容的丰富以及层出不穷的DDoS攻击等 对网络性能提出了极大的挑战 也同样促进了网络基础设施的快速发展 运营商的带宽越来越大 CPU 网卡等硬
  • Ubuntu /etc/security/limits.conf 不生效

    遇到报错 RuntimeError unable to open shared memory object in read write mode 查到的教程说需要ulimit n 设置一个比较大的数 用ulimit n 发现最大是1024
  • Element组件浅尝辄止5:Empty 空状态组件

    Empty空状态组件 空状态时的占位提示 如第一次进入当前功能模块时 数据状态为空 则展示空状态 可用到Empty组件 1 How
  • 可以向同事学学shader了

    今天无意中和同事聊天 发现他竟然会级联阴影 级联阴影不是新技术 但是我见过的 能用的真少 大多数停留在理论阶段 可能是我遇见的优秀的人不多吧 不管怎样 立足现在公司 多向高手学习
  • 《Effective Modern C++》第0章学习记录

    Acknowledgement C 0x C 11 C 14 Usenet newsgroup comp std c Stack Overflow Overview of the New C Modern C Design Going na
  • SQL语句大全(第21天) (转)

    第一大章 创建数据库 CREATE 创建 DATABASE 数据库 ace 数据库名字 打开数据库 USE 打开 ace 数据库名字 给表格 SHOW 显示 TABLES 所以列表名字 创建表 用户名 id ID user 用户 passw
  • 大数据基础

    1 HDFS 1 HDFS为什么不适合存储大量小文件 答 1 大量文件的元数据占用NameNode大量内存空间 2 磁盘寻道时间超过读取时间 2 HDFS 何时离开安全模式 答 ActiveNameNode启动时HDFS进入安全模式只读 d
  • 剑指Offer 12—矩阵中的路径

    题目描述 给定一个 m x n 二维字符网格 board 和一个字符串单词 word 如果 word 存在于网格中 返回 true 否则 返回 false 单词必须按照字母顺序 通过相邻的单元格内的字母构成 其中 相邻 单元格是那些水平相邻
  • 日志清理脚本,升级版

    root ip 10 172 10 35 cat usr local shell iop ps data rm sh bin bash 获取15天之前的日期 del date date Y m d d 15 days ago 获取30天之前
  • 【C#基础】C# 预处理器指令

    序号 系列文章 8 C 基础 C 面向对象编程 9 C 基础 C 异常处理操作 10 C 基础 C 正则表达式 文章目录 前言 1 预处理器指令的概念 2 预处理器指令的定义与使用 2 1 可为空上下文 2 2 定义符号 2 3 条件编译
  • Windows无法访问\\ 请检查名称的拼写。否则,网络可能有问题。

    Windows无法访问 请检查名称的拼写 否则 网络可能有问题 错误代码 0x80070053 网络路径键入不正确 不存在或者网络提供程序当前不可用 请尝试键入路径或与网络管理员联系 遇到局域网内无法打开共享打印机时出现的问题 解决方法 打
  • python的安装与环境配置

    一 访问python的官网进行下载对应的版本 python官网的地址 Welcome to Python org 点击Downloads 选择Download Python 3 11 4 目前最新的python 也就是3 11 4 之后等待
  • Redisson框架官方介绍

    我们现在看到的就是redission官方网站 https redisson org 首页可以看出来 redisson可以实现很多东西 在redisson的基础上 redisson做了超多的封装 我们看一下 例如说 Spring Cache
  • python获取windows窗口_pywin32 怎么获取 windows 的窗体内文本框的内容?

    我已经用 spy 去确认我找到了文本框的句柄了 用函数 win32gui SendMessage 获取不了文本框的文本内容 用 str 类型的参数接收获取的内容的话没有获取到东西 而用 PyBuffer 类型去获取则得到类似于 16 进制的
  • 助你解锁万物智联新机遇 —— YMatrix 超融合数据库

    近期 在 YMatrix 5 0 发布会上 四维纵横创始人 CEO 姚延栋分享了 返璞归真 以简驭繁 YMatrix 超融合数据库 5 0 发布 的主题演讲 在本次演讲中 介绍 YMatrix 超融合数据库的发展历程及现阶段的技术痛点 深入