基于NVRAM的内存预写日志技术

NVRAM内存预写日志技术

基于NVRAM的移动智能设备内存中预写日志

摘要

近年来,随着大多数移动应用使用轻量级嵌入式数据库,确保智能手机和平板电脑等电池供电的移动设备中数据库的可靠性变得愈发重要。预写日志(WAL)是嵌入式数据库中用于保障其可靠性的代表性技术之一。然而,该技术会导致额外的数据写入开销。此外,文件系统本身也提供可靠性技术,因而可能造成重复开销。这两类开销都会导致移动应用的性能下降,并对用户体验产生负面影响。本文提出一种高效的内存中预写日志(IMWAL)技术,适用于采用非易失性随机存取存储器(NVRAM)的移动设备嵌入式数据库。当调用嵌入式数据库的写操作时,IMWAL确保移动应用中的新数据全部作为预写数据日志写入NVRAM。该数据日志通过重新映射内存地址被复用以更新嵌入式数据库文件,从而减少额外写入。借助IMWAL,即使在移动设备发生崩溃后,写操作仍可继续执行,在确保嵌入式数据库可靠性的同时实现性能提升。为评估所提出的技术,我们在真实移动平台的内存文件系统上实现了该技术,并通过多种实验(包括各类基准测试和真实移动应用工作负载)将其性能与原始WAL开启模式及WAL关闭模式进行对比。结果表明,在真实移动设备上,IMWAL相比原始WAL技术在嵌入式数据库场景下平均性能提升14%。

索引术语

移动设备,嵌入式数据库,非易失性随机存取存储器,可靠性

一、引言

在现代移动设备中,文件系统和嵌入式数据库通常配备了可靠性技术。这些技术通常会产生额外的数据写入,以可靠地恢复因电池断电导致的突发系统崩溃或软件异常。由于写入更多数据意味着消耗更多时间,应用程序的性能和用户体验可能会下降,尤其是在移动设备的嵌入式数据库中。最近一项研究调查了移动设备上的移动应用为确保嵌入式数据库可靠性而产生的额外数据写入量[1]。根据该研究,移动应用通常会产生多达90%的写入操作以确保嵌入式数据库的可靠性。另一项最新研究表明,嵌入式数据库的性能受到日志的日志问题的影响[2]。该研究结果表明,采用预写日志(WAL)的日志记录方式在日志的日志问题上最多会多消耗40%的时间。这一现象是影响移动设备用户体验的最主要因素。因此,降低这些开销是提升移动应用性能和改善用户体验的关键所在。

作为嵌入式数据库的性能提升技术之一,将非易失性随机存取存储器(NVRAM)应用于移动设备可能是一个有前景的选择。随着NVRAM器件技术每年不断进步,许多计算机架构研究人员已探讨了采用NVRAM的各种内存层次结构设计[3]‐[5]。这一变化不仅对通用计算机系统至关重要,对消费电子特别是智能手机和平板电脑等移动设备也具有重要意义。如果移动设备能够将文件数据保存在NVRAM中,则即使发生崩溃(如断电或突发系统故障),也能以比传统存储设备(如硬盘或固态硬盘)更快的性能持久地存储数据。近期,学术界针对NVRAM的内存文件系统研究正积极开展[6]‐[10]。其他近期研究尝试通过采用NVRAM减少为保证可靠性所需的额外数据写入,从而提升系统性能[11]‐[18]。一项更新的研究指出,智能手机中的内存实际上已经由电池供电维持,在实际应用中可视作非易失性[19]。

尽管采用非易失性随机存取存储器是提升移动设备性能的一种有前景的解决方案,但使用传统的文件系统和嵌入式数据库技术仍会带来过度开销。现有的文件系统技术仅在页粒度更新上保证其可靠性。换句话说,使用文件系统提供的技术会导致缺乏事务支持。如果移动应用需要将用户数据可靠地存储到嵌入式数据库中,则必须独立于文件系统提供额外的更强可靠性支持。然而,这将导致两个同时运行的重复可靠性技术。此外,嵌入式数据库库的移动应用开发过程和架构将变得更加复杂。

