Create disk canary logic to detect storage device issues early

XMLWordPrintableJSON

    • Type: Improvement
    • Resolution: Unresolved
    • Priority: Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • None
    • Workload Resilience
    • WR Prioritized list
    • None
    • None
    • None
    • None
    • None
    • None
    • None

      Create a "disk canary" feature that can be used as a background thread in MongoDB server applications, or as a standalone application that only functions as a disk canary. 

      Requirements:

      • Implemented as a standalone class or free functions & configuration structures with minimal dependencies. There should be very little existing MongoDB libraries required to implement this, C++ standard libraries such as filesystem should be sufficient.
      • Must not use WiredTiger libraries - this should be an independent test of the storage device with operating system primitives, or the thin wrapper that std::filesystem provides.
      • Must have configurable test conditions. Eg: checking for a size=0 write, with/without O_DIRECT, testing the creation, deletion, truncation, etc. of a file.
      • Must have configurable location on the local filesystem, but default to a particular storage device or partition. 
      • Must return an error code upon failure, so higher level wrappers can chose to ignore certain failures.
      • Implement a background thread wrapper for easy integration in MongoDB applications eg: mongos or mongod.
      • Implement a standalone executable wrapper that exits with a non-zero status when a check fails.

       

      Possible Extensions:

      • Configurable retry/level trigger logic. Eg: only fail the check if N failures within S seconds

            Assignee:
            Unassigned
            Reporter:
            Myles Hathcock (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            7 Start watching this issue

              Created:
              Updated: