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

又一关键系统上线,理想车云和自动驾驶系统登陆OceanBase

8 月 1 日,理想汽车公布 7 月交付数据,理想汽车 2023 年 7 月共交付新车 34,134 辆,同比增长 227.5%,并已连续两个月交付量突破三万。至此,理想汽车 2023 年累计交付量已经达到 173,251 辆,远超 2022 年全年交付量,在一众国内造车新势力中保持领先。

这一成绩不仅源于理想汽车“家用豪华 SUV”的精准市场定位,同时也得益于交付能力和产品力均做到了足够“能打”。而这背后,都离不开一个重要的硬核辅助——数据库。

图片

对于车企来说,产线的平稳高效运转是“生命线”。产线上的任一系统出现故障将直接导致质量问题,甚至停产,停产的每一秒都意味着人力、资源等的巨大损失。而传统数据库在稳定性方面存在隐患,故障恢复依赖人工干预,难以满足智能制造基地的高要求。

理想汽车的常州智能制造基地,依靠完全自研的 Li-MOS,整合了世界领先的人工智能等前沿技术,打造了一套安全高效的智能生产系统。2022 年 1 月,经过严苛的测试,理想汽车的 Li-MOS、WMS(仓储管理系统)通过 OceanBase 进行数据库升级,以解决系统稳定性和连续性问题。

图片

基于 Paxos 协议,OceanBase 实现了数据库服务“故障自动恢复” 和 “数据零丢失”,在网络条件复杂的情况下,也能保持稳定的性能和可用性。作为共识协议的“本源”、容错性最好的 Paxos,其工程实现难度也是最大的。这也是业界不少产品采用 Raft 简化版算法的原因。而 OceanBase 早在 1.0 版本就完整独立地实现了基于Multi-Paxos 算法的日志同步机制,并在极致场景下打磨多年,这也为 OceanBase 支撑跨城远距离的“多地多活”部署架构提供了坚实基础。

升级至 OceanBase 后,理想汽车的产线执行系统数据库抖动频率平均下降约  80%,对于常见的故障事件真正做到了“先恢复,后分析”,大幅提升系统运行稳定性,有力保障智能制造基地稳定高效运行。而凭借一整套智能运维体系,异常 SQL 诊断可以做到实时自动分析,DBA 在关键时刻只需看一眼可疑 SQL 列表就能快速判断问题根因,并获得合理的应急优化建议。与此同时,升级后的数据库实现了同城双活、异地 RPO=0,这使得理想汽车的产线执行系统能够在无人值守的情况下,30 秒内完成故障的自动恢复。

因此,即便从 7 月起理想汽车常州工厂每周产能爬升至 8000 台/周的历史最高峰值,数据库也能支撑产线平稳连续生产,保证消费者在最短时间内收到爱车。

图片

随着消费者对自动驾驶需求的日益增加,众多新能源汽车厂商将大量智能辅助功能集成到汽车当中,让驾乘体验更加便捷、舒适。而车辆和云端的实时数据交互,也保证车辆功能的准确操控和可视化。

在自动驾驶方面,以理想 L9 为例,其采用了理想 AD Max 智能驾驶系统,标配强大的感知系统,6 个 800 万像素摄像头,4 个 200 万像素环视摄像头和 1 个 200 万像素后视摄像头,实现了 360 度全方位以及最远 550 米的前视感知距离;1 个前向毫米波雷达、12 颗第六代超声波传感器和 1 颗 128 线激光雷达,增强了感知冗余能力以及弱暗光等复杂环境适应性,能更有效地识别风险,提升驾驶的安全性。

随着今年理想汽车城市 NOA 能力的发布,大模型 AI 加持下,自动驾驶系统产生和用于训练的数据量呈现井喷态势。这些大量的数据处理场景,都对数据库的高并发、低延迟、强扩展提出了极严苛的要求。

在车云方面,体验过理想汽车高度智能化系统的用户相信都有一种感受,那就是其丰富的功能(如直线召唤、远程温控,OTA 升级能力等)让理想汽车的操控更加便捷和人性化。而这些功能的背后,就有大量传感器和电控系统在和云端进行着数据交互。

有别于理想汽车产线制造系统在数据中心私有部署,车云业务出于安全和灵活的考虑采用不同云基础设施进行支持,并需要在公有云多个地域部署。这样从架构层面做到即便某一个局部功能出现故障,整体服务不会受到影响,车主的行车安全持续受到保障。

自动驾驶和车云业务的特点带来了技术上的巨大挑战:一方面由于多种数据库产品在不同云基础设施上的功能、性能各异,运维复杂度高,差异大,这使得规模化管理、资源整合异常困难;另一方面,传统的单体数据库横向扩展困难,依赖人工拆分,单点瓶颈问题非常突出;同时其主备逻辑复制的结构决定了无法承担类似车联网系统多地访问的低延迟要求。

部分数据库产品虽然解决了扩展性问题,但是其一致性协议的工程实现方案对网络延迟敏感,又使得在远距离机房甚至跨地域同步时,或者网络条件不稳定的场景下,会发生明显的写入抖动、服务不可靠的问题。同时,存储、计算、管控分离的架构也导致了响应时间往往难以满足类似车联网、自动驾驶业务的低延迟要求,使得数据库的压力越来越大。

图片

在理想汽车智能生产系统稳定运行 17 个月后,2023 年 5 月,OceanBase 的云数据库产品 OB Cloud 凭借出色的性能和灵活的部署模式,帮助理想汽车自动驾驶和车云等系统批量上线 OB Cloud,以应对大量云场景挑战。

这套数据库架构要稳定的服务好业务,需要对三个核心问题给出答案:1.云上多地多活;2.海量并发 3.性价比。具体如何在 OB Cloud 解决这些问题?请看下面的分析。

解决方案一:通过 OB Cloud 实现混合云统一部署,解决异地多活、多基础设施的无缝对接问题

理想汽车为了在服务体验上尽可能提供极致的弹性和连续性,在全国跨多个地域和多家云基础设施,通过类似“单元化”的架构构建了自己的车云服务。而 OceanBase 天然无共享架构,不挑专属硬件,并能支持不同云基础设施。

通过这一点,理想汽车既可以在数据中心部署整套 OceanBase 平台,也可以在不同云基础设施、云服务多种形态上提供一致的功能和管理界面,大幅提升了存储底盘的一体性和管理效率。同时基于前面提到的原生高可用架构,OB Cloud 能够在局部单点故障时快速自动恢复,即使跨地域部署也能做到稳定服务,确保类似联网车机等关键系统的安全运行,保障车主的出行驾乘体验。

解决方案二:基于 OB Cloud 的多点写入能力,解决海量车辆行驶数据的大并发写入问题

OceanBase 的原生分布式架构,单个集群即可扩展至上千节点,承载 PB 级别以上的海量数据。我们通过 OceanBase 强大丰富的分区表特性,将用户不同业务场景中的数据按照 hash、range、list 等不同的维度进行设计。使得每个节点上的数据分区可同时接受写入,突破了传统数据库主备节点前“一写多读”的限制。

具备高可扩展性的同时,通过一系列优化分布式事务开销的机制和手段,使得 OB Cloud 能够通过集群中多个不同的租户为自动驾驶系统中记录汽车行驶环境、行驶速度等训练数据包括元数据的过程提供高性能、低延迟,极高弹性的存储引擎,显著提升了基于 AI 大模型的 AD MAX 3.0 的训练效率。

解决方案三:在海量数据规模下,在“数据的存储成本”和“数据集的可操作、可分析性”上取得平衡 

如果将大量的数据存储在单机关系型数据库中,面临“存不下,存得贵”的问题,而如果转移到其他非结构化存储引擎中,解决了“存不下”问题后,数据又变得不那么容易进行修改、分析、处理。

我们基于用户的场景,将数据分为流水型、状态型,或者基于业务类型分别放置在不同的集群中,而 OceanBase 基于 LSM-Tree 的存储引擎,其行列混存的存储格式,结合高级编码压缩技术,为巨量数据的存储带来超过 70% 的压缩率,节省大量存储成本。与此同时,一套引擎下的 HTAP 能力又使得这些较为庞大的数据集依然能够被按照关系型模型的方式访问,一举两得,大幅提升了研发效率,最终带来的是终端用户更好的体验。

目前,理想汽车的智能生产、仓储系统都已经稳定运行在 OceanBase 上,打造全球领先的智能制造系统;而随着车云和自动驾驶系统登陆 OB Cloud,进一步实现了混合云部署,解决了海量数据并发和异地多活的难题,让用户的智能驾驶体验更加安全与丝滑。未来,理想汽车与 OB Cloud 的合作将在更多云场景落地,推动产品加速创新。国产新能源与国产科技碰撞,让每一笔「制造」都算数。

相关文章:

又一关键系统上线,理想车云和自动驾驶系统登陆OceanBase

8 月 1 日,理想汽车公布 7 月交付数据,理想汽车 2023 年 7 月共交付新车 34,134 辆,同比增长 227.5%,并已连续两个月交付量突破三万。至此,理想汽车 2023 年累计交付量已经达到 173,251 辆,远超 2022 年全年…...

SIEM(安全信息和事件管理)解决方案

什么是SIEM 安全信息和事件管理(SIEM)是一种可帮助组织在安全威胁危害到业务运营之前检测、分析和响应安全威胁的解决方案,将安全信息管理 (SIM) 和安全事件管理 (SEM) 结合到一个安全管理系统中。SIEM 技术从广泛来源收集事件日志数据&…...

