Uploaded image for project: 'Hadoop HDFS'
  1. Hadoop HDFS
  2. HDFS-8707 Implement an async pure c++ HDFS client
  3. HDFS-9890

libhdfs++: Add test suite to simulate network issues

    XMLWordPrintableJSON

Details

    • Sub-task
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • None
    • None
    • hdfs-client
    • None

    Description

      I propose adding a test suite to simulate various network issues/failures in order to get good test coverage on some of the retry paths that aren't easy to hit in mock unit tests.

      At the moment the only things that hit the retry paths are the gmock unit tests. The gmock are only as good as their mock implementations which do a great job of simulating protocol correctness but not more complex interactions. They also can't really simulate the types of lock contention and subtle memory stomps that show up while doing hundreds or thousands of concurrent reads. We should add a new minidfscluster test that focuses on heavy read/seek load and then randomly convert error codes returned by network functions into errors.

      List of things to simulate(while heavily loaded), roughly in order of how badly I think they need to be tested at the moment:
      -Rpc connection disconnect
      -Rpc connection slowed down enough to cause a timeout and trigger retry
      -DN connection disconnect

      Attachments

        1. HDFS-9890.HDFS-8707.000.patch
          25 kB
          James Clampffer
        2. HDFS-9890.HDFS-8707.001.patch
          27 kB
          James Clampffer
        3. HDFS-9890.HDFS-8707.002.patch
          30 kB
          James Clampffer
        4. HDFS-9890.HDFS-8707.003.patch
          60 kB
          Xiaowei Zhu
        5. HDFS-9890.HDFS-8707.004.patch
          69 kB
          Xiaowei Zhu
        6. HDFS-9890.HDFS-8707.005.patch
          74 kB
          Xiaowei Zhu
        7. HDFS-9890.HDFS-8707.006.patch
          76 kB
          Xiaowei Zhu
        8. HDFS-9890.HDFS-8707.007.patch
          44 kB
          Xiaowei Zhu
        9. HDFS-9890.HDFS-8707.008.patch
          43 kB
          Xiaowei Zhu
        10. HDFS-9890.HDFS-8707.009.patch
          46 kB
          Xiaowei Zhu
        11. HDFS-9890.HDFS-8707.010.patch
          42 kB
          Xiaowei Zhu
        12. HDFS-9890.HDFS-8707.011.patch
          41 kB
          Xiaowei Zhu
        13. HDFS-9890.HDFS-8707.012.patch
          42 kB
          Xiaowei Zhu
        14. HDFS-9890.HDFS-8707.012.patch
          42 kB
          Xiaowei Zhu
        15. HDFS-9890.HDFS-8707.013.patch
          41 kB
          Xiaowei Zhu
        16. HDFS-9890.HDFS-8707.013.patch
          41 kB
          Xiaowei Zhu
        17. HDFS-9890.HDFS-8707.014.patch
          39 kB
          Xiaowei Zhu
        18. HDFS-9890.HDFS-8707.015.patch
          39 kB
          Xiaowei Zhu
        19. HDFS-9890.HDFS-8707.016.patch
          38 kB
          Xiaowei Zhu
        20. HDFS-9890.HDFS-8707.016.patch
          38 kB
          Xiaowei Zhu
        21. hs_err_pid26832.log
          86 kB
          James Clampffer
        22. hs_err_pid4944.log
          84 kB
          James Clampffer

        Activity

          People

            xiaowei.zhu Xiaowei Zhu
            James Clampffer James Clampffer
            Votes:
            0 Vote for this issue
            Watchers:
            8 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: