Reindexer Versions Save

Embeddable, in-memory, document-oriented database with a high-level Query builder interface.

v4.15.0

3 weeks ago

Core

  • [fea] Optimized comparators execution logic to avoid excessive runtime checks
  • [fea] Rewritten comparators for the composite indexes. New version does not extracts fields from the tuple in the each iteration. Overall performance boost for queries with composite conditions is up to ~40%
  • [fea] Added extra column subindex for the hash/tree-indexes. It requires extra memory, but gives ~20-50%% overall speedup (depending on the indexes selectivity). The column subindex may be disabled with the dense index option
  • [fea] Optimized general sorting logic for the hash/store-indexes: now it uses column subindexes if possible for the cache efficiency. In some cases this approach provides up to 45% performance gain for the low-selectivity indexes
  • [fea] Added extra column subindex for the string store(-) indexes. Previosly store(-) indexes have used the column for int, int64, double, uuid and bool types only. The column subindex may be disabled with the dense index option
  • [fix] Fixed types conversions for non-index fields in the select quieries

Go connector

  • [fix] Fixed WhereUUID-method. Now it works for non-index fields too

Ported

Deploy

Face

  • [fea] Changed the fonts
  • [fea] Added the ability to delete NS Meta data
  • [fea] Added the Cache settings to the NS config
  • [fea] Made the new UI component for the pagination
  • [fea] Added redirect to the created NS
  • [fea] Added the new settings to the Full text config
  • [fea] Moved field descriptions to the tooltips on the DB Config page
  • [fea] Added Git documentation link for the Bm25 config
  • [fea] Improved the layout of the Stop words and Synonyms lists
  • [fea] Changed empty data to the null value in the Grid view
  • [fix] Fixed the Pin NS button
  • [fix] Fixed the search panel layout on the NS page
  • [fix] Fixed the incorrect message about the empty result of the Explain operation
  • [fix] Fixed caching of the NS config
  • [fix] Fixed the inform window that appeared on the Cancel button on the NS Config page
  • [fix] Removed ESlint popup
  • [fix] Fixed the layout issues on the Index form
  • [fix] Fixed "see & edit" link on the Queries Perfstats page
  • [fix] Fixed the concole issue appeared on the SQL -> Explain query
  • [fix] Fixed extra data uploading on the Performace page
  • [fix] Fixed the console issues on the add/edit indexes
  • [fix] Fixed the mergeLimit variable

v3.24.0

1 month ago

Core

  • [fea] Added array_remove and array_remove_once functions for the UPDATE-queries. Details
  • [fea] Increased limit for IdSet join preselect from 10'000 to 20'000 documents
  • [fea] Added C++ benchmarks for sparse-indexes
  • [fea] Disabled comparators for sparse-indexes. From now sparse-indexes always use more effective IdSets instead
  • [fea] Added DeleteMeta method and simplified meta storing/reading logic
  • [fix] Fixed race condition in the JOINS cache
  • [fix] Fixed results serialization for MERGE-queries with multiple JOINS in cases when some of the JOIN-queries have not joined any items
  • [fix] Fixed distinct result in cases when WHERE-condition contains duplicate values (e.g. distinct(id) WHERE id IN (1,1,1,3))

Fulltext

  • [fea] Increased max merge_limit value (new values range is [1, 0x1FFFFFFF])
  • [fix] Fixed phrase search behavior for the phrases containig single word

Go connector

  • [fea] Added EnumMeta and DeleteMeta functions
  • [fix] Fixed RenameNamespace function - now upsert after namespace's renaming works properly

Reindexer server

  • [fea] Add DELETE-method for the /metabykey HTTP-endpoint

Deploy

Face

  • [fea] Added possibility to delete namespace's Meta data
  • [fea] Added Git documentation link for the Bm25 config
  • [fea] Added explicit null-values in the Grid view
  • [fix] Fixed the inform window that appeared on the Cancel button on the NS Config page
  • [fix] Fixed extra data uploading on the Performace page
  • [fix] Changed Git documentation link in the Main menu
  • [fix] Fixed console issues on the add/edit indexes
  • [fix] Fixed caching of the NS config
  • [fix] Fixed layout issues on the Index form

v3.23.1

1 month ago

Core

  • [fix] Fixed crash in the incremental fulltext index during typos handling
  • [fix] Fixed crash in the UPDATE-query in the case when this query sets values for some array-field and composite index simultaneously

Go connector

  • [fix] Fixed joined and composite fields behavior: from now fields with those tags will not be created in the database

Build

  • [fix] Fixed Release build with GCC-12
  • [fix] Added version check for Google Benchmark library during the build

Deploy

  • [fea] Added clang-tidy configs into GitHub source tree

v3.23.0

2 months ago

Core

  • [fea] Improved queries conditions injection in the both directions: joined-to-main and main-to-joined
  • [fea] Improved heuristic for the joins preselect/condition injection. If query has some conditions with high selectivity, scheduler will try to avoid high cost preselect/injections attempts
  • [fea] Added logic for the intersecting conditions merge on the query preprocessing stage
  • [fea] Added clock wrapper to force vDSO for the clock_gettime-calls. This gives up to 20% overall performance on the some operation systems, which using libstdc++ without vDSO (for example, on Centos7)
  • [fea] Updated bundled libbactrace to support DWARF-v5 debug info format
  • [fix] Fixed indexes/count cache drop on the indexes config update

Go connector

  • [fea] Optimized handling of the unknow fields in the Go binding (in cases, when some field exists in the database, but not in the go-struct)

Deploy

  • [fea] Updated RedOS build/deploy image to v3.3.4

Face

  • [fea] Added Prettify feature to the SQL editor
  • [fea] Made yarn upgrade
  • [fea] Added Cache settings to the NS config
  • [fea] Made the new UI component for the pagination
  • [fea] Added tooltips with the UTC dates for the timestamp dates in the Grid view of the Namespace
  • [fea] Added redirect to the created NS
  • [fea] Added new settings to the Full text config
  • [fea] Added Stop Words list to the Full text index
  • [fea] Improved layout of the Stop words and Synonyms lists
  • [fix] Fixed columns enabling/disabling in the Grid views
  • [fix] Fixed issue related to the previously NS current columns displaying for the NS
  • [fix] Fixed issue related to the empty config opening
  • [fix] Fixed issue related to the pagination on the Query result page
  • [fix] Removed eslint popup
  • [fix] Fixed "see & edit" link on the Queries Perfstats page
  • [fix] Fixed tooltips view

v4.14.0

2 months ago

Core

  • [fea] In C++ Reindexer::Connect-call is now thread-safe

Replication

  • [fea] Added more data consistency checks for the force syncs
  • [fix] Fixed situation, when some of the concurrently written documents could be lost during RAFT leader resync in case of leader's switch
  • [fix] Fixed possible request timeouts on the user's set_leader_node command
  • [fix] Fixed possible request timeouts during leadership transition
  • [fix] Fixed possible deadlock on the initial leader sync during sharding config synchronization
  • [fix] Fixed logical race on the cluster's startup (when some of the user's requests could be handled, while RAFT layer is not initialized yet)

Sharding

  • [fea] Added namespaces' content check during sharding reconfiguration: now it is possible to set sharding config at runtime for non-empty namespace if contents of all the namespaces corresponds to sharding keys distribution
  • [fea] Added support for subqueries to the sharded namespaces
  • [fea] Added config_rollback_timeout_sec into sharding.conf (option for debug purposes)

Ported

Face

  • [fea] Added the ability to use hot keys to navigate over the UI
  • [fea] Changed the Server ID range
  • [fea] Added the default values to the config form when the default config is using
  • [fea] Upgraded Webpack to 5.х
  • [fea] Added the default values to the NS config during the mode changing
  • [fea] Added a new tooltip with the UTC converted date to the Timestamp data on the NS Grid
  • [fea] Made yarn upgrade
  • [fea] Added Prettify button to the SQL Query
  • [fea] Added the subqueries field to the explain mode
  • [fix] Fixed Check request
  • [fix] Added bottom padding to the Performance Updates chart
  • [fix] Fixed the pagination on the SQL query result page
  • [fix] Fixed NS config popup opened from the Statistics page
  • [fix] Fixed the available column list in the grid settings after NS 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 “+” button for the Expire after field

v3.22.1

3 months ago

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

3 months ago

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

4 months ago

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

5 months ago

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

6 months ago

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