Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Redis feature set table #1008

Merged
merged 11 commits into from
Jan 24, 2025
Merged

Redis feature set table #1008

merged 11 commits into from
Jan 24, 2025

Conversation

rrelledge
Copy link
Collaborator

Copy link
Collaborator

@dwdougherty dwdougherty left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apart from my one comment, this looks good.

@@ -0,0 +1,9 @@
A Redis feature set includes a specific Redis database version along with the advanced capabilities and data structures provided by compatible module versions.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Just a caveat here: Redis CE doesn't include the advanced capabilities by default. Customers will either have to download and install them separately, or use Redis Stack. This, of course, will go away when CE8 ships, essentially replacing both standalone Redis CE and Redis Stack.

So, really, this just applies to RS, RC, and Redis Stack.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest using something like this to not mention advanced capabilities and data structures to be ready for CE8.


A Redis feature set represents the complete set of features available in a specific configuration, and its version number increments whenever a new feature is introduced.

To use a new feature introduced in a later feature set, you must upgrade to the corresponding feature set version, as outlined in the table below.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct. We can add that in if you like. I don't think users are consuming modules separately often. We see in the field customers running redis-stack in production

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrelledge , what do you think about this wording?

A Redis feature set represents the complete set of features available in a specific configuration, and its version number increments whenever a new feature is introduced.

To use a new feature introduced in a later feature set, you must upgrade to the corresponding feature set version, as outlined in the table below.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ViktarStarastsenka
I'm fine with changing the feature set description, but I'm not sure about the phrase "specific configuration".

What do you think of something like:
"A Redis feature set represents the complete set of features available for a specific Redis version."

I don't think it's necessary to explain "its version number increments whenever a new feature is introduced".

I changed the last sentence to: "To use a new feature introduced in a later feature set, you must upgrade the corresponding components according to the following table."

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agreed, specific configuration sounds like something different than version.

Copy link
Collaborator

@mich-elle-luna mich-elle-luna left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you!


A database is not compatible with module versions from different feature set versions. If you want to use advanced capability features or data structures introduced by a later feature set version, you must upgrade your database to the compatible Redis version and module versions according to the following table.

| Redis feature set version | Distributed in | What's new |
Copy link
Contributor

@ViktarStarastsenka ViktarStarastsenka Dec 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

maybe we do not actually need the "Distributed in" column at all - we can reference the feature set version from everywhere (e.g. release notes in RS, Redis Cloud, etc.)
and it will make the table smaller

though I'd suggest creating a separate "Compatible versions" column, where we describe the Redis server version and modules (and just the Redis version with CE8)

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@ViktarStarastsenka I updated the staged previews of the table with your suggested changes.

I also added the table to the Cloud changelog: https://redis.io/docs/staging/DOC-4673/operate/rc/changelog/
cc @cmilesb , are you okay with this addition?

@@ -0,0 +1,9 @@
A Redis feature set includes a specific Redis database version along with the advanced capabilities and data structures provided by compatible module versions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest using something like this to not mention advanced capabilities and data structures to be ready for CE8.


A Redis feature set represents the complete set of features available in a specific configuration, and its version number increments whenever a new feature is introduced.

To use a new feature introduced in a later feature set, you must upgrade to the corresponding feature set version, as outlined in the table below.


A database is not compatible with module versions from different feature set versions. If you want to use advanced capability features or data structures introduced by a later feature set version, you must upgrade your database to the compatible Redis version and module versions according to the following table.

| Redis feature set version | Compatible versions | What's new |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

can we please move "Compatible versions" after "What's new"?
since with Redis 8, this column would be less relevant

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I suggest combining the "Redis feature set version" and "Compatible versions" into one column to optimize space, especially when Redis 8 is out.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it's going to potentially look crowded with either solution. If we list all the module versions in the first column, then it might make the feature set version more difficult to see. I guess adding a line break between the feature set version and component versions might help though.

For the change with Redis 8, we might need to add a footnote to the table or something that explains the sudden absence of component versions and their release notes links.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think adding a line break is a good idea.


| Redis feature set version | Compatible versions | What's new |
|-------------------|----------------|------------|
| 7.4 | [Redis 7.4]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisce-7.4-release-notes.md">}})<br />[Search 2.10]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes.md" >}})<br />[JSON 2.8]({{<relref "operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes.md">}})<br />[Time series 1.12]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes.md">}})<br />[Bloom 2.8]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes.md">}}) | Hash field expiration; new vector data types; time series insertion filters |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

let's add more information about new features and changes for every release.
Also, we need to add a description for “Compatibility Changes”, describing any behavioral/incompatible changes since they affect the steps users need to upgrade

I added a possible example here - https://github.com/redis/docs/pull/1034/files

@@ -0,0 +1,9 @@
A Redis feature set includes a specific Redis database version along with the advanced capabilities and data structures provided by compatible module versions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The suggestion is to locate the feature sets under the “Commands” section since basically commands are introduced or their behavior is changed with the feature sets

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I don't think we can easily include a separate, non-command page under the commands section at this time. The commands section uses layouts that work differently from the rest of the site. It did not work at all when I made a cursory attempt in my local env. I don't think it's a simple change, and we definitely want to be careful with the commands section.

