GreatSQL

repository·master·Indexed 41 days ago

https://github.com/greatsql/greatsql

An 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.

Tokens
238.5K
Snippets
634
Records
1.1K
Agent score
50%

What's inside GreatSQL

  1. Overview of the Binlog Event library

    master
    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.
  2. Overview of libfido2 functionality

    master

    What is libfido2?

    libfido2 is 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

    • libcbor
    • OpenSSL 1.1 or newer
    • zlib
    • libudev (Required on Linux)
  3. What is libkmip?

    master

    libkmip 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
  4. Overview of the Global Transaction IDentifiers (GTIDs) Library

    master
    The libs/mysql/gtid library 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.
  5. Overview of libcbor features

    master

    libcbor 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.
  6. Overview of the MySQL Utility Library

    master

    The libs/mysql/utils library 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 Error base class for C++ error management.
    • Enumeration Utilities: Includes to_underlying (compatible with C++23) and to_enumeration.
    • Template Utilities: Includes Is_specialization for checking template specializations.
    • Bit Operations: Provides utilities for bitwise manipulation.
    • Deprecation Macros: Macros to facilitate header deprecation.
  7. Overview of MySQL Binlog Libraries

    master

    The 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.

  8. Overview of the Googletest Mocking (gMock) Framework

    master

    gMock 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.

  9. Overview of GreatSQL features

    master

    GreatSQL 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) and Clone (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.
  10. Overview of the funcs_1 test suite

    master

    The funcs_1 test suite is designed for additional feature checks beyond the standard regression tests found in mysql-test/t. It specifically targets features introduced with MySQL 5.0, such as:

    • VIEWS
    • INFORMATION_SCHEMA
    • STORED PROCEDURES

    While many INFORMATION_SCHEMA views are tested within the main regression suite, funcs_1 provides specific coverage for certain views, including partial testing for ENGINES and EVENTS, and full testing for PROCESSLIST.

  11. Overview of MySQL Libraries

    master

    MySQL 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.