1. 03 Oct, 2017 1 commit
  2. 30 Sep, 2017 1 commit
    • Eric Cano's avatar
      Simplified reads in rados backend. · fc1ddbe0
      Eric Cano authored
      We do not do a stat before reading. Instead we ask for an arbitrarily big read, and find out
      the size of the data while reading. This avoids a race condition in lockfree reads where we failed
      to get the full object if it got re-written to a bigger size between stat an read.
      fc1ddbe0
  3. 28 Sep, 2017 1 commit
  4. 27 Sep, 2017 1 commit
  5. 26 Sep, 2017 2 commits
  6. 25 Sep, 2017 3 commits
  7. 22 Sep, 2017 1 commit
  8. 20 Sep, 2017 1 commit
    • Eric Cano's avatar
      Fixed long updating of statistics in object store leading to timeout. · 0c28e713
      Eric Cano authored
      The updating of statistic in the objecttore (in drive register) could wait for a lock
      for so long that the session get killed due to a heatbeat timeout.
      
      To avoid this, we use lockfree access as much as possible, and when locking it srequired, do it with a
      timeout.
      
      The timeout will be logged as a warning.
      
      Added timeouts to synchronous locking primitives in the object store backends to implement this feature.
      
      Fixed a bug where the VFS backend always used exclusive locks.
      0c28e713
  9. 14 Sep, 2017 1 commit
    • Eric Cano's avatar
      Added new states for the drive: Probing and Shutdown. · e49e26b7
      Eric Cano authored
      The probe state is also used. It represents the time when the drive is being checked
      for tapes during the down to up transition.
      
      Shutdown is not in use yet as it requires changing the behaviour of the system (clean shutdowns).
      e49e26b7
  10. 11 Sep, 2017 1 commit
  11. 05 Sep, 2017 2 commits
  12. 23 Aug, 2017 1 commit
  13. 18 Aug, 2017 2 commits
  14. 17 Aug, 2017 1 commit
  15. 16 Aug, 2017 2 commits
  16. 15 Aug, 2017 1 commit
  17. 11 Aug, 2017 2 commits
  18. 09 Aug, 2017 3 commits
  19. 04 Aug, 2017 1 commit
  20. 03 Aug, 2017 4 commits
  21. 02 Aug, 2017 5 commits
  22. 01 Aug, 2017 1 commit
    • Eric Cano's avatar
      Fixed garbage collector mishandling disappearing agent. · 238325c3
      Eric Cano authored
      The appearance and disappearance of the agents is totally asynchronous for the garbage collector.
      For this reason, GC should tolerate deletion of object at any time. This commit fixes the case where the
      object disappears shortly after the garbage collector decides to watch it.
      238325c3
  23. 30 Jul, 2017 1 commit
    • Eric Cano's avatar
      Revisited locking in BackendRados. · 4918ed96
      Eric Cano authored
      The locks in Rados have timeouts. They are needed in case a locker process dies without
      releasing its lock. As we have some contention in heavily loaded situations, it can happen
      that a process is till accessing objects while the lock is expired. To lessen the likeliness
      of this situation, the timeout has been increased from 10s to 60s.
      
      The backoff was ajusted using the MultithreadLockingInterface unit test, with printouts
      allowing to visually see the effect of the backoff strategy. The printouts are committed,
      but they are commented out.
      
      The same unit test was fized as it used to create an empty object, which is not supported
      anymore in order to be able to detect locking of non-existing objects (lock creates the object,
      but we detect non-existence as it is empty and re-delete it.
      
      This mechanism of empty object locking detection is also added to the async update of object
      as it was missing there (and the backoff has been added there too).
      4918ed96
  24. 29 Jul, 2017 1 commit