Skip to content

Releases: mpihlak/mongoproxy

v0.5.35

13 Dec 14:29
59d963d
Compare
Choose a tag to compare
Merge pull request #44 from erkiesken/binary-build-releases

feat: add release binary uploads

v0.5.34

12 Sep 13:35
c2411eb
Compare
Choose a tag to compare

What's Changed

  • Restore request/response ordering by having tracker alternate between client and server messages by @mpihlak in #43

Full Changelog: v0.5.33...v0.5.34

v0.5.31

19 Dec 13:19
Compare
Choose a tag to compare

What's Changed

  • Upgrade to current Rust and Debian in the builder by @mpihlak in #35

Full Changelog: v0.5.30...v0.5.31

v0.5.30

19 Dec 12:39
Compare
Choose a tag to compare

What's Changed

Full Changelog: v0.5.28...v0.5.30

v0.5.20

12 Jun 07:28
Compare
Choose a tag to compare

Maintenance release

  • Upgrade to Rust 1.61
  • Upgrade to Tokio 1.0
  • Add "hello" as a valid op to avoid excessive logging of "unknown op"
  • Parse connection metadata from OP_MSG messages
  • Prometheus metrics have "username" labels when available -- helps to identify clients that don't set appName
  • Serialize request-response handling - a request is always followed by a response
  • Avoid stopping the tracker on large MongoDb messages

Get ready for WASM

07 Dec 10:05
Compare
Choose a tag to compare

No new functionality, mostly just preparing to have WASM support.

  • Reorganise code to a Cargo workspace
  • Move mongo protocol decoder to a separate crate
  • Enable maybe-async for the protocol decoder so that it can be used from WASM
  • Add a skeleton Envoy WASM filter that parses the Mongo protocol
  • Increase the size of the proxy buffer to improve performance (who would've guessed ...)

Hyper + OpenTelemetry

11 Nov 18:28
Compare
Choose a tag to compare
  • Switch to OpenTelemetry for distributed tracing
  • Metrics are now served via Hyper (we're already on Tokio, so why the heck not)

All in with async

29 Oct 22:07
Compare
Choose a tag to compare

Notable changes:

  • Switch out the internal BSON parser to an async streaming BSON parser.
  • Use the awesome tracing framework for logging.
  • Fix a parsing bug for checksummed OP_MSG messages.
  • Parser and stats extraction are running in separate tasks.

The goal for the async BSON was more predictable memory usage -- the whole BSON no longer needs to be in memory, considerably reducing memory usage for large responses. This comes at the expense of a small CPU increase however.

Async/await with Tokio

19 May 12:21
Compare
Choose a tag to compare

The major change is moving to async/await with Tokio. This considerably reduces memory usage as less threads are required, but at the cost of some CPU.

Also switch to Jemallocator to avoid needing to fiddle with malloc per thread arena settings.

Notable functionality change since v0.3.1 is that the expensive histograms are now only collected for collection operations (find, update, etc.) so that Prometheus has easier time scraping and processing them.

Moar logging goodness

06 Apr 19:18
Compare
Choose a tag to compare
  • Makes logging full Mongo messages a command line option
  • Drop support for multiple listeners
  • Add thread id to most log messages