diff options
author | Ilya Maximets <i.maximets@ovn.org> | 2021-08-24 21:00:37 +0200 |
---|---|---|
committer | Ilya Maximets <i.maximets@ovn.org> | 2021-08-31 22:19:46 +0200 |
commit | b0bca6f27aae845c3ca8b48d66a7dbd3d978162a (patch) | |
tree | 891a41995916bc7f6bd71076c461a3477c23fe74 /ovsdb/raft-private.h | |
parent | c2fb5bdae6e3f8db3bc20015f61364b8d5ba383a (diff) | |
download | openvswitch-b0bca6f27aae845c3ca8b48d66a7dbd3d978162a.tar.gz |
json: Add support for partially serialized json objects.
Introducing a new json type JSON_SERIALIZED_OBJECT. It's not an
actual type that can be seen in a json message on a wire, but
internal type that is intended to hold a serialized version of
some other json object. For this reason it's defined after the
JSON_N_TYPES to not confuse parsers and other parts of the code
that relies on compliance with RFC 4627.
With this JSON type internal users may construct large JSON objects,
parts of which are already serialized. This way, while serializing
the larger object, data from JSON_SERIALIZED_OBJECT can be added
directly to the result, without additional processing.
This will be used by next commits to add pre-serialized JSON data
to the raft_header structure, that can be converted to a JSON
before writing the file transaction on disk or sending to other
servers. Same technique can also be used to pre-serialize json_cache
for ovsdb monitors, this should allow to not perform serialization
for every client and will save some more memory.
Since serialized JSON is just a string, reusing the 'json->string'
pointer for it.
Acked-by: Dumitru Ceara <dceara@redhat.com>
Acked-by: Han Zhou <hzhou@ovn.org>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
Diffstat (limited to 'ovsdb/raft-private.h')
0 files changed, 0 insertions, 0 deletions