Skip to content

Releases: Restream/reindexer

v3.22.1

12 Feb 10:14
Compare
Choose a tag to compare

Core

  • [fix] Fixed COUNT() for fulltext queries, when preselect_before_ft is enabled in the index config
  • [fix] Fixed LIMIT/OFFSET behavior for MERGE-queries, when preselect_before_ft is enabled in the index config
  • [fix] Disabled in-memory WAL for the system namespaces

Replication

  • [fix] Improved transactions replication via WAL queries: from now transactions will not be splitted into separate insert/updates on the follower

Face

  • [fix] Fixed the Check request
  • [fix] Added bottom padding to the Performance Updates chart

v3.22.0

02 Feb 13:40
Compare
Choose a tag to compare

Core

  • [fea] Added explain results for the subqueries
  • [fea] Added support for limit/offset in Delete and Update queries
  • [fea] Optimized ordered indexes' cache logic to achive more cache hits and more compact cache size
  • [fea] Added support for COUNT_CACHED(*)/CachedTotal() aggregation in the queries with INNER JOINS. Now it's possible to cache total count results for such queries
  • [fix] Fixed SQL parsing for combinations of the subqueries and other conditions in the main query
  • [fix] Fixed select functions with '.' delimiter. Previously those functios actually expected '=' as a delimiter

Fulltext

  • [fea] Reworked logic for the stop-words. More details
  • [fea] Added config for the base ranking algorithm. Check bm25_config field in the fulltext settings

Replication

  • [fea] Fixed sync logic to allow modification of the server 's ID at runtime

Reindexer server

  • [fix] Fixed SQL suggests for subqueries and certain types of the JOIN-queries

Docker

  • [fea] Base docker image was updated to alpine 3.19

Build

  • [fix] Fixed dependencies and build for alpine 3.15+
  • [fix] Fixed Release build with GCC 13.2

Face

  • [fea] Added the subqueries field to the explain mode
  • [fea] Upgraded Webpack to 5.х
  • [fea] Added the default values to the NS config during the mode changing
  • [fix] Fixed the message about the outdated browser version after Chrome upgraded to v120.
  • [fix] Fixed the settings panel layout on the Performance page, which was overlapped by the message about the outdated browser version
  • [fix] Fixed the table columns auto resizing
  • [fix] Fixed the table header width issue that appeared on the table resizing
  • [fix] Fixed the table layout that crashed on scrolling
  • [fix] Fixed the empty space between the last NS and the Total section on the Memory page
  • [fix] Fixed the title changing on the NS page during a new NS creating
  • [fix] Fixed the tooltip position in the sidebar menu
  • [fix] Fixed the "+" button for the Expire after field

v4.13.0 *beta*

22 Dec 12:49
Compare
Choose a tag to compare
v4.13.0 *beta* Pre-release
Pre-release

Core

  • [ref] Deprecated EnableStorage API was removed

Replication

  • [fea] Added compatibility mode for the replication. If reindexer v4 was built with ENABLE_V3_FOLLOWERS cmake option, it is able to replicate to the reindexer v3 followers (v3.21.0 or newer)

Sharding

  • [fea] Sharding configuration command is now works with RAFT-cluster shards (on the empty namespaces)
  • [fix] Fixed #config-namespace rollback on the sharding configuration errors

Go connector

  • [fea] Go object cache (LRU) is now able to work with sharded clusters, RAFT-clusters and async replicas

Ported

v3.21.0

15 Dec 11:55
Compare
Choose a tag to compare

Core

  • [fea] Added subqueries support (explain for subqueries will be implement in the next releases)
  • [fea] Added backtraces/minidump support for Windows platform
  • [fea] Added query crash tracker support for Windows platform
  • [fix] Added explicit error for aggregations in joined queries
  • [fix] Fixed UPDATE-queries for array-indexes with multiple JSON-paths
  • [fix] Fixed UPSERT/UPDATE for sparse arrays with null-values
  • [fix] Optimized tagsmatcher's updates in UPDATE-queries

Replication

  • [fea] Added some temporary replication fixes for v4-compatibility (one of the next v4 releases will contain v3-v4 compatibility mode for migration)

Reindexer server

  • [fea] Added HTTP DSL for subqueries

Go connector

  • [fea] Added Go API and DSL-convertor for subqueries
  • [fea] Changed CJSON-to-object convetrion logic for slices: now the single JSON values and fields with multiple JSON-paths will be concatenated together in the target field
  • [fea] Added WithStrictJoinHandlers. This option allows to validate JoinHandlers usage in runtime
  • [fix] Fixed panic handling in the CJSON deserialization
  • [fix] Fixed logging in cproto-binding. Error messages will no longer be redirected to stdout instead of user's logger

Face

  • [fea] Saved the scroll position on the sorting
  • [fea] Changed the Server ID range
  • [fea] Improved the notification about the supported browsers
  • [fea] Added the default values to the config form when the default config is using
  • [fix] Fixed the wrong redirect to a fake database
  • [fix] Fixed the column order changing on the data sorting
  • [fix] Fixed the horizontal scroll on the data sorting
  • [fix] Fixed the wrong data filtering in the Statistics tables
  • [fix] Fixed the modal window with the notification about the JSON-tags clearing
  • [fix] Fixed the "+/-" buttons for the inputs
  • [fix] Fixed the console issue appeared on the array data sorting
  • [fix] Fixed the layout of the Performance page
  • [fix] Fixed the pagination buttons
  • [fix] Fixed the misprint in Config

v3.20.0

30 Oct 17:14
Compare
Choose a tag to compare

Core

  • [fea] Added crash query report for Update/Delete queries
  • [fea] Added configs for LRU index cache size (check section cache in the namespaces entity of the #config-namespace)
  • [fea] Optimized CJSON deserialization
  • [fea] Optimized WAL size (unchaged indexes and schemas will not be added into the WAL anymore)
  • [fea] Added atomic rollback for multiple field UPDATE-queries in case of errors during query execution (currently it is atomic on the level of the individual document)
  • [fix] Fixed column indexes optimization (some of the comparators have become noticeably more effective)
  • [fix] Added PK check for UPDATE-queries
  • [fix] Fixed JOINs on composite indexes
  • [fix] Fixed select functions with MERGE queries for cases when the same namespace is merged multiple times
  • [fix] Fixed non-indexed string/int fields convertion on index creation in cases when index type is not equal to the field type
  • [fix] Disabled leveldb's log files (in rare cases those logs could lead to the problems with storage reopenning)
  • [fix] Disable background indexes optimization for the temporary namespaces
  • [fix] Removed attempts to reopen storage with flush errors befors it's destruction
  • [fix] Some of the storage flushes were moved outside of the unique namespaces lock
  • [fix] Fixed directories deletion for Windows

Replication

  • [fea] Reduced memory consumptio for online-updates
  • [fix] Fixed updates size calculation during max allowed updates size check (now it checks actual allocated memory, not the data size)
  • [fix] Namespaces config applying after FORCE-sync replication
  • [fix] Fixed some rare tagsmatcher conflicts in replicated namespaces in case when namespace was not replicted previously and had some data in it
  • [fix] Fixed some unnecessary force syncs after go clients connection
  • [fix] Fixed documents duplication after PK change in UPDATE-query
  • [fix] Fixed logical race in cascade replication resync

Reindexer server

  • [fea] Added support for UNIX domain sockets for RPC-server. Disabled by default (check urpcaddr-flag in server's config)
  • [fea] Added support for default timeouts in HTTP-server (support for http-write-timeout and http-read-timeout options in server's config)
  • [fea] Added support for Request-Timeout header in HTTP-requests to setup individual timeout for each request

Reindexer tool

  • [fea] Added support for UNIX domain sockets (dsn format: ucproto://<socket_path>:/<dbname>, example: ucproto:///tmp/reindexer.sock:/my_db)

Go connector

  • [fea] Added support for UNIX domain sockets in cproto-binding (dsn format: ucproto://<socket_path>:/<dbname>, example: ucproto:///tmp/reindexer.sock:/my_db)
  • [fix] Fixed deadlock in EnableLogger method betweenn Go and C++ mutexes

Face

  • [fea] Added the ability to use hot keys to navigate over the UI
  • [fea] Added the link to the documentation to the left bar menu
  • [fea] Changed the column filter with the case sensitive one
  • [fea] Added validation of the JSON paths field to the Index Config page
  • [fea] Added the wal_size field to the Namespace config
  • [fea] Added the preselect_us and field_type sections fto the Explain page
  • [fix] Fixed the horizontal scroll for the Grid view
  • [fix] Fixed the data sorting on the Items page during the namespace changing
  • [fix] Fixed the "undefined items" error during the db changing
  • [fix] Fixed the console issues for the ttl index
  • [fix] Made the Namespace refactoring
  • [fix] Fixed the operations with the last column for the Grid view

Build

v4.12.0 *beta*

13 Oct 11:01
Compare
Choose a tag to compare
v4.12.0 *beta* Pre-release
Pre-release

Sharding

  • [fea] Added commands for the runtime sharding configuration (on the empty namespaces)

Go connector

  • [fix] Fixed potential deadlock in builtin binding, when SetLogger method is called multiple

Ported

Face

  • [fea] Improved the drop-down section behavior on the Query builder page
  • [fea] Added a link to the online documentation
  • [fea] Added new proc settings to the Index config
  • [fea] Changed the scale window icon for textareas
  • [fea] Added the background color to the Close icon in the search history on the Namespace page
  • [fea] Improved the buttons' behavior on the Query builder page
  • [fea] Added the database name size limit
  • [fea] Added the ability to use spaces for JSON paths
  • [fea] Changed the numeric values position in the Grid
  • [fix] Fixed the columns' settings resetting after the Perfstats page reloading
  • [fix] Removed the double requests on the Perfstats page
  • [fix] Fixed the JSON Paths tooltip description
  • [fix] Fixed the pie chart position in Safari
  • [fix] Fixed the popup window size for the long text
  • [fix] Fixed the bottom padding on the statistics legend window
  • [fix] Fixed the modal window to inform about disabled memory statistics
  • [fix] Fixed the filter removal
  • [fix] Fixed the filter result page when the filter is removed
  • [fix] Fixed the redirect to the wrong page after all items were removed
  • [fix] Fixed the Statistics chart for undefined replication.wal_size
  • [fix] Fixed the column set for the namespace items during the namespace switching
  • [fix] Fixed the JSON paths view for values included spaces
  • [fix] Changed the value format for width on the integer for sqlquery
  • [fix] Fixed the bug related to the query history on the Namespace Items list
  • [fix] Fixed the column titles in the table settings menu on the Performance page
  • [fix] Added the validation of the negative values for the index settings
  • [fix] Fixed the SQL query result table
  • [fix] Fixed the aggregation panel
  • [fix] Fixed the items sorting
  • [fix] Fixed the last column settings

v3.19.0

16 Sep 09:12
Compare
Choose a tag to compare

Core

  • [fea] Added background namespaces deleteion. Previously in some cases atomic transactions could cause the namespace's deletion in the querie's execution thread, which lead to the latency spike
  • [fea] Added locks and flush timings for UPDATE and DELETE queries into slow log
  • [fea] Added support for the COUNT/COUNT_CACHED aggregations for the MERGE-queries
  • [fea] Added basic support for the SUM/MAX/MIN aggregations for the MERGE-queries without LIMIT/OFFSET
  • [fea] Added more information about JOINs condtitions injection into explain (check on_conditions_injections field in the explain results)
  • [fea] Added field_type into the explain. This fields shows, which kind of field/comparator was used in the query: indexed or non-indexed
  • [fea] Added support for store (-) UUID indexes
  • [fea] Optimized string<->UUID convertions in the C++ library
  • [fix] Fixed total_us time calculation in the explain (previously preselect time was in the explain results, but was not counted in the total_us field)
  • [fix] Fixed JOINs conditions injection for the queries with multiple JOINs. Previously this optimization could skip some of the JOIN queries
  • [fix] Fixed multiple UPDATE arrays concatenation issues: empty arrays, string array, array with scalar, etc.
  • [fix] Composite indexes over the other composite indexes were explicitly disabled
  • [fix] Fixed check for nested JOINs and MERGEs (nested JOIN/MERGE is not allowed)
  • [fix] Multiple JSON-paths were explicitly disabled for the scalar indexes (multiple JSON-paths are allowed for composite and array indexes only)
  • [fix] Fixed crash on the CJSON deserialization for array indexes with multiple JSON-paths

Replication

  • [fix] Fixed handling of the updates buffer overflow (previously this logic may lead to multiple extra resyncs)

Fulltext

  • [fea] Added experimental support for Armenian, Hebrew, Arabic and Devanagari alphabets (prefixes/postfixes/suffixes search, typos, stop-words and synonyms are supported)

Reindexer server

  • [fix] Fixed SSE4.2 support check on startup (server has to print error message if SSE support is required for the current build)
  • [fix] Fixed DELETE-queries compatibility between reindexer_server v3 and reindexer_tool v4 in cproto mode
  • [fix] Fixed RPC-timeout handling (extra check for unread data wasd added). Previously connect could be dropped in case of the some very long queries

Go connector

  • [fea] Optimized string<->UUID convertions in the Go bindings
  • [fea] Default balancing algorithm for cproto was changed from RoundRobin to PowerOfTwoChoices. RoundRobin may still be enabled via WithConnPoolLoadBalancing option of the binding
  • [fix] Fixed transactions Commit/Rollback stucking in case of the incomatible items' sctructs in client and DB
  • [fix] Fixed builtinserver logger initialization in cases when single app run multiple instances of the builtinserver
  • [fix] Fixed RPC-connections background pinging (Ping requests became asynchronous)

Build

  • [fix] Fixed build with GCC 13.2

Face

  • [fea] Changed the numeric values position in the Grid
  • [fea] Added the ability to use spaces for JSON paths
  • [fix] Fixed the Statistics chart for undefined replication.wal_size
  • [fix] Fixed the column set for the namespace items during the namespace switching
  • [fix] Fixed the JSON paths view for values included spaces
  • [fix] Changed the value format for width on the integer for sqlquery
  • [fix] Fixed the bug related to the query history on the Namespace Items list
  • [fix] Fixed the column titles in the table settings menu on the Performance page
  • [fix] Added the validation of the negative values for the index settings

v3.18.0

29 Jul 15:23
Compare
Choose a tag to compare

Core

  • [fea] Increased max indexes count for each namespace up to 255 user-defined indexes (previously it was 63)
  • [fea] Added more info to the slow logger's output: mutexes timing for transactions and basic explain info for select-queries
  • [fea] Improved logic of the cost evaluation for the btree indexes usage in situations, when backgroud indexes ordering was not completed (right after write operations). Expecting more optimal execution plan in those cases
  • [fix] Changed logic of the ALLSET operator. Now ALLSET condition returns false for empty values sets and the result behavior is similar to MongoDB $all
  • [fix] Fixed automatic conversion for numeric strings with leading or trailing spaces (i.e. ' 1234' or '1234 ') into integers/floats in WHERE/ORDER BY
  • [fix] Allowed non-unique values in forced sort (ORDER BY (id,4,2,2,5)). If forced sort order contains same values on the different positions (i.e. ORDER BY (id,1,2,1,5)), then the first occurance of the value will be used for sorting
  • [fix] Added limits for the large values sets in the composite indexes substitution algorithm, introduced in v3.15.0 (due to performance issues in some cases). If the result size of the set is exceeding corresponding limit, reindexer will try to find another composite index or skip the substitution

Go connector

Build

  • [fea] Added support and deploy for Debian 12 (bookworm). Debian 10 (buster) build was deprecated
  • [fea] Enabled SSE4.2 for the default reindexer's builds and for the prebuilt packages. SSE may still be disabled by passing -DENABLE_SSE=OFF to cmake command

Face

  • [fea] Changed the scale window icon for textareas
  • [fea] Added the background color to the Close icon in the search history on the Namespace page
  • [fea] Improved the buttons' behavior on the Query builder page
  • [fea] Added the database name size limit.
  • [fea] Improved the drop-down section behavior on the Query builder page
  • [fea] Added new proc settings to the Index config
  • [fix] Fixed the columns' settings resetting after the Perfstats page reloading
  • [fix] Removed the double requests on the Perfstats page
  • [fix] Fixed the JSON Paths tooltip description
  • [fix] Fixed the pie chart position in Safari
  • [fix] Fixed the popup window size for the long text
  • [fix] Fixed the bottom padding on the statistics legend window
  • [fix] Fixed the modal window to inform about disabled memory statistics
  • [fix] Fixed the filter removal
  • [fix] Fixed the filter result page when the filter is removed
  • [fix] Fixed the redirect to the wrong page after all items were removed

v3.17.0

06 Jul 09:53
Compare
Choose a tag to compare

Core

  • [fea] Optimized namespaces' locks for queries to the system namespaces, containing explicit list of names (for example, SELECT * FROM #memstats WHERE "name" IN ('ns1', 'nsx', 'ns19') now requires shared locks for the listed namespaces only)
  • [fea] Added update queries for the arrays of objects (i.e. queries like UPDATE ns SET object_array[11].field = 999)
  • [fea] Added more fulltext index options for the base rankings tuning. Check FtBaseRanking struct in the config doc
  • [fix] Fixed update queries for the sparse indexed arrays
  • [fix] Fixed selection plans and cost calculation for NOT-conditions in queries
  • [fix] Disabled composite indexes over non-indexed fields (except fulltext indexes) and sparse composite indexes. Previously those indexes could be created, but was not actually implemented, so queries with them could lead to unexpected errors. This may break compatibility with databases, containing such kind of invalid indexes
  • [fix] Fixed merging of the conditions by the same index in queries' optimizer (previously it could sometimes cause SIGABORT in case of the empty resulting set)
  • [fix] Disabled LIMIT for internal merged queries (it was not implemented and did not work properly on previous versions)
  • [fix] Fixed cache behavior for fulltext queires with JOINs and enable_preselect_before_ft: true

Reindexer server

  • [fea] Optimized perfstats config access
  • [fea] Added support for CSV results for select queries via HTTP (experimental, probably this API will be modified later on)

Go connector

  • [fea] Added SortStPointDistance and SortStFieldDistance (simplified aliases for the long constructions with ST_Distance)
  • [ref] Added reindexer.Point type instead of [2]float64

v4.11.0 *beta*

09 Jun 12:12
Compare
Choose a tag to compare

Server

  • [fix] Fixed HTTP-transactions timeout handling

Replication

  • [fix] Fixed SEGFAULT on 'set_leader_node'-command, when RAFT cluster is not configured

Face

  • [fix] Fixed the issue with the total section of the Memory/Grid table appeared on scrolling
  • [fix] Added the tab choice to the local storage on the Statistics-> Replication page

Ported