Go 自学:map关联数组

以下代码展示了如何建立一个map。 我们可以使用delete删除map中的元素。 我们还可以使用loop遍历map中的所有元素。 package mainimport ("fmt" )func main() {languages : make(map[string]string)languages["JS"] "Javascript"languages[&qu…...

c#多态(override)的使用

方法重写(override):多态,通过父类类型对象,调用子类当中对应方法的实现。 细节:子类当中的override方法会“抹杀”父类当中对应virtual方法 不使用多态时,父类调用子类方法时,会调用父类的方法…...

kafka 动态扩容现有 topic 的分区数和副本数

文章目录 [toc]创建一个演示 topic生产一些数据使用消费者组消费数据增加分区无新数据产生,有旧数据未消费有新数据产生,有旧数据未消费 增加副本创建 json 文件使用指定的 json 文件增加 topic 的副本数使用指定的 json 文件查看 topic 的副本数增加的进…...

【数据结构】Golang 实现单链表

概念 通过指针将一组零散的内存块串联在一起 , 把内存块称为链表的“结点”。 记录下个结点地址的指针叫作后继指针 next ,第一个结点叫作头结点,把最后一个结点叫作尾结点 。 代码实现 定义单链表 在 golang 中可以通过结构体定义单链表…...

云服务器利用Docker搭建sqli-labs靶场环境

一、安装宝塔面板 使用xshell、electerm、SecureCRT等远程终端连接登陆上云服务器,在Linux宝塔面板使用脚本安装 安装后,如下图:按照提示,在云服务器防火墙/安全组放行Linux宝塔面板的端口 在浏览器打开上述网址,登…...

jQuery成功之路——jQuery介绍和jQuery选择器概述

一、jQuery介绍 1.1 jQuery概述 jQuery的概述 jQuery是一个快速、简洁的JavaScript框架。jQuery设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。JQuery封装了JavaScript常用的功能代码,提供了一套易于使…...

极限五分钟,在宝塔中用 Docker 部署升讯威在线客服系统

最近客服系统成功经受住了客户现场组织的压力测试,获得了客户的认可。 客户组织多名客服上线后,所有员工同一时间打开访客页面疯狂不停的给在线客服发消息,系统稳定无异常无掉线,客服回复消息正常。消息实时到达无任何延迟。 本文…...

Java--静态字段与静态方法

1、静态字段 如果将一个字段定义为static,每个类只有一个这样的字段。而对于非静态的实例字段,每个对象都有自己的一个副本。 例如: class Employee {private static int nextId 1;private int id;... }其中,每一个Employee对…...

多线程的五种“打开”方式

1 概念 1.1 线程是什么?? 线程(Thread)是计算机科学中的一个基本概念,它是进程(Process)中的一个执行单元,负责执行程序的指令序列。线程是操作系统能够进行调度和执行的最小单位。…...

信息熵 条件熵 交叉熵 联合熵 相对熵(KL散度) 互信息(信息增益)

粗略版快速总结 条件熵 H ( Q ∣ P ) 联合熵 H ( P , Q ) − H ( P ) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 条件熵H(Q∣P)联合熵H(P,Q)−H(P) 信息增益 I ( P , Q ) H ( P ) − H ( P ∣ Q ) H ( P ) H ( Q ) − H ( P , Q ) 信息增益 I(P,Q)H(P)−H(P∣Q)H(P)H(Q)-H(P,Q) 信息…...

Fiddler Response私人订制

在客户端接口的测试中,我们经常会需要模拟各种返回状态或者特定的返回值,常见的是用Fiddler模拟各种请求返回值场景,如重定向AutoResponder、请求拦截修改再下发等等。小编在近期的测试中遇到的一些特殊的请求返回模拟的测试场景,…...

【德哥说库系列】-ASM管理Oracle 19C单实例部署

📢📢📢📣📣📣 哈喽!大家好,我是【IT邦德】,江湖人称jeames007,10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】!😜&am…...

手写一个简单爬虫--手刃豆瓣top250排行榜

#拿到页面面源代码 request #通过re来提取想要的有效信息 re import requests import re url"https://movie.douban.com/top250"headers{"user-agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/11…...

【word密码】如何限制word文件中部分内容?

Word文件中有一部分内容不想他人编辑,我们可以设置限制编辑,可以对一部分内容设置限制编辑,具体方法如下: 我们将需要将可以编辑的地方选中,然后打开限制编辑功能 然后勾选限制编辑设置界面中的【限制编辑】和【每个人…...

spring 自定义类型转换-ConverterRegistry

1背景介绍 一个应用工程里面,一遍会涉及到很多的模型转换,如DTO模型转DO模型,DO模型转DTO, 或者Request转DTO模型,总的来说,维护起来还是相对比较复杂。每涉及一个转换都需要重新写对应类的get或者set方法&#xff0c…...

springboot实现发送短信验证码

目录 一、选择并注册短信服务提供商: 二、添加依赖: 三、配置短信服务信息: 四、编写发送短信验证码的方法: 五、调用发送短信验证码的方法: 一、选择并注册短信服务提供商: 1、选择一个可靠的短信服…...

2024王道408数据结构P144 T18

2024王道408数据结构P144 T18 思考过程 首先还是先看题目的意思,让我们在中序线索二叉树里查找指定结点在后序的前驱结点,这题有一点难至少对我来说…我讲的不清楚理解一下我做的也有点糊涂。在创建结构体时多两个变量ltag和rtag,当ltag0时…...

在windows下安装配置skywalking

1.下载地址 Downloads | Apache SkyWalkinghttp://skywalking.apache.org/downloads/ 2.文件目录说明 将文件解压后,可看到agent和bin目录: Agent:作为探针,安装在服务器端,进行数据采集和上报。 Config&#xff1a…...

关于大模型参数微调的不同方法

Adapter Tuning 适配器模块(Adapter Moudle)可以生成一个紧凑且可扩展的模型;每个任务只需要添加少量可训练参数,并且可以在不重新访问之前任务的情况下添加新任务。原始网络的参数保持不变,实现了高度的参数共享 Pa…...

方法的引用第一版(method reference)

1、体验方法引用 在使用Lambda表达式的时候,我们实际上传递进去的代码就是一种解决方案:拿参数做操作那么考虑一种情况:如果我们在Lanbda中所指定的操作方案,已经有地方存在相同方案,那是否还有必要再重复逻辑呢&#…...

Android DataBinding 基础入门(学习记录)

目录 一、DataBinding简介二、findViewById 和 DataBinding 原理及优缺点1. findViewById的优缺点2. DataBinding的优缺点 三、Android mvvm 之 databinding 原理1. 简介和三个主要的实体DataViewViewDataBinding 2.三个功能2.1. rebind 行为2.2 observe data 行为2.3 observe …...

spring 错误百科

一、使用Spring出错根源 1、隐式规则的存在 你可能忽略了 Sping Boot 中 SpringBootApplication 是有一个默认的扫描包范围的。这就是一个隐私规则。如果你原本不知道,那么犯错概率还是很高的。类似的案例这里不再赘述。 2、默认配置不合理 3、追求奇技淫巧 4、…...

OpenCV基本操(IO操作,读取、显示、保存)

图像的IO操作,读取和保存方法 1.1 API cv.imread()参数: 要读取的图像 读取图像的方式: cv.IMREAD*COLOR:以彩色模式加载图像,任何图像的图像的透明度都将被忽略。这是默认参数 标志: 1 cv.IMREAD*GRAYSCALE :以…...

1.快速搭建Flask项目

一.Pear Admin Flask 官网文档:http://www.pearadmin.com/doc/index.html 1.1下载安装 # 下 载 git clone https://gitee.com/pear-admin/pear-admin-flask# 安 装 pip install -r requirements.txt1.2修改配置 applications下的config.py docker运行的修改dockerdata/conf…...

编程题四大算法思想(三)——贪心法:找零问题、背包问题、任务调度问题、活动选择问题、Prim算法

文章目录 贪心法找零问题(change-making problem)贪心算法要求基本思想适合求解问题的特征 背包问题0/1背包问题0/1背包问题——贪心法 分数背包问题 任务调度问题活动选择问题活动选择——贪心法最早结束时间优先——最优性证明 Prim算法 贪心法 我在当…...

core dump管理在linux中的前世今生

目录 一、什么是core dump? 二、coredump是怎么来的? 三、怎么限制coredump文件的产生? ulimit 半永久限制 永久限制 四、从源码分析如何对coredump文件的名字和路径管理 命名 管理 一些问题的答案 1、为什么新的ubuntu不能产生c…...

Springboot整合knife4j配置swagger教程-干货

开启swagger文档&#xff0c;直接上教程。 第一步:引入依赖 <!--swagger 依赖--><dependency><groupId>com.github.xiaoymin</groupId><artifactId>knife4j-spring-boot-starter</artifactId><version>3.0.3</version></d…...

C++ 中的 Pimpl 惯用法

C 中的 Pimpl 惯用法 介绍 Pimpl&#xff08;Pointer to Implementation&#xff09;是一种常见的 C 设计模式&#xff0c;用于隐藏类的实现细节&#xff0c;从而减少编译依赖和提高编译速度。本文将通过一个较为复杂的例子&#xff0c;展示如何使用智能指针&#xff08;如 s…...