当前位置: 首页 > news >正文

从Aurora 架构看数据库计算存储分离架构

单就公有云来说,现在云数据面临的挑战有以下 5 个:

  1. 跨 AZ 的可用性与数据安全性。 现在都提多 AZ 部署,亚马逊在全球有 40 多个 AZ, 16 个 Region,基本上每一个 Region 之内的那些关键服务都是跨 3 个 AZ。你要考虑整个 AZ 意外宕机或者计划内维护要怎么处理,数据迁移恢复速度怎么样。以传统的 MySQL 为例,比如说一个机器坏了,可能这个机器上存了几十 T、上百 T 的数据,那么即使在万兆网卡的情况下,也要拷个几分钟或者几十分钟都有可能。那么有没有可能加快这个速度。 还有一个就是服务恢复的速度。可能大家广为诟病就是基于 MySQL Binlog 复制。在主机压力非常大的情况下,是有可能在切换到备机以后,这个备机恢复可能需要几分钟甚至几十分钟。关键因素是回放 Binlog 的效率,MySQL 即使最新版本也只能做到 Group Commit 内的并发回放。这是数据库 RTO 指标,能不能在秒级、分钟级把这个服务恢复起来,这是一个在设计系统的时候要考虑的关键问题。

  2. 读写分离与弹性扩展。 一般来说我们讲云上数据库基本上都是集中化的,一写多读的,那这里会涉及到读写分离,把主库上一致性要求不高的读流量分给备库,这种情况下读写分离的备库能不能弹性扩展?我们知道 MySQL 可以通过 Binlog 复制来扩展备机,但是扩展的过程中就意味着复制一份完整数据,就像我们刚才提到的数据恢复一样,他要把整个数据全部复制过去然后把 Binlog 接上,这个时间可能你要真做的话几十分钟就过去了。如果说你的业务真撑不住说我赶快要加备机,那这个东西怎么去解决?

  3. 资源的按需分配。 这点其实云计算上的云数据库一定程度上已经做到了,当然有些可能不一样,比如说有硬件独享的数据库就很难做到按需分配。像阿里可能会把 EBS 接到它的数据库虚拟机上,这样的话其实你接上了弹性化存储以后也基本上做到一个弹性的分配,要 1G 给 1G,再要 1G 再给 1G,不说一开始就把资源分配了,这是云上的一个弹性的东西。

  4. 高性能。 现在大家都要看跑分,除了跑分,还要看跑实际业务的时候到底行不行,有没有办法去优化。

  5. 生态兼容性。 比如说为什么 TiDB 一定要做 MySQL 的兼容?我觉得可能也是考虑这一点,现在开源领域最强的生态可能还是 MySQL,开源的数据库如果不做 MySQL 兼容,别人可能不一定会来用。

定义数据库服务器集群的架构决策的关键点在于集群共享发生的程度,它定义协调动作发生在什么层以及哪个层( PE 计算层和 SE 存储层 )将被复制或者共享。这不仅确定了系统在可扩展性和灵活性上的权衡,而且关系到每一种架构在现成的数据库服务器上的适用性。

1.单机 2.简单共享存储,多副本一写多读,不需要迁移数据, 备机不能提供服务,灾备恢复EBS 3.统一共享存储, 多个机器之间cahcce一致性,有分布式并行文件系统,可以GFS那样的打散存储,多机器恢复那样的,还是一写多读 4.分库分表,share nothing,分布式中间件SQL比较难做,MVCC啥啊 5.存储分离架构,计算节点快速扩容,SQL引擎层做感知底下share nothing存储

高带宽网络的发展

paxos 运行空洞,也容忍网络抖动,不需要依赖前面的顺序日志, ABC AB AC(ACraft要追日志),paxos继续发

Quorum 外部可以选主,简单,存储层可以减少一部分选主开销

NWR写入高可用 1写 N读

备机用多版本MVCC读取事务一致性page版本

TiDB在事务提交生成commitlTS,MySQL ReadView版本是在事务开始时生成Tid,所以需要记录活跃事务

Range在共享存储 cache不重要了,主要还是顺序扫描 主键索引之类的特性,Hash有点预分配的意思,Range分裂比较好点,

Cache协调机制 传递redolog MESI维护,底层是多机大共享打散Cache

从AWS Aurora架构的设计理念出发,结合计算存储分离范式与分布式系统理论,其核心设计可分解为以下技术要点(引用来源以^[编号]^格式标注):


