面试题答案
一键面试WiredTiger存储引擎策略
- 原理:
- 压缩:WiredTiger支持多种压缩算法,如Snappy、Zlib等。通过压缩数据,在存储时占用更少的磁盘空间,从而在备份时减少需要传输的数据量,提高备份效率。例如Snappy算法,它在压缩和解压缩时速度较快,适用于追求高I/O性能场景,在备份过程中可快速对数据进行压缩,减少备份文件大小。
- 写时复制(Copy - on - Write):WiredTiger采用写时复制机制。当数据发生修改时,不是直接在原数据位置修改,而是将修改后的数据写入新的位置。这使得在备份时,对于未修改的数据块可以直接复制,无需额外处理,提高了备份的效率,同时保证了数据一致性。
MMAPv1存储引擎策略(虽已不推荐,但为完整性阐述)
- 原理:
- 预分配空间:MMAPv1存储引擎会预先分配一定大小的数据文件空间。这样在备份时,由于文件系统对连续空间的读写效率较高,可快速复制这些预分配好的文件,提高备份效率。例如在进行全量备份时,对这些预分配且数据连续存储的文件进行复制,比处理碎片化存储的数据文件要快。
- 单进程多线程:它使用单进程多线程架构。在备份操作中,不同线程可以并行处理数据的读取和复制等操作,在一定程度上提高备份的并发度,从而提升整体备份效率。但由于存在全局锁,并发性能提升有限。