通过采用非易失性随机存取存储器并利用其字节可寻址特性,可以构建更强的可靠性技术以确保新文件写操作的可靠性。这有助于嵌入式数据库在不丧失移动应用所需可靠性支持功能的前提下提升性能。该新型可靠性技术的核心思想是确保来自移动应用的新数据被持久地写入非易失性随机存取存储器,并将其用作预写数据日志的一部分。换句话说,文件系统通过支持WAL的新文件写操作,为嵌入式数据库提供相同级别的可靠性。这种新的操作还能降低应用开发的复杂性,同时使应用程序能够比现有可靠性技术运行得更快。

示意图0

本研究假设混合主存结构由易失性和非易失性存储器组成,如图1所示。该所提出的技在一种广泛使用的移动平台的内核上实现。通过多个嵌入式数据库基准测试和真实移动应用工作负载,在真实移动设备上对轻量级嵌入式数据库的所提出的技与原始WAL技术进行了性能对比评估。

本工作的贡献如下:

首先,通过采用非易失性随机存取存储器(NVRAM),提出了一种新颖的用于移动设备嵌入式数据库的内存中预写日志(IMWAL)技术。利用NVRAM的字节寻址能力,该技术通过重新映射内存地址将数据日志重用为新的更新数据,而无需产生额外写入。该方法在不损失可靠性的前提下最小化了重复日志记录。结果表明,所提出的技术平均比原始WAL技术性能提升14%。其次,该技术的设计与实现符合可移植操作系统接口(POSIX)API规范,因此即使传统移动应用也能受益于该技术,且所需软件修改较少。

本文组织如下。第二部分定义了由可靠性引起的性能下降问题移动设备中的技术。第三部分概述了所提出的IMWAL设计,讨论了其假设和设计原则,并描述了该新技术的详细实现。第四部分和第五部分在真实移动设备上对新技术与原始技术进行了实验评估。第六部分讨论了相关工作。最后,第七部分总结了本文。

II. 背景

由于移动应用的大部分数据写入是为了确保移动设备中嵌入式数据库和文件系统的可靠性,减轻这些数据写入是提升移动应用性能和增强用户体验的最重要因素[1],[2],[19]。

A. 确保可靠性所需的额外写入开销

在移动设备中,嵌入式数据库和文件系统均采用日志记录或预写式日志(WAL)等技术来确保自身的可靠性。这些技术通常会在将新的文件数据写入持久性存储设备之前生成额外的数据日志,以确保在发生移动设备崩溃时能够可靠地恢复。如果移动设备发生崩溃,嵌入式数据库和文件系统可以恢复到之前的或之后的一致状态。然而,日志记录或预写式日志中的这些额外写入本质上会导致严重的性能下降,因为它们使写操作数量翻倍,从而消耗更多的运行时间。因此,移动应用的性能和用户体验可能受到影响。在本研究中,所提出技通过利用非易失性随机存取存储器的字节寻址能力,仅写入一次数据日志,并通过重映射操作对其进行重用,从而消除额外写入。

B. 日志开销的日志记录

为确保系统可靠性而减少额外写入的尝试已有很多[11]‐[18]。这些尝试基本上采用了文件系统和嵌入式数据库现有的技术。原因是文件系统的技术仅能保证页粒度更新的恢复能力,因此仅依靠文件系统的可靠性技术无法实现移动应用所需的事务级一致性。由于这种支持较弱,需要确保嵌入式数据库中重要用户数据可靠性的移动应用,不得不在嵌入式数据库层面独立于文件系统提供更强的可靠性支持。结果,由于这些重复的技术被用于类似目的,移动应用的性能和用户体验可能下降。此外,具有此类可靠性保障需求的移动应用架构及其开发过程也变得更加复杂。因此,在基于非易失性随机存取存储器的移动设备中,采用现有技术来确保可靠性仍会因类似目的的过度使用而产生过度开销[1],[2],[19]。IMWAL将确保数据可靠性的责任和功能从移动设备中的嵌入式数据库库转移到NVRAM上的文件系统。

