Release Notes for MariaDB Enterprise Server 11.4.0-1

New Preview Features

Vector Embeddings

Vector embeddings are numerical representations [0.2, -0.5, 0.8, 0.1, ...] that capture semantic meaning or features of data in a multi-dimensional space. The embedding transforms simple to complex data such as text, images, audio, or video into a series of numbers (a vector) where similar items are positioned together in the multi-dimensional vector space.

For example, a word embedding of the word "dog" would be close in a vector embedding space to the word "puppy", whereas "dog" would not be close to the word "airplane". The embedding representation can be used in similarity search, recommendation systems, or more generally in traditional AI/ML systems and GenAI systems.

New Data Type VECTOR(N)

With the RC release a new data type VECTOR(N) has been added to represent the vector column, where N is the number of dimensions.

Example:

CREATE TABLE myVectorSearch (
    id INT PRIMARY KEY,
    v VECTOR(5) NOT NULL,
    VECTOR INDEX (v)
);

Conversion Functions

VEC_FromText() converts a text representation of the vector (a json array of numbers) to a vector (little-endian IEEE float sequence of bytes, 4 bytes per float).

Example:

select hex(vec_fromtext('[1,2,3]'));
+------------------------------+
| hex(vec_fromtext('[1,2,3]')) |
+------------------------------+
| 0000803F0000004000004040     |
+------------------------------+

VEC_ToText() converts a binary vector into a json array of numbers (floats).

Example:

SELECT VEC_ToText(x'e360d63ebe554f3fcdbc523f4522193f5236083d');
+---------------------------------------------------------+
| VEC_ToText(x'e360d63ebe554f3fcdbc523f4522193f5236083d') |
+---------------------------------------------------------+
| [0.418708,0.809902,0.823193,0.598179,0.033255]          |
+---------------------------------------------------------+

Comparison Functions

Comparing vectors, calculating how close they are, is the key functionality needed by an application working with vector search. Two functions exist for calculating the distance between vectors. Which one to use depends on the application and on how the vectors were generated.

VEC_DISTANCE_EUCLIDEAN() takes two vectors and computes the straight line (L2) Euclidean distance between two multi-dimensional points in the vector space

Example:

INSERT INTO v VALUES
    (1, x'e360d63ebe554f3fcdbc523f4522193f5236083d'),
    (2, x'f511303f72224a3fdd05fe3eb22a133ffae86a3f'),
    (3,x'f09baa3ea172763f123def3e0c7fe53e288bf33e'),
    (4,x'b97a523f2a193e3eb4f62e3f2d23583e9dd60d3f'),
    (5,x'f7c5df3e984b2b3e65e59d3d7376db3eac63773e'),
    (6,x'de01453ffa486d3f10aa4d3fdd66813c71cb163f'),
    (7,x'76edfc3e4b57243f10f8423fb158713f020bda3e'),
    (8,x'56926c3fdf098d3e2c8c5e3d1ad4953daa9d0b3e'),
    (9,x'7b713f3e5258323f80d1113d673b2b3f66e3583f'),
    (10,x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e');
SELECT id FROM v
    ORDER BY VEC_DISTANCE_EUCLIDEAN(v, x'6ca1d43e9df91b3fe580da3e1c247d3f147cf33e');
+----+
| id |
+----+
| 10 |
|  7 |
|  3 |
|  9 |
|  2 |
|  1 |
|  5 |
|  4 |
|  6 |
|  8 |
+----+

VEC_DISTANCE_COSINE() measures the cosine distance between two vectors in a multi-dimensional vector space

Example:

SELECT VEC_DISTANCE_COSINE(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]'));
+-----------------------------------------------------------------------+
| VEC_DISTANCE_COSINE(VEC_FROMTEXT('[1,2,3]'), VEC_FROMTEXT('[3,5,7]')) |
+-----------------------------------------------------------------------+
|                                                   0.00258509695694209 |
+-----------------------------------------------------------------------+

Configuration Options

The vector search feature requires some new system variables for controlling the general behavior. Four new system variables have been added:

  • mhnsw_max_cache_size - Upper limit for one MHNSW vector index cache

  • mhnsw_default_distance - Default value for the DISTANCE vector index option

  • mhnsw_default_m - Default value for the M vector index option

  • mhnsw_ef_search - Minimal number of result candidates to look for in the vector index for ORDER BY ... LIMIT N queries.

Platforms

In alignment to the enterprise lifecycle, MariaDB Enterprise Server 11.4.0-1 is provided for:

  • Debian 11 (x86_64, ARM64)

  • Debian 12 (x86_64, ARM64)

  • Red Hat Enterprise Linux 8 (x86_64, ARM64)

  • Red Hat Enterprise Linux 9 (x86_64, ARM64, PPC64LE)

  • AlmaLinux 8 (x86_64, ARM64)

  • AlmaLinux 9 (x86_64, ARM64)

  • Rocky Linux 8 (x86_64, ARM64)

  • Rocky Linux 9 (x86_64, ARM64)

  • SUSE Linux Enterprise Server 15 (x86_64, ARM64)

  • Ubuntu 20.04 (x86_64, ARM64)

  • Ubuntu 22.04 (x86_64, ARM64)

  • Ubuntu 24.04 (x86_64, ARM64)

  • Microsoft Windows (x86_64) (Without MariaDB Enterprise Cluster (Galera) support)

Some components of MariaDB Enterprise Server might not support all platforms. For additional information, see "MariaDB Corporation Engineering Policies".