Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make persistence incremental thread-safe for Network Reliability layer #1211

Merged
merged 13 commits into from
Dec 16, 2023

Commits on Dec 15, 2023

  1. Experiment with IOSimPOR

    This small experiment demonstrates how to detect "race conditions"
    when some atomic result is expected, the idea is to use a TVar to
    simulate files operations and show the consequences of non-atomic
    writes and reads on messages resending.
    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    3724987 View commit details
    Browse the repository at this point in the history
  2. Introducing stress test for network persistence

    This test is not very satisfying but for now I cannot come up with a
    better idea. It shows that with large messages (~10kB) there's
    exception thrown but the peers can get stuck, which is a different
    problem than the one observed in production.
    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    22571b2 View commit details
    Browse the repository at this point in the history
  3. Unify terminology in log messages and use punning

    We try to improve naming the log messages' fields, make it more
    consistent between different messages, and replace field accessor
    function and positional construction with proper field name punning.
    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    48d5595 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9e1d747 View commit details
    Browse the repository at this point in the history
  5. Removing useless persistence stress test

    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    1f842bb View commit details
    Browse the repository at this point in the history
  6. Store sent messages in a cache for resending purpose

    We used to do that but then moved to always reloading from file, which
    lead to race conditions when reading/writing concurrently and
    incorrect deserialisation of messages. It seems both safer and faster
    to use a local cache, and only reload messages at start of the network
    layer.
    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    1d378aa View commit details
    Browse the repository at this point in the history
  7. Remove spurious import

    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    32a290a View commit details
    Browse the repository at this point in the history
  8. Add some haddock to PersistenceIncremental

    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    839e5c0 View commit details
    Browse the repository at this point in the history
  9. Fix Logs schema

    abailly authored and ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    b357477 View commit details
    Browse the repository at this point in the history
  10. Configuration menu
    Copy the full SHA
    e422c91 View commit details
    Browse the repository at this point in the history
  11. Configuration menu
    Copy the full SHA
    9daddbb View commit details
    Browse the repository at this point in the history
  12. Remove unused code

    ch1bo committed Dec 15, 2023
    Configuration menu
    Copy the full SHA
    eb60638 View commit details
    Browse the repository at this point in the history
  13. Configuration menu
    Copy the full SHA
    1b07b81 View commit details
    Browse the repository at this point in the history