III. 设计

IMWAL旨在在配备非易失性随机存取存储器的移动设备上,为移动应用实现高性能和可靠的文件写入。本节概述了该技术如何在移动设备中利用非易失性随机存取存储器实现可靠的数据写入操作。

A. 系统概述

IMWAL技术假设了如图1所示的主存层次结构。它假设易失性主存和非易失性随机存取存储器具有与主存相似的带宽、延迟和可接受的耐久性。近年来关于非易失性随机存取存储器技术的研究使这些假设更加合理[3]‐[5]。换句话说,独立的主存由易失性DRAM和非易失性STT‐MRAM或非易失性双列直插内存模块组成。在此结构中,非易失性随机存取存储器仅用于文件系统,而不作为移动设备中虚拟内存系统的一部分。

示意图1

移动设备嵌入式数据库作为轻量级库运行在文件系统之上。当文件系统和嵌入式数据库同时提供各自的可靠性技术时,可能会导致不必要的开销。为了消除这种冗余开销,所提出的技将嵌入式数据库的可靠性职责转移到NVRAM上的文件系统,移动应用利用IMWAL提供的可靠性技术,而无需依赖单独的可靠性技术。

图2比较了原始WAL和IMWAL在提交和检查点操作上的工作方式。图2(a)描述了原始WAL如何对日志文件和数据库文件中的新数据进行两次写操作,而IMWAL仅在提交时执行写操作,并将检查点替换为重新映射,如图2(b)所示。在IMWAL中,提交操作将移动应用中的新数据复制到文件系统布局上的预写式数据日志空间,该空间具有非易失性。换句话说,IMWAL技术将复制的新数据用作写操作的预写数据日志。在此步骤中,IMWAL技术的一个重要特性是考虑了残余缓存数据。如果移动设备突然断电或崩溃,文件系统或嵌入式数据库可能会丢失主存和CPU缓存等易失性区域中的数据。为了解决这一问题,IMWAL采用了绕过缓存指令和缓存刷新方法。下一步,检查点操作不会将数据从预写式数据日志空间复制到目标数据库文件,而是通过重新映射文件元数据中的指针来完成,因为非易失性随机存取存储器具有字节可寻址特性。因此,IMWAL能够凭借这一特性获得更好的性能。

B. 写操作日志信息

IMWAL的写操作日志包含恢复操作所需的重要数据:源地址、数据长度、文件位置、检查点信息、目标inode编号以及事务信息。图3描述了写操作日志。源地址指向预写数据日志根节点的基础物理地址的指针。该日志数据是从移动应用写入的原始新数据,并存储在可通过其物理地址访问的特定NVRAM区域中。写操作日志还包含另一个字段,检查点信息,用于跟踪通用写操作的页粒度进度。通过此信息,可以在移动应用的数据库事务中确定已提交的新数据中哪些数据尚未写入。由于该写操作日志需通过一条刷新指令实现持久化,因此其大小对齐为一个CPU缓存行大小。因此,IMWAL中的写操作可以是原子性的,以确保嵌入式数据库的一致状态。

示意图2

C. 使用IMWAL的写操作

在IMWAL中,写操作包含两个步骤:第一步是将移动应用生成的新数据以预写数据日志的形式复制到非易失性随机存取存储器中,并为当前写操作构建一个写操作日志。在复制步骤之前,必须使用内存屏障指令来完成来自中央处理器的所有先前的存储指令,并正确更新CPU缓存。然后,新数据对后续的复制指令可见。图4(a)描述了此步骤。它使用非临时存储指令绕过CPU缓存,以确保新数据被存储到非易失性随机存取存储器中的预写式数据日志空间。再次使用内存屏障指令以确保正确的顺序。之后,将写操作日志写入文件系统布局上的日志空间。为了确保该日志是持久的,IMWAL仅使用一条刷新指令,因为该日志与CPU缓存行大小对齐。

示意图3

第二步是将预写数据日志重用为嵌入式数据库的新数据。当嵌入式数据库中的页面被新数据更新时,会同时更新相应的写操作日志以记录数据更新的进度。该过程通过重新映射来最小化内存复制次数,如图4(b)所示。如图4(b)所示,存在三种数据写入情况。如果已复制的新数据跨越了完整页面(4KB),则只需在文件元数据中将指针更新到已复制数据(情况II)。如果剩余数据位于2KB边界上,则可以将该剩余数据实际复制到原始页面或预写式数据日志空间中的复制页面。根据数据大小,可采用一种策略以最小化需要复制的数据量。如果剩余的新数据超过半页,则将其从原始数据页面复制到预写式数据日志空间中的新数据页面以进行填充,并通过更新文件元数据中的指针实现重新映射(情况I)。否则,如果新数据少于半页,则将其复制到原始数据页面(情况III)。这两种内存复制操作均使用非临时存储指令执行,以防止任何数据残留在CPU缓存中。因此,IMWAL最小化了内存复制操作的次数。

D. 恢复

如果移动设备崩溃后发生不完整的写操作,系统会查找存储在非易失性随机存取存储器中的写操作日志。然后,它可以使用写操作日志中的记录完成剩余的数据写入。新数据在非易失性随机存取存储器中预写式数据日志空间的确切物理地址保存在写操作日志的source address字段中。在此恢复步骤中,通过重新映射内存地址以重用预写数据日志作为新数据,实现了最小化的内存复制操作。如果写操作日志不完整或损坏,IMWAL将不执行恢复步骤,因为从事务角度看来,相应的写操作并未执行。

IV. 性能评估

本节介绍了实验的硬件和软件配置,并在真实移动设备上针对各种嵌入式数据库工作负载评估了所提出技的性能。可靠性评估将在下一节中描述。

A. 实验设置

为了评估IMWAL的性能,将其集成到一个广泛使用的移动平台的内核中进行实现。为了实现更贴近实际的应用,利用了内核提供的默认API。使用原子内存复制函数来更新文件元数据中的指针并更新日志信息。该移动平台还提供了一种可绕过CPU缓存的内存复制函数。IMWAL使用此函数来复制新数据,并在通用文件写入时绕过CPU缓存。最后,它使用内核提供的内存屏障函数来确保所有数据都按正确顺序从中央处理器写入。

这些实验在一台平板设备上进行,该设备作为具有双核移动CPU和4GB动态随机存取存储器的代表性移动设备。由于STT‐MRAM和NVDIMM等类型的非易失性随机存取存储器尚不可用,本实验使用动态随机存取存储器。对于非易失性随机存取存储器中的文件系统,分配了2GB内存空间,并配置为将所有移动应用的嵌入式数据库文件存储在此空间中。作为比较基准,一种广泛使用的移动设备嵌入式数据库被配置为两种状态:WAL开启和WAL关闭。这两种模式均使用内存文件系统,且不采用任何可靠性技术,以确保公平比较。

B. 数据库查询性能基准

在第一个实验中,使用了一个广泛使用的嵌入式数据库基准测试应用程序,并在真实移动设备上测量了数据库查询的性能。该基准测试包含三种类型的数据库查询操作:insert、update 和 delete。另一种具有代表性的查询类型 select 未被包括在内,因为它主要是读密集型的。由于内存处理速度非常快,本实验配置为运行总共 10万笔事务,以产生可靠的结果。

示意图4

