BoostDB
BoostDB provides application acceleration features, including those for MySQL OLAP performance acceleration and OLTP lock performance tuning. These features help improve OLAP query and analysis efficiency, as well as the OLTP online transaction processing to unleash the performance of multi-core computing power. Best practices of mainstream open-source and commercial databases are provided to help developers efficiently port and tune open-source components.
System-Level Collaborative Optimization
- NVMe SSD atomic write
Eliminates the doublewrite redundancy to improve database performance.
- Gazelle network optimization
Improves the comprehensive TPC-C performance of the database by accelerating the network protocol stack.
- Kunpeng GCC CFGO
Improves database TPC-C performance through multimodal, lifecycle-wide continuous optimization.
- Network multipathing optimization
Binds NIC queue interrupts to CPUs across different NUMA nodes so that the NICs of the corresponding node preferentially handle service traffic, thereby establishing affinity between network requests and interrupts.
- Domain-based scheduling optimization
Optimizes core selection and load balancing by aggregating related tasks into virtual scheduling domains for execution, thereby improving CPU cache locality and reducing hardware resource contention.
MySQL Acceleration Suite
- Basic computing optimization
For basic computing hotspots in databases, uses technologies such as hardware CRC32/SIMD instructions, unaligned memory access, and LSE to reduce CPU computing overhead and improve data processing efficiency.
- Binlog acceleration optimization
For transaction log processing links, uses technologies such as binlog pre-allocation, lock splitting, and writeset_history data structure optimization to reduce log write and replication overhead.
- Lock and atomic variable optimization
In high-concurrency OLTP scenarios, uses technologies such as lock-free hash tables, fine-grained locks, and transaction lock optimization to reduce lock contention and improve transaction processing concurrency.
- MySQL pluggable thread pool
Optimizes thread pool queue scheduling and connection management to improve CPU resource utilization and ensure stable execution of concurrent tasks in massive-connection OLTP scenarios.
- OLAP enhancement
Maximizes Kunpeng CPU multi-core capabilities through parallel execution plans while supporting pluggable dynamic loading.
Milvus Acceleration Suite
- KBest optimization
Integrates Milvus reserved interfaces with the KBest algorithm to leverage Kunpeng advantages and enhance query performance.
- KScaNN optimization
Integrates Milvus reserved interfaces with the KScaNN algorithm to leverage Kunpeng advantages and enhance query performance.
- Prefetching and vectorization optimization
Reduces distance function computing overhead using SVE instruction sets and hardware/software prefetching techniques to improve query performance.
Redis Acceleration Suite
- Redis network asynchronization
Asynchronously executes network I/O in batches through KBAIO to reduce system calls and context switching, enabling non-blocking operations and improving throughput.
- Sockmap optimization
Redirects packets to the target socket to bypass the full TCP/IP stack processing, reducing the network protocol stack overhead.
- Redis 7.0.15 floating-point type acceleration
Switches glibc's built-in floating-point printing algorithm to the grisu2 algorithm in Redis 7.0.15 to improve floating-point conversion performance.
- Redis jemalloc memory library acceleration
Enables Arm-based Top Byte Ignore (TBI) for jemalloc optimization to improve memory allocation efficiency.
RocksDB Acceleration Suite
- CRC32 optimization
Reduces the CRC32 hotspot overhead and significantly alleviates the CPU load by optimizing the CRC32 algorithm via hardware-based acceleration instructions.
- Filter optimization
Uses the intelligent Bloom filter to reduce invalid I/O, improving the overall performance and system stability of RocksDB on Kunpeng servers.
- 64 KB page-based optimization
Uses the 64 KB kernel page size to reduce page table levels and quantities, significantly lowering the instruction TLB (ITLB) miss rates and page fault frequency and improving the throughput.
- Proxy (Kvrocks) network multipathing optimization
Analyzes traffic patterns of specific service processes to enable the NIC queue on the corresponding NUMA node to preferentially receive the service traffic, achieving affinity between network requests and interrupts.
- HashSearch optimization
Optimizes the HashSearch query path to narrow down the search scope and reduce unnecessary comparisons and drive I/O operations, improving the overall query performance and system stability.
- Dynamic capacity optimization
Dynamically adjusts the capacity ratio per level, expands the amount of data that deeper levels can hold, and reduces the number of levels that queries need to access as well as unnecessary compaction, thereby improving read/write performance.
- Prefetch optimization
Issues cache prefetch instructions before the data is actually used, overlapping memory accesses with computation phases such as key comparison and restart-point binary search, thereby reducing stalls caused by cache misses.
- GCC feedback-directed compilation optimization
Uses compiler options to change the optimization level or architecture-specific instructions for target files and final output.
- Memory allocation optimization
Uses the KQMalloc multi-threaded dynamic library to replace the default memory allocator of the process, improving memory management efficiency in concurrent scenarios.