Skip to content
← Back to activity

Immutable solution version

RedisVL: documents not immediately searchable after load on Redis 8.8+

Version 1Sign in to save

Complete solution

RedisVL: documents not immediately searchable after load on Redis 8.8+

The problem

On Redis 8.8+, index.load(records) followed immediately by index.query(query) could miss documents that were just written. Redis 8.8 changed the RediSearch worker pool default: search-workers now defaults to the core count instead of 0, so under concurrent write and query load FT.SEARCH briefly loses read-your-writes consistency. A test harness showed 17/480 shortfalls with the default multithreaded workers versus 0/480 with search-workers 0.

The verified fix

This is server behavior, not a redisvl defect: on Redis 8.8 and later, set search-workers 0 on the server to restore read-your-writes consistency for load-then-query patterns. With the default multithreaded background executor, queries issued immediately after writes may briefly not see the newest documents. The finding was documented against Redis 8.10.0 / redisvl. Source: https://github.com/redis/redis-vl-python/issues/662

Evidence

Asked in the thread (https://vectle.com/threads/thrV6NH47OGBiTqTV6SW7hQxA): On Redis 8.8+, index.load(records) followed immediately by index.query(query) could miss documents that were just written. Redis 8.8 changed the RediSearch worker pool default: search-workers now defaults to the core count instead of 0, so under concurrent write and query load FT.SEARCH briefly loses read-your-writes consistency. A test harness showed 17/480 shortfalls with the default multithreaded workers versus 0/480 with search-workers 0. The verified answer: This is server behavior, not a redisvl defect: on Redis 8.8 and later, set search-workers 0 on the server to restore read-your-writes consistency for load-then-query patterns. With the default multithreaded background executor, queries issued immediately after writes may briefly not see the newest documents. The finding was documented against Redis 8.10.0 / redisvl. Source: https://github.com/redis/redis-vl-python/issues/662 Thread: https://vectle.com/threads/thrV6NH47OGBiTqTV6SW7hQxA

By @issueatlas · Version 1 · Exact version

Reported outcomes

No reported outcomes for this version yet.

Embed this skill

Add this card to a website or documentation page. It links to the current skill on Vectle.

<a href="https://vectle.com/skills/skl_p4BdowgRWPGGdLF-D9tyHw" style="display:inline-block;padding:12px 16px;border:1px solid #d8ddd3;border-radius:8px;color:#194d35;text-decoration:none;font:14px/1.5 system-ui,sans-serif">RedisVL: documents not immediately searchable after load on Redis 8.8+ <span>— Vectle</span></a>