图5显示了三种数据库查询操作的归一化性能,图6显示了每种操作的操作次数和总时间消耗。在所有情况下,没有任何可靠性技术的嵌入式数据库(WAL关闭)表现出最佳性能,而使用原始WAL的嵌入式数据库表现最差,IMWAL的性能优于原始WAL技术。IMWAL的性能虽不如WAL关闭,但确保了WAL关闭无法提供的可靠性程度。如果假设WAL关闭的性能为理想状态,则IMWAL平均仅带来7%性能下降。然而,原始WAL平均带来了20%性能下降。关注每个查询的性能,更新查询的性能提升相比其他两种:插入和删除要小。这主要是因为如图6中WAL关闭情况所示,更新查询在写操作上消耗的时间相对较少,在读操作上消耗的时间相对较多。由于更新工作负载包含更多的读系统调用和相对较少的写系统调用,因此更新查询的写密集度低于插入和删除查询。

示意图5

如对图6的更详细分析所示,IMWAL与WAL关闭在写系统调用数量上基本完全相同,因为从嵌入式数据库的角度来看,IMWAL的运行方式与WAL关闭相同。然而,原始WAL与IMWAL在写系统调用数量上存在巨大差异。这是因为原始WAL技术至少会产生两倍的写系统调用:一次是将新数据写入WAL文件,另一次是在检查点期间将新数据从WAL文件重新映射到数据库文件。相比之下,IMWAL的性能提升主要通过减少写操作次数来实现,相较于原始WAL技术。由于IMWAL通过绕过缓存内存复制和缓存刷新方法来保证数据可靠性,因此无需使用同步操作,从而获得更好的性能。然而,IMWAL需要管理预写日志缓冲区和重映射步骤,因此在写系统调用期间会带来少量开销。如图6所示,写入时间的增加正是这一开销的体现。

C. TPC-C基准

TPC‐C是一种在线事务处理基准。TPC‐C包含五种并发事务的混合,这些事务要么在线执行,要么排队进行延迟执行。数据库由九种类型的表组成,具有广泛的记录和数据规模。由于包含了在中央处理器上处理的应用程序逻辑,TPC‐C基准在各个方面都非常接近真实世界工作负载,是适合用于评估的移动应用工作负载。

示意图6

图7显示了原始WAL、WAL关闭和IMWAL技术每分钟处理的事务数(tpmC)的归一化结果,这些数据均以原始WAL为基准进行归一化。结果表明,所提出的新型技术优于原始WAL技术。在order status和stock level的情况下,这些工作负载属于读密集型,因此性能提升不明显。然而,在其他情况下,IMWAL的表现明显优于原始WAL,性能提升了14.3%。与WAL关闭时的性能相比,IMWAL仅慢6.5%,同时仍支持可靠性功能。

D. 真实工作负载模拟

最后一次实验通过重放数据库查询轨迹来评估三种不同真实移动应用的性能。这些轨迹是通过在真实移动设备上使用修改后的嵌入式数据库,在真实使用场景中捕获的。由于这些工作负载包含了由真实移动应用生成的各种数据库事务查询,因此该实验接近于用于评估的真实工作负载。

示意图7

图8所示的结果表明,在本实验中,IMWAL的性能比原始WAL高出2%到12%。在社交网络服务(SNS)应用的情况下,由于其属于读密集型工作负载,因此性能提升并不显著。尽管如此,IMWAL在此情况下的性能仍高出2%。由于数据库写入量可能主导移动应用的性能,因此通过将嵌入式数据库的可靠性技术转移到移动设备上NVRAM的文件系统,可以提升性能。

V. 可靠性评估