cc @dwdougherty since you are more familiar with the commands section than me.

| Redis feature set | What's new |
|-------------------|------------|
| **Feature set version:** 7.4<br /><br />**Component versions:**<br />[Redis 7.4]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisce/redisce-7.4-release-notes.md">}})<br />[Search 2.10]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.10-release-notes.md" >}})<br />[JSON 2.8]({{<relref "operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.8-release-notes.md">}})<br />[Time series 1.12]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.12-release-notes.md">}})<br />[Bloom 2.8]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.8-release-notes.md">}}) | **Hash**: <br>- [Expiration of individual hash fields]({{<relref "/develop/data-types/hashes#field-expiration">}}). <br> **Streams**: <br>- To start reading from the last stream message, use [`XREAD`]({{<relref "/commands/xread">}}) with the new ID value `+`.<br> **Time series**: <br>Insertion-filter for close samples. <br> **JSON**: <br>- A fix to not duplicate `AOF` commands multiple times in [`JSON.MSET`]({{< baseurl >}}/commands/json.mset/). <br> **Probabilistic**: <br>- Returns an error if [`CMS.MERGE`]({{< baseurl >}}/commands/cms.merge/) results in an overflow or underflow. <br> **Redis Query Engine**: <br>- New `BFLOAT16` and `FLOAT16` vector data types, reducing memory consumed by vectors while preserving accuracy. <br>- Support for indexing empty and missing values and enhanced developer experience for queries with exact matching capabilities. <br>- You can match `TAG` fields without needing to escape special characters. <br>- Expanded geospatial search with new `INTERSECT` and `DISJOINT` operators, improved reporting of the memory consumed by the index, and exposed full-text scoring in aggregation pipelines. <br> **Compatibility changes**: <br>- Redis feature set 7.4 does not include [triggers and functions]({{<relref "/operate/oss_and_stack/stack-with-enterprise/deprecated-features/triggers-and-functions">}}). To ensure a seamless upgrade, remove any T&F functions created before loading an RDB file into the new Redis Stack. |
| **Feature set version:** 7.2<br /><br />**Component versions:**<br />[Redis 7.2](https://raw.githubusercontent.com/redis/redis/7.2/00-RELEASENOTES)<br />[Search 2.8]({{< relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisearch/redisearch-2.8-release-notes.md" >}})<br />[JSON 2.6]({{<relref "operate/oss_and_stack/stack-with-enterprise/release-notes/redisjson/redisjson-2.6-release-notes.md">}})<br />[Time series 1.10]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redistimeseries/redistimeseries-1.10-release-notes.md">}})<br />[Bloom 2.6]({{<relref "/operate/oss_and_stack/stack-with-enterprise/release-notes/redisbloom/redisbloom-2.6-release-notes.md">}})<br />[Gears 2.0](https://github.com/RedisGears/RedisGears/releases) | - New [`WAITAOF`]({{<relref "/commands/waitaof">}}) command.<br />- Memory and speed optimizations for lists, sets, and sorted sets.<br />- RESP3 support.<br />- New RDB file format.<br />**JSON**:<br />- New JSON commands.<br />**Redis Query Engine:**<br />- Geo polygon search.<br />- Performance improvements for sorted search and queries. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

7.2:
Performance and resource utilization improvements, including significant memory and speed optimizations for lists, sets, and sorted sets.

JSON introduces two new commands:

Redis Query Engine:
Introducing the frequently asked Geo Polygon Search.

Compatibility changes:

  • Redis 7.2 uses a new format (version 11) for RDB files, which is incompatible
    with older versions. See release notes for additional breaking changes.
  • Redis feature set 7.2 does not include Graph capabilities.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks! I updated the 7.2 description in the table.
@mich-elle-luna originally told me not to include breaking changes in this table, so I omitted that part for now.

@@ -0,0 +1,9 @@
A Redis feature set includes a specific Redis database version along with the advanced capabilities and data structures provided by compatible module versions.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@rrelledge , what do you think about this wording?

A Redis feature set represents the complete set of features available in a specific configuration, and its version number increments whenever a new feature is introduced.

To use a new feature introduced in a later feature set, you must upgrade to the corresponding feature set version, as outlined in the table below.

Copy link
Contributor

@ViktarStarastsenka ViktarStarastsenka left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

just one comment - we can remove this

Compatibility changes:

  • Redis feature set 7.4 does not include [triggers and functions]({{<relref "/operate/oss_and_stack/stack-with-enterprise/deprecated-features/triggers-and-functions">}}). To ensure a seamless upgrade, remove any T&F functions created before loading an RDB file into the new Redis Stack.

@rrelledge rrelledge merged commit 2bf3225 into main Jan 24, 2025
5 checks passed
@rrelledge rrelledge deleted the DOC-4673 branch January 24, 2025 16:21
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants