首页 文章

NDB集群创建撤消日志和数据文件

提问于
浏览
0

在将数据存储到磁盘存储中时,我正在考虑关于NDBcluster的一些事情 .

  • 在我的配置中,我定义了DataMemory = 20G . 那么撤消日志文件的最大总大小是多少?我在博客中看到它应该是6xDataMemory . 这是必须的吗?

  • 创建撤消日志文件时,最好的创建方法是大量小文件或少量大文件?作为一个例子(10个1G文件或100个100M文件,如果我创建200M文件,缓冲区大小的最佳数量是多少)

  • 与数据文件创建相同 . 创建10个1G文件或100个100M文件的最佳方法是什么?

  • 我正在为单独的表空间使用单独的数据文件,并且对于一个表总是使用一个表空间 . 不为两个表使用相同的表空间 . 这是一个定义和分配表空间的好方法,还是通过对两个表使用相同的表空间而没有任何性能问题?

(这里我处理的流量很大,为4000 - 5000 TPS,NDB的数据库大小接近80GB . 我有2个数据节点,2个mysql服务器 . 每个数据节点有128GB内存 . )

Wilson Hauck

1 回答

  • 0

    UNDO日志文件与磁盘数据更改的UNDO相关 . 所以UNDO日志文件大小和DataMemory之间没有真正的关系 . DataMemory和REDO日志大小之间存在关系,因为REDO日志由内存数据和磁盘数据部分使用 .

    是使用小文件还是更大的文件主要取决于文件系统的工作方式 . 我个人会开始使用相当大的文件而不是那么多 .

    从性能的角度来看,如果您使用一个表空间或每个表使用一个表空间,则没有区别 . 我一直认为这是为所有表使用一个表空间 . 但我不知道使用许多表空间有什么问题 . 但是,您可以使用表空间的数量进行硬编码限制 .

    显然,每个表的一个表空间意味着如果感兴趣的话,可以在删除表时快速删除文件 .

    对于大多数用例,UNDO日志的大小应该很好,几十GB . 但是在大规模插入期间,可能需要更大尺寸的UNDO日志,因为在大量插入期间检查点可能需要很长时间 .

相关问题