深入解析Oracle数据库的启动、访问与关闭机制

thbcm阅读(394)

Oracle数据库的启动并非单一命令操作,而是通过
Nomount→Mount→Open三个递进阶段完成,每个阶段对应特定的初始化目标与底层操作,关闭过程则为该流程的逆向执行。


【UE迭代预警】5.2+ 资产编辑器破坏性迭代 #FAssetTypeActions_Base #UAssetDefinitionDefault

thbcm阅读(370)

旧Asset Actions系统通常继承FAssetTypeActions_Base并实现核心OpenAssetEditor方法,并且一般在模块中通过IAssetTools::RegisterAssetTypeActions(MakeShareable(new FAssetTypeActions_Xxx()))手动实现注册,由于FAssetTypeActions_Base并非U类而是纯Cpp类,其智能指针体系与UE的管理方式不兼容,经常会导致自定义资产在某些复杂自定义插件中失效或者内存溢出。

UE5.2版本之后,官方逐步使用Asset Definitions取代过去旧系统Asset Actions
社区原文。其在5.2之后,引擎删除了几乎所有由旧资产操作系统的构建方式,全部转换为新系统,且在未来只对旧系统做兼容

守护“真相之源”:深入理解数据库的预写日志(WAL)与检查点技术

thbcm阅读(392)

日志技术

在考虑数据库系统的持久性时,关键的考虑因素是如何在数据库中实现数据的持久化。例如,在关系型数据库中,数据被存储在表中,而这些表是通过在文件系统或块系统中的数据结构来实现的。如何保存和维护这些文件,例如在单一文件中存储索引或在多个文件中分别存储索引,这取决于具体的实现方式。

当开始修改或更新表中的数据时,这意味着将开始更改索引。索引需要被更新,同时,存储在内存中的页的数据需要被提交。

那么,什么是数据库中的提交操作呢?

每当数据发生更改时,相应的页会被标记为”脏页”。在将这些脏页写回硬盘时,不仅仅是写回单个更改的值或几个字节的列,而是将整个页写回。这个页的大小由硬盘类型决定,比如是最小的页/块/扇区大小。脏页的写回操作通常是异步进行的,其频率由操作系统调度。

如果写入了大量的数据,那么将数据写回硬盘也需要相当长的时间。这里的成本并不在于将数据写回硬盘所需的时间,而在于如果数据库崩溃,数据没有成功写回硬盘,或者只写回了一部分,那么此时应该如何遵循并坚持ACID事务的原则。


联系我们