一、‌分布式共识与容错机制

  1. Paxos算法的应用
    Aurora在存储层采用类Paxos协议实现数据多副本一致性,通过‌多数派(Quorum)机制‌容忍网络抖动与节点宕机24。与Raft协议相比,Paxos允许‌空洞化的日志提交‌(即不依赖连续顺序日志),避免因日志追赶导致的性能瓶颈58。例如,当新提案(Proposal)被多数Acceptor接受后,即使中间存在未提交的日志空洞,系统仍可继续处理新请求,仅需异步补全日志。

  2. 外部选主优化
    存储层通过‌外部协调服务(如ZooKeeper)‌实现轻量级选主逻辑,解耦计算节点与存储节点的选主过程,降低存储层的协调开销6。这种设计允许计算节点聚焦于查询优化,而存储节点专注于数据副本同步。


二、‌读写可用性与多版本控制

  1. NWR模型与读写分离
    存储层采用‌NWR(N-Write-Read)策略‌,支持1写N读的高可用模式:写入时仅需达成多数派(如W=2)即可返回成功,读取时通过多数派(R=2)获取最新版本46。例如,在3副本集群中,单点写入成功后,其他副本通过异步复制同步数据,避免写入阻塞。

  2. MVCC与一致性版本管理
    备机通过‌多版本并发控制(MVCC)‌读取事务一致性快照。与TiDB在事务提交时生成commitTS不同,Aurora采用类似MySQL的活跃事务列表(ReadView)管理机制,但通过存储层维护全局版本号,实现跨节点的版本可见性67。例如,事务启动时获取全局快照版本,读取时仅访问该版本或更早的页面副本。


三、‌存储引擎与索引优化

  1. 共享存储下的索引设计
    在共享存储架构中,传统Buffer Pool的重要性降低,存储层通过‌预分配Range分区‌优化顺序扫描与主键查询6。Range分裂通过写时复制(Copy-on-Write)实现高效元数据变更,而Hash分区因预分配特性可能导致存储碎片,更适合固定负载场景。

  2. 日志驱动的Cache协调
    计算节点通过传递Redo Log而非数据页实现Cache一致性,底层依赖‌类MESI协议‌的分布式缓存状态机4。例如,存储层将Redo Log按分片(Shard)打散至多个节点,计算节点通过多数派确认日志持久化后,直接更新本地缓存。


四、‌对比与扩展

特性Aurora传统主从架构
日志同步多数派异步复制(允许空洞)46全量顺序日志同步(Raft)5
事务版本管理存储层全局版本号 + MVCC67计算层本地ReadView
缓存一致性Redo Log广播 + 分布式状态机4物理页同步 + 锁竞争

五、‌设计启示

Aurora通过‌计算与存储职责分离‌,将分布式共识、多版本控制等复杂性下沉至存储层,使计算层专注于查询优化与事务调度。其核心创新在于:

  1. 异步多数派写入‌:牺牲强顺序性换取高吞吐24;
  2. 日志即数据库‌:通过Redo Log重构数据页,避免物理页传输7;
  3. 全局版本时钟‌:实现跨节点的快照隔离与一致性读68。

这一架构为云原生数据库提供了可扩展、高可用的参考范式,但需权衡跨节点协调延迟与全局锁竞争问题。

Quorum外部选主与Raft/Paxos的对比分析

从分布式一致性协议的设计视角来看,Quorum的轻量化选主机制与Raft、Paxos的核心差异体现在‌职责边界‌与‌协调开销‌的权衡上,具体分析如下:


1. ‌Quorum外部选主的特性
  • 选主逻辑解耦
    Quorum协议的多数派机制仅关注数据副本的读写一致性(如NWR模型),而‌选主过程可通过外部协调服务(如ZooKeeper或Etcd)独立完成‌26。例如,存储节点无需维护选举状态机,仅需响应外部服务下发的Leader身份标识,显著降低存储层复杂度。

  • 资源开销优化
    传统Raft协议中选主与日志复制强耦合,Leader需持续发送心跳维持权威;而Quorum外部选主允许存储层专注于数据同步,仅需在Leader失效时触发外部服务的重新选举,减少网络带宽与CPU占用68。


