Blog
Updates, design notes, and deep dives from the SecantusDB project.
-
Wire-protocol robustness, cross-driver session smokes, and a 100%-honest gauge
Summary: Malformed BSON in command bodies now elicits a
BadValuereply instead of dropping the connection, sessions and cluster-role bundles get cross-driver smokes (mongosh + Node + Go + Java), and the pymongo conformance dashboard catches up to the gauge it was always passing — a clean 100.0% (v0.3.0a78).The wire …
-
Real session tracking, date densify, and a 100% pymongo gauge
Summary: Logical sessions are now real server-side state,
$densifywalks date ranges by week / day / hour / minute / second / millisecond, and the pymongo conformance gauge moves to a clean 100.0% (v0.3.0a77).startSession/endSessions/refreshSessionsare no longer no-op stubs. A new thread-safesecantus.sessions.SessionRegistrytracks logical sessions … -
Change-stream split events + four cluster role bundles
Summary: Opt-in
splitEventenvelope on every change-stream event and four documented mongod cluster role bundles —clusterMonitor,clusterAdmin,backup,restore— join the built-in role set (v0.3.0a76).The
splitLargeChangeStreamEventsoption now stamps asplitEvent: {fragment: 1, of: 1}envelope on every change-stream event — insert, update, delete, replace, invalidate. Without the … -
Multikey indexes: array fields are now IXSCAN-fast
Summary: Indexes on array-valued fields now use per-element entries, so
{tags: "python"}against{tags: ["python", "go"]}lands at IXSCAN instead of falling back to a full collection scan (v0.3.0a75).Before v0.3.0a75, the moment any document on an indexed field carried an array value, SecantusDB flagged the …
-
Compound-index $lookup + Java smoke matrix
Summary: $lookup now exploits compound non-multikey indexes whose leading field matches
foreignField, and the Java cross-driver smoke matrix is complete (v0.3.0a74).v0.3.0a74 widens
$lookup's index-acceleration window. Previously the per-outer-doc IXSCAN path only fired when the foreign collection had a single-field index onforeignFieldexactly; otherwise … -
SASLprep arrives: SCRAM-SHA-256 now Unicode-correct
Summary: SASLprep on SCRAM-SHA-256 — non-ASCII passwords now Unicode-normalised before PBKDF2 (v0.3.0a73).
v0.3.0a73 brings SecantusDB's SCRAM-SHA-256 authentication into line with RFC 4013 by running passwords through SASLprep before they reach PBKDF2. The full stringprep pipeline lands:
B.1mapping (zero-width and other "to-nothing" code points stripped),NFKC … -
Change streams emit createIndexes/dropIndexes; updateUser command
Change streams emit createIndexes/dropIndexes; updateUser command (v0.3.0a52).
-
Compound-index sort acceleration
Compound-index sort acceleration (v0.3.0a50).
-
Index-accelerated $lookup foreign-side
Index-accelerated $lookup foreign-side (v0.3.0a48).
-
Per-command RBAC against built-in MongoDB roles; geo work complete
Per-command RBAC against built-in MongoDB roles; geo work complete (v0.3.0a46).