GreatSQL
repository·master·Indexed 41 days ago
https://github.com/greatsql/greatsqlAn open-source, high-performance database compatible with MySQL and Percona Server, optimized for financial-grade applications requiring high availability and security. Includes documentation on building RPM and tarball packages, configuring the Percona Telemetry component, and integrating the Abseil C++ library.
What's inside GreatSQL
- The Binlog Event library provides the definitions for Binlog events that are stored in the MySQL Binary Log (Binlog) and used for system communication. It is a foundational component for any application or tool that needs to parse, interpret, or interact with binary log data generated by the database.
Overview of libfido2 functionality
masterWhat is libfido2?
libfido2is a library and set of command-line tools used to communicate with FIDO devices over USB or NFC. It is primarily used to verify attestation and assertion signatures.Supported Protocols
- FIDO U2F (CTAP 1)
- FIDO2 (CTAP 2)
Supported Platforms
- Linux
- macOS
- Windows
- OpenBSD
- FreeBSD
Dependencies
libcborOpenSSL1.1 or newerzliblibudev(Required on Linux)
What is libkmip?
masterlibkmip is an ISO C11 implementation of the Key Management Interoperability Protocol (KMIP). KMIP is an OASIS communication standard used for managing objects (such as encryption keys) stored and maintained by key management systems. It defines how key management operations and data are encoded and communicated between client and server applications.
Supported operations include:
- Creating keys
- Retrieving keys
- Destroying keys
Supported object types include:
- Symmetric encryption keys
- Asymmetric encryption keys
Overview of the Global Transaction IDentifiers (GTIDs) Library
masterThelibs/mysql/gtidlibrary provides the core logic for defining and processing Global Transaction Identifiers (GTIDs). GTIDs are used in MySQL-compatible environments to uniquely identify transactions across a distributed system, facilitating features like replication and high availability. This library is a specialized component designed for handling the structure and lifecycle of these identifiers.Overview of libcbor features
masterlibcbor is a C99 implementation for parsing and generating CBOR (Concise Binary Object Representation), a schema-less binary data format conforming to IETF RFC 8949 (STD 94).
Core Characteristics:
- Thread-safe: No shared global state.
- Memory Management: Flexible and layered architecture.
- Streaming: Full support for streams and incremental processing.
- Lightweight: Small footprint with no runtime dependencies.
- Robust: Proper UTF-8 handling and platform-independent.
Overview of the MySQL Utility Library
masterThe
libs/mysql/utilslibrary is a header-only C++ library providing various low-level utility functions and templates. It is designed to assist with common programming tasks such as error handling, enumeration management, and template metaprogramming.Key features include:
- Error Handling: Provides an
Errorbase class for C++ error management. - Enumeration Utilities: Includes
to_underlying(compatible with C++23) andto_enumeration. - Template Utilities: Includes
Is_specializationfor checking template specializations. - Bit Operations: Provides utilities for bitwise manipulation.
- Deprecation Macros: Macros to facilitate header deprecation.
- Error Handling: Provides an
Overview of MySQL Binlog Libraries
masterThe MySQL Binlog Libraries provide the necessary components for defining and processing MySQL Binary Logs (Binlogs). These libraries are essential for tools or applications that need to parse, interpret, or manipulate binlog data for replication, auditing, or data recovery purposes.
The core functionality is organized into specific sub-libraries, primarily focused on event processing.
Overview of zlib 1.3.1
masterzlib 1.3.1 is a general-purpose, thread-safe data compression library. It uses data formats described by RFCs 1950 (zlib format), 1951 (deflate format), and 1952 (gzip format).
Key resources:
- Full API documentation is located in
zlib.h. - The official home page is http://zlib.net/.
- For troubleshooting, consult
DLL_FAQ.txtor the online FAQ at http://zlib.net/zlib_faq.html.
- Full API documentation is located in
Overview of the Googletest Mocking (gMock) Framework
mastergMock is a C++ framework designed for writing and using mock classes. It is intended to help developers derive better system designs and write more effective tests by providing a declarative syntax for defining mocks and controlling their behavior.
Key capabilities include:
- Declarative Mock Definition: Define mocks using a specialized syntax.
- Partial (Hybrid) Mocks: Create objects that combine real implementation with mocked behavior.
- Complex Function Support: Handles arbitrary types and overloaded functions.
- Argument Validation: Includes a rich set of matchers to validate function arguments.
- Behavior Control: Uses intuitive syntax to specify how mocks should respond to calls.
- Automatic Verification: Automatically verifies expectations without requiring a manual record-and-replay cycle.
- Ordering Constraints: Supports expressing arbitrary (partial) ordering constraints on function calls.
- Extensibility: Users can define custom matchers and actions.
- Exception-Free: The framework does not use C++ exceptions.
gMock is part of the GoogleTest C++ testing framework.
Overview of GreatSQL features
masterGreatSQL is an open-source database designed for financial-grade applications on standard hardware. It is a high-performance, highly available, highly compatible, and highly secure alternative to MySQL or Percona Server for MySQL.
Core Capabilities
High Availability (HA)
GreatSQL provides significant improvements to MGR (MySQL Group Replication) and Master-Slave replication, including:
- Geographic Tags: Enhances data reliability in multi-datacenter architectures.
- Arbitrator Nodes: Achieves high availability with lower server costs.
- Dynamic Read/Write VIP: Facilitates easier HA switching and faster read load balancing. Supports actively closing active connections when the master node switches to reduce application downtime.
- Fast Single-Master Mode: Improves performance in single-master configurations.
- Intelligent Leader Election: Provides more reasonable leader election mechanisms during HA switches.
- MGR Optimizations: Includes optimized flow control algorithms, transaction authentication queue cleaning, and improved node join/exit mechanisms.
- Replication Improvements: Supports rate limiting for Binlog read requests from slaves and optimized asynchronous connection failover detection.
High Performance
GreatSQL offers superior stability and performance compared to standard MySQL, featuring:
- Rapid Engine: A high-performance engine supporting large-scale parallel, memory-based queries with high compression ratios.
- Turbo Engine: A high-performance parallel query engine supporting multi-threaded vectorized real-time queries and vector similarity search.
- Large Transaction Optimization: Optimizes independent binlog flushing for large transactions, reducing commit latency by 30%-70%.
- Parallelism & Concurrency: Supports parallel
LOAD DATA, parallel replica replay, and a Thread Pool to maintain stability under high concurrency. - Operational Efficiency: Supports non-blocking DDL, asynchronous large table deletion, and NUMA affinity optimization.
- Execution Plan Protection: Captures SQL Digest-level execution plan changes to prevent performance drift after restarts or upgrades.
High Compatibility
GreatSQL is 100% compatible with MySQL and Percona Server for MySQL syntax. It also supports many common Oracle syntaxes, including:
- Data type compatibility
- Function compatibility
- SQL syntax compatibility
- Stored program compatibility
High Security
Designed for financial-grade security, GreatSQL includes:
- Encrypted Backups: Supports encryption for both
mysqldump(logical) andClone(physical) backups. - Auditing: Features to record and discover unauthorized or unsafe behaviors.
- Data Encryption: Supports InnoDB tablespace encryption using Chinese National Standard (GM/T) algorithms.
- Data Masking: Provides two methods of data masking based on functions and policies to protect sensitive user data.
Overview of the funcs_1 test suite
masterThe
funcs_1test suite is designed for additional feature checks beyond the standard regression tests found inmysql-test/t. It specifically targets features introduced with MySQL 5.0, such as:- VIEWS
- INFORMATION_SCHEMA
- STORED PROCEDURES
While many
INFORMATION_SCHEMAviews are tested within the main regression suite,funcs_1provides specific coverage for certain views, including partial testing forENGINESandEVENTS, and full testing forPROCESSLIST.Overview of MySQL Libraries
masterMySQL Libraries consist of shared code used across various system components, including MySQL Server, MySQL Client, MySQL Components, and MySQL Plugins.
Warning: These libraries define experimental APIs used internally within MySQL. These APIs are subject to change, and developers using them do so at their own responsibility.
Currently, only static libraries are built.