• Double write Buffer的配置


    InnoDBXtraDB使用称为doublewrite缓冲区的特殊功能来提供数据损坏的强大保证。想法是在写入数据文件之前将数据写入主表空间中的顺序日志。如果发生部分页面写入(换句话说,写入损坏),InnoDBXtraDB将使用缓冲区来恢复数据。即使数据写入两次,性能影响通常很小,但在一些繁重的工作负载中,双写缓冲区成为瓶颈。现在我们可以选择将缓冲区放在专用磁盘上,以便并行化缓冲区和表空间上的I / O活动。

    此功能允许您将doublewrite缓冲区从主表空间移动到单独的位置。

    此选项仅适用于高级用户。请参阅下面的讨论,以充分了解您是否真的需要使用它。

    详细资料

    以下讨论将阐明此功能可能带来的改进。

    DOUBLEWRITE缓冲区的目标

    InnoDBXtraDB使用许多结构,一些在磁盘上,另一些在内存中,以尽可能高效地管理数据。要概述不同的组件,请参阅此文章现在让我们关注doublewrite缓冲区。

    InnoDB / XtraDB在其主表空间中使用一个称为doublewrite缓冲区的保留区域,以防止部分页面写入时可能发生的数据损坏。当缓冲池中的数据刷新到磁盘时,InnoDB / XtraDB将一次刷新整个页面(默认为16KB页面),而不仅仅是页面内已更改的记录。这意味着,如果在写入期间发生任何意外情况,页面可能会被部分写入,从而导致数据损坏。

    使用双写缓冲区功能,InnoDB / XtraDB首先将页面写入双写缓冲区,然后写入数据文件。

    如果在数据文件中发生部分页面写入,InnoDB / XtraDB将检查恢复是否数据文件中页面的校验和与doublewrite缓冲区中页面的校验和不同,因此将知道页面是否已损坏或不。如果它已损坏,恢复过程将使用存储在doublewrite缓冲区中的页面来恢复正确的数据。

    如果在doublewrite缓冲区中发生部分写入,则原始页面不受影响,可以与重做日志一起使用以恢复数据。

    DOUBLEWRITE缓冲区的性能影响

    在通常的工作负载中,性能影响低至5%左右。因此,您应该始终启用doublewrite缓冲区,因为对数据损坏的强有力保证值得小的性能下降。

    但是,如果您遇到繁重的工作负载,特别是如果您的数据不适合缓冲池,则doublewrite缓冲区中的写入将与随机读取竞争以访问磁盘。在这种情况下,与没有双写缓冲区的相同工作负载相比,您可以看到性能急剧下降 - 30%的性能下降并不罕见。

    另一种可以看到性能影响很大的情况是doublewrite缓冲区已满。然后,新写入必须等到释放doublewrite缓冲区中的条目。

    这个功能有什么新功能

    在标准的InnoDB / XtraDB安装中,doublewrite缓冲区位于主表空间中(无论是否激活innodb_file_per_table),您无法控制任何相关内容。

    该功能添加了一个option(innodb_doublewrite_file),以便为doublewrite缓冲区提供专用位置。

    如何为DOUBLEWRITE BUFFER选择一个好的位置

    基本上,如果要改进I / O活动,则将doublewrite缓冲区放在不同的磁盘上。但是在SSD或更传统的硬盘上它更好吗?首先,您应该注意页面是在双写缓冲区中以循环方式编写的,只能在恢复时读取。因此,doublewrite缓冲区主要执行顺序写入和一些顺序读取。如果启用写入缓存,则第二个HDD非常擅长顺序写入,这不是SSD的情况。因此,如果您希望从此选项中看到性能优势,则应选择快速HDD。例如,您可以将重做日志(也以顺序方式写入)和doublewrite缓冲区放在同一磁盘上。

    版本特定信息

    系统变量

    引入了以下系统变量。

    变量 innodb_doublewrite_file
    命令行:
    配置文件:
    范围: 全球
    动态: 没有
    变量类型: STR
    防守力: 空值

    使用此选项可为doublewrite缓冲区创建专用表空间。

    此选项需要一个可以使用绝对路径或相对路径指定的文件名。相对路径相对于数据目录。

  • 相关阅读:
    VIJOS P1057盖房子 (动态规划)
    RQNOJ PID57 / 找啊找啊找GF
    RQNOJ PID302 / [NOIP2001]统计单词个数 (动态规划)
    hdu 3829 Cat VS Dog 最大独立集
    并查集 找k颗树使节点数最多
    在 Sublime Text 3 中配置编译和运行 Java 程序
    在 Sublime Text 3 中配置编译和运行 Java 程序
    StarUML license key
    StarUML license key
    测试对于list的sort与sorted的效率
  • 原文地址:https://www.cnblogs.com/dbalightyear/p/11268810.html
Copyright © 2020-2023  润新知