2. ‌Raft协议的内置选主机制
  • 强绑定的Leader角色
    Raft要求集群内所有节点参与选主投票,并通过心跳机制维护Leader权威(最小选举超时时间通常为150-300ms)。这一设计虽简化了协议逻辑,但也导致了‌选主开销与日志复制的耦合性‌:网络抖动可能频繁触发重新选举,影响写入吞吐58。

  • 顺序日志的刚性约束
    Raft依赖连续日志索引实现强一致性,选主失败可能导致日志空洞需同步补齐(如新Leader需强制覆盖旧日志),这种设计在存储层需处理日志对齐与状态机恢复的额外开销58。


3. ‌Paxos的选主灵活性
  • Multi-Paxos的实践优化
    经典Paxos无明确Leader概念,但Multi-Paxos通过‌隐式选主(Leader Proposer)‌提升性能:选主过程通过一轮Prepare-Accept交互完成,后续提案由Leader主导,避免多提案竞争带来的活锁问题78。例如,选主成功后Leader可连续提交日志,无需重复协商提案编号。

  • 异步多数派的优势
    Paxos允许日志空洞提交(异步修复),选主失败时仅需保证新Leader拥有多数派支持的最新日志,无需全局同步历史记录。这种设计更适合跨地域部署场景,存储层可容忍短暂日志不一致48。


对比总结

维度Quorum + 外部选主RaftPaxos/Multi-Paxos
选主开销低(独立服务,无状态)26高(心跳维护 + 日志对齐)58中(隐式选举 + 异步修复)78
日志连续性非强制(允许空洞)4强制(连续索引)5非强制(空洞可异步补齐)78
适用场景高吞吐写入 + 弱网络容忍68强一致性 + 稳定网络环境5跨地域部署 + 灵活容错48

架构选型建议

  • 优先Quorum外部选主‌:若系统需高可用写入且允许短暂不一致(如日志型存储),外部选主可最大化存储层性能26。
  • 选择Raft‌:强一致性事务场景(如金融核心系统)需依赖Raft的顺序日志与内置Leader机制5。
  • 倾向Paxos‌:跨地域多活或大规模集群中,Paxos的异步多数派与灵活选主更适配复杂网络环境

【PingCAP Infra Meetup】No.54 数据库计算存储分离架构分析_哔哩哔哩_bilibili

相关文章:

从Aurora 架构看数据库计算存储分离架构

单就公有云来说,现在云数据面临的挑战有以下 5 个: 跨 AZ 的可用性与数据安全性。 现在都提多 AZ 部署,亚马逊在全球有 40 多个 AZ, 16 个 Region,基本上每一个 Region 之内的那些关键服务都是跨 3 个 AZ。你要考虑整个…...

ElasticSearch深入解析(十一):分页

在Elasticsearch中,常用的分页方案有from size、search_after和scroll三种,适用于不同场景。from size基于偏移量分页,是全局排序后的切片查询,适用于小数据量、浅分页场景,但深度分页性能差,且有默认上限…...

【MySQL】MySQL数据库结构与操作

目录 一. 数据库的概念 二. 数据库的分类 三. 初始MySQL数据库 四. 数据库操作 1)创建数据库 2) 查看数据库 3)选中数据库 4)删除数据库 五. SQL数据类型 1)整型和浮点型 2)字符串类型 3)时间…...

Vue框架的基本介绍

目录 一.Vue 1.概述 2.三大主流框架 3.优点: 二.Vue搭建 三.语法 1.基本框架 2.插值表达式 3.Vue指令 1.v-text: 2.v-html: ​编辑3.v-model: 4.v-on: 5.v-show: 6.v-if: 7.v-else: 8.v-bind: 9.v-for: 一.Vue 1.概述 Vue是一款用于构建用户界面的渐进式的…...

Web 架构之攻击应急方案

