v1.2.0: skip unchanged writes, transactional schema/root counters, snapshot replay for meta:events 0-0 (drops boot republish), collect-once search driver
Build and Push Docker Image / build (push) Successful in 7m38s
Build and Push Docker Image / build (push) Successful in 7m38s
This commit is contained in:
@@ -265,12 +265,16 @@ seen). The contract above holds unchanged:
|
||||
meta-share / meta-stremio before the switch still compare.
|
||||
- `meta:events` entries (`{type: set|del, key, ts}`) are appended by the
|
||||
storage engine **in the same transaction** as the `file:` key change —
|
||||
`del` only when the key existed, `set` even for an unchanged value. The
|
||||
Redis keyspace-notification hop (PSUBSCRIBE in `MetaPublisher`), which
|
||||
could drop events when it lagged, is gone.
|
||||
- The boot-time republish of every field into `meta:events` is kept
|
||||
(meta-fuse rebuilds its VFS only by replaying from `0-0`), batched 5k
|
||||
events per transaction.
|
||||
`del` only when the key existed, `set` only when the value actually
|
||||
changed (since v1.2.0; an unchanged write is a no-op). The Redis
|
||||
keyspace-notification hop (PSUBSCRIBE in `MetaPublisher`), which could
|
||||
drop events when it lagged, is gone.
|
||||
- **`Last-Event-ID: 0` / `0-0` on `/api/events/meta` returns a snapshot**
|
||||
(since v1.2.0): one `set` per existing record key, then the live tail from
|
||||
the head captured before the snapshot. Only the last snapshot event carries
|
||||
an `id:`. This replaced the boot-time republish of every field, which a
|
||||
~100k-entry stream could never hold. A trimmed (non-zero) cursor still gets
|
||||
the `gap` event and a replay of what is retained.
|
||||
|
||||
### Heartbeats
|
||||
|
||||
|
||||
Reference in New Issue
Block a user