由于所提出的IMWAL确保了可靠的写操作,本实验通过开启原始WAL模式,对移动设备嵌入式数据库的恢复功能进行评估。在本实验中,一个数据库查询文件执行10次,每次运行时人为制造一次崩溃,即总共发生10次崩溃。在每次运行中,执行包含30个事务的数据库查询文件,并逐个事务执行。为了在数据库事务中模拟人为崩溃,在移动平台的内核中生成异常,从而导致剩余写操作停止执行。每次崩溃均设计为在数据写入过程中满足特定条件时发生,即在特定数量的写操作之后或具有特殊触发值的特定事件发生时,并且这些条件在启用WAL模式时以相同方式重复。为了利用IMWAL恢复移动设备中嵌入式数据库的一致性,实现了一个名为recover_imwal()的新操作,该操作根据写操作日志恢复文件写操作。

表I IMWAL恢复的评估结果
原始WAL IMWAL
一致状态 1 1
不一致状态 9 9
恢复的状态 9(全部恢复) 9(全部恢复)

表I中的结果展示了数据库文件变得不一致的次数以及恢复到一致状态的次数。由于IMWAL提供的可靠性与原始WAL模式相同,因此这两个数值完全相等。通过调用recover_imwal(),IMWAL能够将因人为崩溃导致的全部9个不一致状态的数据库文件恢复。换句话说,原始WAL和IMWAL为移动设备提供了相同级别的恢复能力。

VI. 相关工作

IMWAL 消除了过度写入和不必要的层,以确保系统的可靠性。因此,它可以提高移动应用的性能。在这方面,近期研究尝试通过采用非易失性随机存取存储器(NVRAM)来减少日志开销,从而提升文件系统或嵌入式数据库的性能。同时,许多近期研究提出了高性能基于NVRAM的文件系统或架构。

A. 降低日志开销的技术

非易失性随机存取存储器(NVRAM)的高速和字节可寻址特性有助于降低文件系统的日志开销。Lee et al. 研究了如何通过使用 NVRAM [11],[12] 来避免额外的块 I/O。他们通过重新映射地址空间,重用在 NVRAM 中分配的数据日志记录来存储文件数据。同时,还将缓冲区缓存层与 NVRAM 中的日志区域合并。通过跳过数据复制操作,日志记录过程得以缩短,从而降低了日志开销。

Chen et al. [13] 提出了一种仅将 NVRAM 用作元数据日志空间的文件系统。Lee et al. 将 NVRAM 用作消费电子设备中的元数据存储组件 [14],[15]。文件系统元数据频繁更新,但在 NVRAM 中实际修改的只有少量字节,这可以减少对 NAND闪存 的过度写入。这些研究工作仅针对文件系统性能进行优化,未涉及嵌入式数据库。此外,这些工作也未能解决日志的日志问题。

同样,非易失性随机存取存储器也可用于提升数据库性能。作为代表性工作,Kim et al. [16]在页内日志方法中采用相变存储器以提高嵌入式数据库的性能,该方法通过将日志追加到页面中,以最小化写操作的数量。Lee et al. [17]采用相变存储器,结合压缩方案减少需存储的数据量,从而提升NAND存储系统的性能和耐久性。Kim et al. [18]提出了一种新的移动设备数据库日志记录技术,通过将回滚日志文件放置在非易失性随机存取存储器中以提升性能。相比之下,IMWAL为嵌入式数据库和文件系统提供了一种仅需更少写操作即可实现相同目标的统一技术。此外,IMWAL通过提供与传统移动平台相同的POSIX接口,减少了对嵌入式数据库和移动应用源代码的修改需求。

B. 基于非易失性随机存取存储器的文件系统

已有多个文件系统被提出以利用非易失性随机存取存储器(NVRAM)。Condit et al. [6]提出了一种文件系统,该系统通过利用非易失性随机存取存储器的字节可寻址特性,结合基于指针和CPU缓存中周期屏障的原子更新,实现短路影子分页,以最小化数据拷贝次数。相比之下,IMWAL仅提供可靠写操作,并专用于嵌入式数据库的性能提升。Edel et al. [7]提出了一种非易失性随机存取存储器文件系统,该系统在inode和文件块上使用数据压缩。Kim et al. [8]提出了一种基于页面缓存的内存文件系统,并配备交换设备。Wu和Reddy [9]提出了一种非易失性随机存取存储器文件系统,该系统为文件分配连续虚拟地址空间,并预留足够的空间用于追加数据。这种布局简化了元数据并提升了性能。相比之下,IMWAL避免使用页面缓存层以实现性能提升。

