作者:Younger Liu, 本作品采用知识共享署名-非商业性使用-相同方式共享 3.0 未本地化版本许可协议进行许可. 在ext4系统中,对于小文件和大文件的空间申请请求,都有不同的分配策略. 对用小文件的空间请求,ext4尝试从一种叫per-CPU local group中分配空闲空间.Per-CPU Localgroup就是所有该CPU所执行的分配行为共享的空间,目的是保证这些小文件的聚集在一起,便于访问.Per-CPU Local group就是per-CPU prealloc空…
 在块分配机制中,涉及到几个主要的数据结构. 通过ext4_allocation_request描述块请求,然后基于块查找结果即上层需求来决定是否执行块分配操作. 在分配过程中,为了更好执行分配,记录一些信息,需要对分配行为进行描述,就有结构体ext4_allocation_contex. 在搜寻可用空间过程中,是有可能使用预分配空间的,因此还需要有能够描述预分配空间大小等属性的描述符ext4_prealloc_space.   下面,对各个关键结构体进行详细的分析. 1. 块请求描述符ex…
 在Ext4系统中,存在很多分配策略,比如预分配.多块分配.延迟分配等   Prealloc预分配 在ext4系统中,对于小文件和大文件的空间申请请求,都有不同的分配策略.对用小文件的空间请求,ext4尝试从一种叫per-CPU local group中分配空间.Per-CPU Local group就是有所有该CPU所执行的分配行为共享的空间,目的是保证这些小文件的聚集在一起,便于访问.对于大文件的空间请求,ext4尝试从一种叫per-inode preallocation中分配.这点就像…
一.undo空间原理: dml操作会产生undo数据. update时,sever process 会在databuffer 中找到该记录的buffer块,没有就从datafile中找并读入data buffer.在改动之前,原始数据先放到undo段,并在数据块头记录undo段(acitve 状态)中该数据块的位置,读写这个块时会占用事务槽,会将该事务号记录在数据块的头部.然后在进行update,并将该块放到dirty list检查点队列,等待dbwr进行写操作. 二.创建新的undo表空间替换…
创建表空间时,extent management local 定义本地管理表空间(LMT),segment space management auto 定义自动段空间管理(ASSM). extent management local(本地管理表空间)是在表空间的头部用位图区记录extent(区)的使用情况(是否为free).与之相对的是字典管理表空间,用数据字典记录extent使用信息. segment space management auto(段空间自动管理)是在段的头部使用位图管理块(BM…
1:表空间概念 在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段.区.块等逻辑结构.从物理结构上看是放在数据文件中.一个表空间可由多个数据文件组成. 如下图所示,一个数据库由对应一个或多个表空间,表空间逻辑上有一个或多个段(Segment)组成,物理上由一个或多个os file组成. 1.1基本的表空间 系统中默认创建的几个表空间: SYSTEM SYSAUX USERS UNDOTBS1 EXAMPLE TEMP 系统中必须的表空间有那几个? 答案: SY…
oracle表空间相关常用命令小结: 1.ALTER DATABASE SET DEFAULT BIGFILE TABLESPACE;              //修改表空间数据文件类型 2.ALTER TABLESPACE 旧表空间名称 TO 新表空间名称;                      //修改表空间名称 3.select * from v$database;   show parameter db                                        …
1.前言 本文所述关于内存管理的系列文章主要是对陈莉君老师所讲述的内存管理知识讲座的整理. 本讲座主要分三个主题展开对内存管理进行讲解:内存管理的硬件基础.虚拟地址空间的管理.物理地址空间的管理. 本文将主要以X86架构为例来介绍Linux内存管理的分页机制. 2.分页机制 页(Page) 将线性地址空间划分成若干大小相等的片,称为页 页框(Page Frame) 物理地址空间划分成与页大小相等的若干存储块,称为页框 图 线性地址空间与物理地址空间的映射 上图说明线性地址空间是连续的(如程序经过…
一.概述 Java GC(Garbage Collection,垃圾收集,垃圾回收)机制,是Java与C++/C的主要区别之一,作为Java开发者,一般不需要专门编写内存回收和垃圾清理代码,对内存泄露和溢出的问题,也不需要像C程序员那样战战兢兢.经过这么长时间的发展,Java GC机制已经日臻完善,几乎可以自动的为我们做绝大多数的事情. 虽然java不需要开发人员显示的分配和回收内存,这对开发人员确实降低了不少编程难度,但也可能带来一些副作用: 1. 有可能不知不觉浪费了很多内存 2. JVM花…
        关于这个东西里面到底应该存放数据网上一直有很多种说法,有的说sql进行md5之后作为键值,结果作为内容存放,也有人说按照业务逻辑错放,反正是炒的不亦乐乎.        本人经过将近2年的实践,最后还是觉得要根据业务逻辑来存放,不能将sql加密然后对应结果集存放.这样做,基本上无法实现数据的及时更新,只能依靠memcahce的过期时间来更新.资讯类的静态数据比较合适,不过这种网站一般会做静态化的处理,所以memcache也发挥不了太大用途.真正有用武之地的地方是社区类网站,这类网…