关于Freelists和Freelist Groups的研究

简介: 数据库读取的单位是数据块(block),一个block是否允许写入数据是基于一定的空闲度--PCTFREE和PCTUSED存储参数设置。Freelists就是一个指定了所有可以用于insert操作的数据块的列表。存在于这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了PCTFREE参数指定的限度)则立刻从这个列表中被摘除。Freelists的作用就在于管理高水位标志(HWM)以下的空闲空间。Freelist只是管理高水位标志以下的空闲空间,而实际上一个segment可用的空闲空间包括两种类型:1.已经分配给这个segment但是从来未被使用过的位

数据库读取的单位是数据块(block),一个block是否允许写入数据是基于一定的空闲度--PCTFREE和PCTUSED存储参数设置。
Freelists就是一个指定了所有可以用于insert操作的数据块的列表。
存在于这个列表中的数据块才能用于insert操作,一旦一个数据块无法用于insert(达到了PCTFREE参数指定的限度)则立刻从这个列表中被摘除。
Freelists的作用就在于管理高水位标志(HWM)以下的空闲空间。

Freelist只是管理高水位标志以下的空闲空间,而实际上一个segment可用的空闲空间包括两种类型:
1.已经分配给这个segment但是从来未被使用过的位于高水位标志之上的blocks。
2.位于高水位标志之下,被链接在Freelists上的blocks。

Oracle 9i中,在LMT(Locally Managed Tablespaces)中如果指定了ASSM(Automatic Segment Space Management),那么对于任何PCTUSED、Freelists、Freelist Groups存储参数的指定都将被忽略。

Freelists存储在哪里?
存储在每个segment的header block中,可以通过
sec@secooler> create table t_manual (col1 number);
sys@secooler> select file_id,block_id from dba_extents where segment_name = 'T_MANUAL';

FILE_ID BLOCK_ID


     5          9

sys@secooler> alter system dump datafile 5 block 9;

使用Oracle提供的两个函数将块地址转化为可以供使用的文件号和块号
sys@secooler> select dbms_utility.data_block_address_file(29360138) from dual;
sys@secooler> select dbms_utility.data_block_address_block(29360138) from dual;

每次当一个block被加入到free list中时,该block会被放置在free list的链表头部。

设置Freelist Groups参数大于1就是设置了多个MFL(Master Free list),这样就缓解了对于MFL的争用。

关于Freelists和Freelist Groups的一个比喻:
想象有一台饮水机和源源不断的急需喝水的人们,一台饮水机就代表一个free list,而一个想喝水的人就是一个准备向segment中插入数据的会话。如果只有一个饮水机,那么所有想喝水的人都必须要排成一队,然后前一个喝完了下一个才能喝,这就产生了争用。手机游戏账号卖号设想一下现在放置10个饮水机,很明显人们可以排到10个队伍中的任何一个队伍里,毫无疑问,效率将大大提高。这里瓶颈又出现了,就是如果一个饮水机里的水被喝完了,就得给这个饮水机加水,此时如果只有一个加水员(这就是一个Freelist Group),那么加水的速度可能就会跟不上了,添加Freelist Group就是增加加水员,增加到2个,每个人负责5个饮水机(体现在参数上,是Freelists 5 Freelist Groups 2),那么效率又提升了。
对于空间浪费的负面影响,可以继续设想一下,来了一个十分能喝水的人,他守住一个饮水机不停地喝,喝完了,引水员就加水,又喝完了,又加,即使是其他的9个饮水机里都是满满的水也没用,因为这个人一旦从某个送水员管辖下的饮水机中开始喝水,就不会换到另外一个送水员管理的饮水机上去(一个会话一旦从某个Freelist Group的Freelist中开始读取空闲块,就不会再使用其他Freelist Group中的Freelist,即使其他的Freelist中还有很多的空闲块)。

相关的等待事件:
1.Buffer Busy Waits
2.Enqueue

-- The End --