文章目录 一、引言二、常见 Web 攻击类型及原理2.1 SQL 注入攻击2.2 跨站脚本攻击(XSS)2.3 分布式拒绝服务攻击(DDoS) 三、攻击检测3.1 日志分析3.2 入侵检测系统(IDS)/入侵防御系统(IPS&#x…...

xss-labs靶场基础8-10关(记录学习)

前言: 内容: 第八关 关卡资源网站,html编码网站(两个网站,一个是实体编号转义(只对特殊字符有效,字母无效)、实体符号转义) 在线Html实体编码解码-HTML Entity Encodi…...

arctanx 导数 泰勒展开式证明

你提供的推导内容非常清晰,条理分明。下面是对 d d x arctan ⁡ x 1 1 x 2 \frac{d}{dx} \arctan x \frac{1}{1 x^2} dxd​arctanx1x21​ 的总结与适当补充: ✅ 结论 d d x arctan ⁡ x 1 1 x 2 \frac{d}{dx} \arctan x \frac{1}{1 x^2} dxd​a…...

基于Java的家政服务平台设计与实现(代码+数据库+LW)

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本家政服务平台就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息&a…...

SpringBoot的外部化配置

一、什么是外部化配置 外部化配置是指把应用程序中各种可配置的参数、属性等信息,从代码内部提取出来,放置在外部的配置文件、数据库或配置中心等地方(比如使用.properties、.yml 或.xml 等格式的文件)进行管理。提高应用程序的可…...

Java鼠标事件监听器MouseListener、MouseMotionListener和MouseWheelListener

Java鼠标事件监听器MouseListener、MouseMotionListener和MouseWheelListener java中创建鼠标,键盘的事件行为监听器的几种方法 这里以鼠标点击事件监听器为例,其他也是一样创建。 常用的消息监听器对象 1:点击事件监听器 ActionListener 2:按键事件监…...

第三方支付公司如何代付和入账?

通俗来说,就是企业把钱打到第三方公司账户上,再由第三方公司把钱打入客户指定账户。 那么第三方支付入账流程是怎样的呢? 第一,企业向第三方支付公司指定账户充值打款;第二,企业提交代付银行卡信息后台操…...

.NET8关于ORM的一次思考

文章目录 前言一、思路二、实现ODBC>SqlHelper.cs三、数据对象实体化四、SQL生成SqlBuilder.cs五、参数注入 SqlParameters.cs六、反射 SqlOrm.cs七、自定义数据查询八、总结 前言 琢磨着在.NET8找一个ORM,对比了最新的框架和性能。 框架批量操作性能SQL控制粒…...

LlamaIndex 第八篇 MilvusVectorStore

本指南演示了如何使用 LlamaIndex 和 Milvus 构建一个检索增强生成(RAG)系统。 RAG 系统将检索系统与生成模型相结合,根据给定的提示生成新的文本。该系统首先使用 Milvus 等向量相似性搜索引擎从语料库中检索相关文档,然后使用生…...

记录为什么LIst数组“增删慢“,LinkedList链表“查改快“?

数组(Array) 增删慢:对于数组来说,增加或删除元素的操作可能会比较慢,特别是当你需要在数组的开头或中间进行这些操作时。这是因为这些操作通常需要移动数组中的其他元素以保持连续性。例如,如果你想要在数…...

【论文阅读】Dip-based Deep Embedded Clustering with k-Estimation

摘要 近年来,聚类与深度学习的结合受到了广泛关注。无监督神经网络,如自编码器,能够自主学习数据集中的关键结构。这一思想可以与聚类目标结合,实现对相关特征的自动学习。然而,这类方法通常基于 k-means 框架&#x…...

ARFoundation 图片识别,切换图片克隆不同的追踪模型

场景搭建: 你可以把我的代码发给AI,去理解 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.XR; using UnityEngine.XR.ARFoundation; using UnityEngine.XR.ARSubsystems; using TMPro; using Unit…...

鸿蒙next播放B站视频横屏后的问题

(此文讨论范围为b站视频链接,且不包括b站直播链接;android/iOS的webview播放b站视频完全没有这么多问题) 1、竖屏播放没问题 从一个竖屏页p1点击进入视频页p2,p2页仍为竖屏; p2页有一Web组件,…...

华为0507机试

题目二 建设基站 有一棵二叉树&#xff0c;每个节点上都住了一户居民。现在要给这棵树上的居民建设基站&#xff0c;每个基站只能覆盖她所在与相邻的节点&#xff0c;请问信号覆盖这棵树最少需要建设多少个基站 #include <bits/stdc.h> using namespace std;const int …...

apache2的默认html修改

使用127.0.0.1的时候&#xff0c;默认打开的是index.html&#xff0c;可以通过配置文件修改成我们想要的html vi /etc/apache2/mods-enabled/dir.conf <IfModule mod_dir.c>DirectoryIndex WS.html index.html index.cgi index.pl index.php index.xhtml index.htm <…...

EXCEL下拉菜单与交替上色设置

Excel/WPS 表格操作教程&#xff08;双功能整合&#xff09; 目录 功能一&#xff1a;交替行上色 Excel 操作WPS 操作 功能二&#xff1a;下拉菜单设置 Excel 操作WPS 操作 组合效果示例注意事项 功能一&#xff1a;交替行上色 Excel 操作 选中数据区域 拖动鼠标选择需要设置…...

list基础用法

list基础用法 1.list的访问就不能用下标[]了,用迭代器2.emplace_back()几乎是与push_back()用法一致&#xff0c;但也有差别3.insert(),erase()的用法4.reverse()5.排序6.合并7.unique()&#xff08;去重&#xff09;8.splice剪切再粘贴 1.list的访问就不能用下标[]了,用迭代器…...

鸿蒙PC版体验_画面超级流畅_具备terminal_无法安装windows、linux软件--纯血鸿蒙HarmonyOS5.0工作笔记017

鸿蒙NEXT和开源鸿蒙OpenHarmony现在已经开发实现统一,使用鸿蒙ArkTS开发的应用,可以直接 在开源鸿蒙上. 鸿蒙的terminal是使用的linux的语法,但是有很多命令,目前还不能使用,常用的ifconfig等是可以用的. 鸿蒙终于出来PC版了,虽然,不像Windows以及mac等,开放的命令那么多,但…...

Spring 集成 SM4(国密对称加密)

Spring 集成 SM4&#xff08;国密对称加密&#xff09;算法 主要用于保护敏感数据&#xff0c;如身份证、手机号、密码等。 下面是完整集成步骤&#xff08;含工具类 使用示例&#xff09;&#xff0c;采用 Java 实现&#xff08;可用于 Spring Boot&#xff09;。 一、依赖引…...

deepseek梳理java高级开发工程师微服务面试题

Java微服务高级面试题与答案 一、微服务架构设计 1. 服务拆分原则 Q1&#xff1a;微服务拆分时有哪些核心原则&#xff1f;如何解决拆分后的分布式事务问题&#xff1f; 答案&#xff1a; 服务拆分五大原则&#xff1a; 1. 单一职责原则&#xff08;SRP&#xff09;- 每个…...

人事管理系统8

员工管理&#xff08;分页查询、查看详情页、修改&#xff09;&#xff1a; 1. 分页查询 Staff.java 中加入部门名和岗位名两个属性以及对应的 get 和 set 方法。这两个属性没有数据库字段对应&#xff0c; 仅供前端显示用&#xff1a; private String departname; //部门名属…...

Stapi知识框架

一、Stapi 基础认知 1. 框架定位 自动化API开发框架&#xff1a;专注于快速生成RESTful API 约定优于配置&#xff1a;通过标准化约定减少样板代码 企业级应用支持&#xff1a;适合构建中大型API服务 代码生成导向&#xff1a;显著提升开发效率 2. 核心特性 自动CRUD端点…...

第三章 初始化配置(一)

我们首先介绍配置Logback的方法&#xff0c;并提供了许多示例配置脚本。在后面的章节中&#xff0c;我们将介绍Logback所依赖的配置框架Joran。 初始化配置 在应用程序代码中插入日志请求需要大量的规划和努力。观察表明&#xff0c;大约4%的代码用于记录。因此&#xff0c;即…...

WebGIS 开发中的数据安全与隐私保护:急需掌握的要点

在 WebGIS 开发中&#xff0c;数据安全与隐私保护是绝对不能忽视的问题&#xff01;随着地理信息系统的广泛应用&#xff0c;越来越多的敏感数据被存储和传输&#xff0c;比如个人位置信息、企业地理资产等。一旦这些数据泄露&#xff0c;后果不堪设想。然而&#xff0c;很多开…...

C语言 ——— 函数栈帧的创建和销毁

目录 寄存器 mian 函数是被谁调用的 通过汇编了解函数栈帧的创建和销毁 转汇编后&#xff08;Add函数之前的部分&#xff09; 转汇编后&#xff08;进入Add函数之前的部分&#xff09; 转汇编后&#xff08;正式进入Add函数的部分&#xff09; ​编辑 总结 局部变量…...

2025年真实面试问题汇总(二)

jdbc的事务是怎么开启的 在JDBC中&#xff0c;事务的管理是通过Connection对象控制的。以下是开启和管理事务的详细步骤&#xff1a; 1. 关闭自动提交模式 默认情况下&#xff0c;JDBC连接处于自动提交模式&#xff08;auto-commit true&#xff09;&#xff0c;即每条SQL语…...

【用「概率思维」重新理解生活】

用「概率思维」重新理解生活&#xff1a;为什么你总想找的「确定答案」并不存在&#xff1f; 第1层&#xff1a;生活真相——所有结果都是「综合得分」 现象&#xff1a;我们总想找到“孩子生病是因为着凉”或“伴侣生气是因为那句话”的单一答案现实&#xff1a;每个结果背后…...

Redis——线程模型·

为什么Redis是单线程却仍能有10w/秒的吞吐量&#xff1f; 内存操作&#xff1a;Redis大部分操作都在内存中完成&#xff0c;并且采用了高效的数据结构&#xff0c;因此Redis的性能瓶颈可能是机器的内存或者带宽&#xff0c;而非CPU&#xff0c;既然CPU不是瓶颈&#xff0c;自然…...

APS排程系统(Advanced Planning and Scheduling,高级计划与排程系统)

APS排程系统&#xff08;Advanced Planning and Scheduling&#xff0c;高级计划与排程系统&#xff09;是一种基于供应链管理和约束理论的智能生产管理工具&#xff0c;旨在通过动态优化资源分配和生产流程&#xff0c;解决制造业中的复杂计划问题。以下是其核心要点解析&…...

首个窗口级无人机配送VLN系统!中科院LogisticsVLN:基于MLLM实现精准投递

导读 随着智能物流需求日益增长&#xff0c;特别是“最后一公里”配送场景的精细化&#xff0c;传统地面机器人逐渐暴露出适应性差、精度不足等瓶颈。为此&#xff0c;本文提出了LogisticsVLN系统——一个基于多模态大语言模型的无人机视觉语言导航框架&#xff0c;专为窗户级别…...

仓颉Magic亮相GOSIM AI Paris 2025:掀起开源AI框架新热潮

巴黎&#xff0c;2025年5月6日——由全球开源创新组织GOSIM联合CSDN、1ms.ai共同主办的 GOSIM AI Paris 2025 大会今日在法国巴黎盛大开幕。GOSIM 作为开源人工智能领域最具影响力的年度峰会之一&#xff0c;本届大会以“开放、协作、突破”为核心&#xff0c;汇聚了来自华为、…...

《Effective Python》第2章 字符串和切片操作——深入理解Python 中的字符数据类型(bytes 与 str)的差异

引言 本篇博客基于学习《Effective Python》第三版 Chapter 2: Strings and Slicing 中的 Item 10: Know the Differences Between bytes and str 的总结与延伸。在 Python 编程中&#xff0c;字符串处理是几乎每个开发者都会频繁接触的基础操作。然而&#xff0c;Python 中的…...

windows 强行终止进程,根据端口号

步骤1&#xff1a;以管理员身份启动终端‌ 右键点击开始菜单 → 选择 ‌终端&#xff08;管理员&#xff09;‌ 或 ‌Windows PowerShell&#xff08;管理员&#xff09;‌。 ‌步骤2&#xff1a;检测端口占用状态‌ # 查询指定端口&#xff08;示例为1806&#xff09; netst…...

PHP-FPM 调优配置建议

1、动态模式 pm dynamic; 最大子进程数&#xff08;根据服务器内存调整&#xff09; pm.max_children 100 //每个PHP-FPM进程大约占用30-50MB内存(ThinkPHP框架本身有一定内存开销)安全值&#xff1a;8GB内存 / 50MB ≈ 160&#xff0c;保守设置为100 ; 启动时创建的进程数&…...

我喜欢的vscode几个插件和主题

主题 Monokaione Monokai Python 语义高光支持 自定义颜色为 self 将 class , def 颜色更改为红色 为装饰器修复奇怪的颜色 适用于魔法功能的椂光 Python One Dark 这个主题只在python中效果最好。 我为我个人使用做了这个主题,但任何人都可以使用它。 插件 1.Pylance Pylanc…...

openharmony 地图开发(高德sdk调用)

1.显示地图 2.利用sdk完成搜索功能&#xff0c;以列表形式展示&#xff0c;并提供定位和寻路按钮 3.利用sdk完成寻路&#xff0c;并显示路线信息和画出路线&#xff0c;路线和信息各自点击后可联动到对方信息显示 4.调用sdk 开始导航 商务合作&#xff1a;...

Kotlin-类和对象

文章目录 类主构造函数次要构造函数总结 对象初始化 类的继承成员函数属性覆盖(重写)智能转换 类的扩展 类 class Student { }这是一个类,表示学生,怎么才能给这个类添加一些属性(姓名,年龄…)呢? 主构造函数 我们需要指定类的构造函数。构造函数也是函数的一种,但是它专门…...

LVS+keepalived实战案例

目录 部署LVS 安装软件 创建VIP 创建保存规则文件 给RS添加规则 验证规则 部署RS端 安装软件 页面内容 添加VIP 配置系统ARP 传输到rs-2 客户端测试 查看规则文件 实现keepalived 编辑配置文件 传输文件给backup 修改backup的配置文件 开启keepalived服务 …...

可视化+智能补全:用Database Tool重塑数据库工作流

一、插件概述 Database Tool是JetBrains系列IDE&#xff08;IntelliJ IDEA、PyCharm等&#xff09;内置的数据库管理插件。它提供了从数据库连接到查询优化的全流程支持&#xff0c;让开发者无需离开IDE即可完成数据库相关工作。 核心价值&#xff1a; 统一工作环境&#xf…...

【认知思维】沉没成本谬误:为何难以放弃已投入的资源

什么是沉没成本谬误 沉没成本谬误&#xff08;Sunk Cost Fallacy&#xff09;是指人们倾向于根据过去已经投入的资源&#xff08;时间、金钱、精力等&#xff09;而非未来收益来做决策的一种认知偏差。简单来说&#xff0c;它反映了"我已经投入这么多&#xff0c;不能就这…...

Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法

Linux 系统安全基线检查&#xff1a;入侵防范测试标准与漏洞修复方法 在 Linux 系统的安全管理中&#xff0c;入侵防范是至关重要的环节。通过对系统进行安全基线检查&#xff0c;可以有效识别潜在的安全漏洞&#xff0c;并采取相应的修复措施&#xff0c;从而降低被入侵的风险…...

【HT周赛】T3.二维平面 题解(分块:矩形chkmax,求矩形和)

题意 需要维护 n n n \times n nn 平面上的整点&#xff0c;每个点 ( x , y ) (x, y) (x,y) 有权值 V ( x , y ) V(x, y) V(x,y)&#xff0c;初始都为 0 0 0。 同时给定 n n n 次修改操作&#xff0c;每次修改给出 x 1 , x 2 , y 1 , y 2 , v x_1, x_2, y_1, y_2, v x…...

目标检测任务常用脚本1——将YOLO格式的数据集转换成VOC格式的数据集

在目标检测任务中&#xff0c;不同框架使用的标注格式各不相同。常见的框架中&#xff0c;YOLO 使用 .txt 文件进行标注&#xff0c;而 PASCAL VOC 则使用 .xml 文件。如果你需要将一个 YOLO 格式的数据集转换为 VOC 格式以便适配其他模型&#xff0c;本文提供了一个结构清晰、…...

2025深圳杯D题法医物证多人身份鉴定问题四万字思路

Word版论文思路和千行Python代码下载&#xff1a;https://www.jdmm.cc/file/2712074/ 引言 法医遗传学中的混合生物样本分析&#xff0c;特别是短串联重复序列&#xff08;Short Tandem Repeat, STR&#xff09;分型结果的解读&#xff0c;是现代刑事侦查和身份鉴定领域的核心…...

利用自适应双向对比重建网络与精细通道注意机制实现图像去雾化技术的PyTorch代码解析

利用自适应双向对比重建网络与精细通道注意机制实现图像去雾化技术的PyTorch代码解析 漫谈图像去雾化的挑战 在计算机视觉领域&#xff0c;图像复原一直是研究热点。其中&#xff0c;图像去雾化技术尤其具有实际应用价值。然而&#xff0c;复杂的气象条件和多种因素干扰使得这…...

Focal Loss 原理详解及 PyTorch 代码实现

Focal Loss 原理详解及 PyTorch 代码实现 介绍一、Focal Loss 背景二、代码逐行解析1. 类定义与初始化 三、核心参数作用四、使用示例五、应用场景六、总结 介绍 一、Focal Loss 背景 Focal Loss 是为解决类别不平衡问题设计的损失函数&#xff0c;通过引入 gamma 参数降低易…...