commits
it's *fine* but i don't think it's guaranteed that serde_json will round-trip the object structure exactly, and that might even be unlikely.
in general this shouldn't be a problem, since logs will still be exactly verifiable compared to upstream by canonicalizing into dag-cbor etc, but that's annoying.
leaving it for now but once we get there, we can:
- keep a copy of the original string beside the op (~2x memory? probably fine?) or
- use some rust trickery to let us keep the original string and put the parsed thing as a referencing struct next to it. (oroborus etc)
idk if this is even measurable but why not
>250k rows/sec on dev machine (...with pg running directly on host, not in docker)
`unlogged` seems to work in place of ~all the other tweakable knobs to make this as fast as possible
hopefully that's fine since we'll just be copying it back to the main table after
needs tests but it *should* be correct? other than parse error handling. maybe.
it's *fine* but i don't think it's guaranteed that serde_json will round-trip the object structure exactly, and that might even be unlikely.
in general this shouldn't be a problem, since logs will still be exactly verifiable compared to upstream by canonicalizing into dag-cbor etc, but that's annoying.
leaving it for now but once we get there, we can:
- keep a copy of the original string beside the op (~2x memory? probably fine?) or
- use some rust trickery to let us keep the original string and put the parsed thing as a referencing struct next to it. (oroborus etc)