目录
相关文章
|
6月前
|
编解码
Google Earth Engine(GEE)——监督分类出现ConfusionMatrix (Error) User memory limit exceeded.解决方案
Google Earth Engine(GEE)——监督分类出现ConfusionMatrix (Error) User memory limit exceeded.解决方案
194 0
|
3月前
|
算法 数据挖掘 数据处理
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
本文介绍了一篇博士论文,提出了一种基于非随机拓扑结构的改进型Echo State Networks (ESN)模型,用于处理时间序列数据,通过在储层中使用复杂网络和聚类模型的拓扑结构,提高了模型性能并降低了计算成本,论文还展示了该模型在信号预测和图像分类中的应用。
38 3
【博士每天一篇文献-综述】A Modified Echo State Network Model Using Non-Random Topology
|
3月前
|
机器学习/深度学习 存储 算法
【博士每天一篇论文-综述】Echo State Network Optimization: A Systematic Literature Review
本文综述了74篇关于Echo State Network(ESN)优化的研究文章,指出生物启发方法尤其是粒子群优化(PSO)是ESN参数优化的常用技术,探讨了ESN在不同参数和拓扑结构下的行为特性,同时识别了超参数优化、评估指标和数据集选择等方面的研究空白。
25 3
|
3月前
|
算法 数据挖掘
【博士每天一篇文献-算法】Imposing Connectome-Derived Topology on an Echo State Network
本文研究了将果蝇连接图的拓扑结构应用于回声状态网络(ESN)中,提出了一种新型的“果蝇ESN”(FFESN),通过替换传统ESN的储层层为基于果蝇神经连接结构的连接矩阵,发现FFESN在混沌时间序列预测任务中表现出较传统ESN更低的方差或更高的性能。
28 1
|
5月前
|
机器学习/深度学习 人工智能 数据处理
人工智能平台PAI产品使用合集之对于有多个raw_feature,如何进行区分
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6月前
|
机器学习/深度学习 人工智能 自然语言处理
谷歌工程师Alex Irpan:2028年有10%概率实现AGI
【2月更文挑战第20天】谷歌工程师Alex Irpan:2028年有10%概率实现AGI
84 6
谷歌工程师Alex Irpan:2028年有10%概率实现AGI
|
6月前
|
机器学习/深度学习 自然语言处理 开发者
【ACL 2023获奖论文】再现奖:Do CoNLL-2003 Named Entity Taggers Still Work Well in 2023?
【ACL 2023获奖论文】再现奖:Do CoNLL-2003 Named Entity Taggers Still Work Well in 2023?
56 0
|
机器学习/深度学习 存储 人工智能
7 Papers & Radios | BERT上下文长度达200万token;华人团队通用分割模型SEEM
7 Papers & Radios | BERT上下文长度达200万token;华人团队通用分割模型SEEM
196 0
|
算法 自动驾驶 数据可视化
计算机视觉论文速递(六)GANet: A Keypoint-based Global Association Network for Lane Detection 基于关键点建模的全局关联网络
 在CVPR 2022上,商汤智能汽车-创新研发中心团队提出一种新的基于关键点建模的车道线检测范式,即全局关联网络(GANet),通过直接回归车道线关键点到车道线起始点的偏移,来完成对车道线关键点的并行聚合,从而实现高效且准确的车道线检测。除此以外,本文还提出一个车道线感知的特征增强模块,以增强车道线的局部关键点关联,提升车道线局部连续性。本文所提方法在多个公开数据集上均超越已有方法,取得了良好的精度-速度均衡。
380 0
|
机器学习/深度学习 存储 人工智能
Paper:《Pre-Trained Models: Past, Present and Future大规模预训练模型的发展历史、最新现状和未来发展三个方向》翻译与解读
Paper:《Pre-Trained Models: Past, Present and Future大规模预训练模型的发展历史、最新现状和未来发展三个方向》翻译与解读
Paper:《Pre-Trained Models: Past, Present and Future大规模预训练模型的发展历史、最新现状和未来发展三个方向》翻译与解读