C. 采用非易失性随机存取存储器的混合架构

在系统架构层面,有若干项工作致力于优化以确保数据的可靠性。Narayanan et al. [20]提出了一种利用非易失性存储器实现整个系统持久化的系统,该系统能够恢复应用程序的全部状态,使故障等同于一次挂起/恢复事件。Wu et al. [21]提出了一种由异构内存技术构成的混合缓存架构,旨在充分利用EDRAM、MRAM和相变存储器各自的优势特性。Zhao et al. [22]设计了一种持久性内存系统,采用非易失性缓存和主存,以实现无需日志记录或写时复制的原子原地更新。相比之下,IMWAL 无需对硬件架构进行上述工作所需的任何修改,因为它使用的是传统指令和系统架构。

D. 事务性写语义支持

许多研究致力于在操作系统(如文件系统)中支持事务概念。Wright et al. [23]通过添加补充操作提出了事务文件操作语义。Porter et al. [24]研究了利用事务内存支持实现文件系统日志记录并原子性访问存储的系统。Sundararaman et al. [25]提出了一种容忍文件系统故障并重启文件系统的方法。Coburn et al. [26]提出了一种称为可编辑的原子写入的存储原语,这是SSD存储系统中高度优化的预写式日志方案。针对易失性和非易失性区域之间的高性能数据同步也进行了研究。Nightingale et al. [27]提出了一种外部同步I/O,以隐藏大部分同步I/O的开销。Chidambaram et al. [28]提供了一种乐观提交协议,通过解耦写入的顺序性和持久性来实现更高性能。

VII. 结论

预写式日志(WAL)是嵌入式数据库的一项重要功能,用于确保移动应用的可靠性,尤其是在电池供电的移动设备上。大多数移动应用的性能受嵌入式数据库性能的影响,因此减少为保证可靠性而产生的额外写入是一个关键问题。本文提出了一种称为IMWAL的新技术,旨在确保嵌入式数据库可靠性的同时实现性能提升。所提出的技术通过利用非易失性随机存取存储器(NVRAM)强制数据写入操作,以可靠地更新数据,并允许在移动设备发生突然断电后恢复时继续未完成的写操作。IMWAL的性能与原始WAL技术进行了对比评估。实验结果表明,在广泛使用的移动设备轻量级嵌入式数据库上,IMWAL比原始WAL技术具有更好的性能。此外,IMWAL中的所提出技在性能上接近WAL关闭(WAL‐off)状态下的嵌入式数据库,后者是非易失性随机存取存储器文件系统上嵌入式数据库的性能上限。

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍了基于Matlab的建模与仿真方法。通过对四轴飞行器的动力学特性进行分析,构建了非线性状态空间模型,并实现了姿态与位置的动态模拟。研究涵盖了飞行器运动方程的建立、控制系统设计及数值仿真验证等环节,突出非线性系统的精确建模与仿真优势,有助于深入理解飞行器在复杂工况下的行为特征。此外,文中还提到了多种配套技术如PID控制、状态估计与路径规划等,展示了Matlab在航空航天仿真中的综合应用能力。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程技术人员,尤其适合研究生及以上层次的研究者。; 使用场景及目标:①用于四轴飞行器控制系统的设计与验证,支持算法快速原型开发;②作为教学工具帮助理解非线性动力学系统建模与仿真过程;③支撑科研项目中对飞行器姿态控制、轨迹跟踪等问题的深入研究; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注动力学建模与控制模块的实现细节,同时可延伸学习文档中提及的PID控制、状态估计等相关技术内容,以全面提升系统仿真与分析能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值