-
MotivationNowadays many setups do actually require a seamless combination of "ACID" key-value pairs and "best effort" key-value pairs (imagine analogy TCP packets and UDP packets treatment) in the same distributed namespace/storage (allowing e.g. transactions over a mix of "ACID" and "best effort" k-v pairs). The goal is to achieve the very minimal possible latency for the "best effort" k-v pairs and strict serializability and full durability for all other k-v pairs. A naive DB interface for DB clients would then support a "tag" to distinguish between an "ACID" request on a key-value pair (or on a set of pairs) and a "best effort" request on a key-value pair (or on a set of pairs)? For requests tagged with "best effort", the DB would e.g. ignore some ACID invariants or in the very worst case drop the whole request. Question: Is it possible to achieve similar behavior with the code from
|
Beta Was this translation helpful? Give feedback.
Replies: 5 comments
-
|
Briefly:
|
Beta Was this translation helpful? Give feedback.
-
|
Thanks! That makes it clear where to draw the line.
I saw that but was unable to extract the information whether I can change sync mode "any time" (especially after the DB was opened or a transaction started etc.) - i.e. per-request and if so, whether there are any side effects (like poorer performance due to some caches issues or other inefficiencies). Could you maybe comment on this as well? |
Beta Was this translation helpful? Give feedback.
-
By |
Beta Was this translation helpful? Give feedback.
-
Does this affect other threads & processes which run their read transactions at the same time with different It shouldn't but with vast majority of DBs always trying to trade safety for performance I can never be sure 😉. |
Beta Was this translation helpful? Give feedback.
-
No affects, but in case of system/power failure you may lose all non-sycn'ed (unsteady) changes/transactions. Nonetheless, please read all about the MDBX_SAFE_NOSYNC with references, at least three times. |
Beta Was this translation helpful? Give feedback.
Briefly: