Engula CompatQuick – Engula 2.1 and Redis 7.2 Compatibility Testing Tool

Document Version: v2.1 Last Updated: 2025-09-17 Maintained by: Engula Team

Declaration and Summary

Technical Approach

Engula achieves compatibility by implementing a kernel-level storage engine replacement within the Redis core architecture—preserving Redis’s protocol layer, command processing pipeline, and client interaction ecosystem. This approach ensures functional and behavioral equivalence between Redis and Engula at the user and client levels.

Compatibility Conclusion

At both the design and implementation layers, Engula 2.1 and Redis 7.2 reach theoretical 100% compatibility, covering both protocol and semantic behavior. Applications and client libraries require no code changes or replacements to run seamlessly on Engula.

Design Goals and Testing Methodology

Objectives

Validate the protocol and data structure compatibility between Engula 2.1 and Redis 7.2, ensuring full consistency at the command and data-operation level.

Evaluation Metrics

  • Protocol Compatibility: Compliance with the RESP (Redis Serialization Protocol)
  • Data Structure Compatibility: Behavioral consistency of key Redis data-type operations

Testing Framework and Methodology

  • Baseline: Utilize Redis 7.2’s native make test test suite for accurate comparison.
  • Framework: Employ Redis’s official Tcl-based testing framework to ensure reproducibility and consistent test behavior.
  • Evaluation Criteria: Quantitatively compare test-case output results, analyze pass/fail ratios, and investigate root causes of discrepancies.

Testing Coverage

Data structure consistency validated across:

  • String
  • Hash
  • List
  • Set
  • Sorted Set
  • Stream
  • Bitmap
  • HyperLogLog
  • Geo

Verification Principles

Redis’s native integration testing framework uses Tcl scripts (test.tcl + unit/*.tcl) to drive redis-server and redis-cli through the RESP protocol, verifying expected versus actual responses. Tests are executed via runtest.tcl, which supports:

  • Modular and tag-based filtering
  • Parallel execution
  • Data-directory isolation

This structure ensures high reproducibility and low coupling with Redis’s internal implementations.

Engula Compatibility Verification Process

  • Selected original Redis Tcl test suites targeting data structure validation (String, Hash, List, Set, Sorted Set, Stream, Bitmap, HyperLogLog, Geo).
  • Used the official Redis test driver runtest.tcl to invoke client-side command execution against the Engula server.
  • Compared expected outcomes with Engula’s responses for equivalence validation.
  • Excluded internal/debug-related test cases dependent on Redis’s internal memory layout or debugging commands. (These exclusions do not affect user-level compatibility.)

Tcl Test Case Suite

Category Test Files
Scan and Sorting unit/scan, unit/sort
Core Data Types unit/type/string, unit/type/incr, unit/type/list, unit/type/list-2, unit/type/list-3, unit/type/set, unit/type/zset, unit/type/hash
Streams unit/type/stream, unit/type/stream-cgroups
Pub/Sub unit/pubsub, unit/pubsubshard
Bit Operations unit/bitops, unit/bitfield
Expiration unit/expire
Advanced Structures unit/geo, unit/hyperloglog

Execution results are captured in output.log, generated by Engula CompatQuick, which includes logs for each individual test case:

Quick Self-Testing with Engula CompatQuick

Docker Image

Official testing tool image: registry.cn-guangzhou.aliyuncs.com/montplex/engula-compat-quick

System Requirements

Engula CompatQuick runs as a Docker container and supports Linux and macOS systems with Docker installed.

Recommended configuration:

  • CentOS: Version ≥ 7.9
  • Ubuntu: Version ≥ 18.04
  • Docker: Official distribution recommended

Execution Example

1docker pull registry.cn-guangzhou.aliyuncs.com/montplex/engula-compat-quick
2
3# Prepare workspace
4mkdir tmp_test && cd tmp_test
5touch output.log summary.html
6
7docker run --user $(id -u):$(id -g) -it --rm \
8  -v $(pwd)/output.log:/montplex/output.log \
9  -v $(pwd)/summary.html:/montplex/summary.html \
10  registry.cn-guangzhou.aliyuncs.com/montplex/engula-compat-quick

Execution will display a runtime interface similar to:

Viewing Results

Upon completion, a summary.html report will be generated. Open the file in your browser for a visual overview of compatibility results:

Report contents:

  • Compatibility statistics and pass rate
  • Test coverage across command categories and data structures

FAQ

Q: Are all Redis test cases included? Were any test cases excluded?

A: Almost all Redis test cases are included; only a few have been excluded. Specifically, only debug and internal validation test cases were removed, because they depend on Redis's original internal memory layout and are not applicable to Engula. Engula uses a distinct memory engine implementation; therefore, certain debug-focused cases were either omitted or adapted. These adjustments do not impact functional compatibility or application interoperability with standard Redis behavior. Engula CompatQuick provides a fast and reliable way to validate Engula's compatibility with Redis 7.2, ensuring protocol integrity, data-structure accuracy, and operation consistency across the Redis ecosystem.