1. 09 Aug, 2017 1 commit
    • Victor Kotlyar's avatar
      Make archive reporting on the flush for the batch of jobs. · c8827ade
      Victor Kotlyar authored
      Changed reporting to the Catalog with a batch of written files.
      Changed synchronous reporting to the backend job by job to the
      asynchronous reporting for batch of jobs.
      Changed synchronous reporting to the EOS mgm to the asynchronous
      reporting.
      c8827ade
  2. 04 Aug, 2017 1 commit
  3. 03 Aug, 2017 1 commit
  4. 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
  5. 28 Jul, 2017 1 commit
  6. 26 Jul, 2017 1 commit
    • Eric Cano's avatar
      Fixed racy implementation of BackendRados::lock{Exclusive|Shared}() · aa56a1c3
      Eric Cano authored
      As rados re-creates an object when trying to lock it, we tested for presence before locking.
      This is racy as object could be deleted in the mean time.
      Instead, we now lock blindly and delete the object if we find it having a zero-size.
      As we own the lock, this is safe.
      
      This problem led to issues in garbage colector, where agent gets polled while it could disappear.
      aa56a1c3
  7. 23 May, 2017 1 commit
  8. 19 May, 2017 1 commit
    • Eric Cano's avatar
      Reviewed promised based thread synchronisation · 8012a02d
      Eric Cano authored
      Fixed calls to promise::get_future() after possible access form other thread. They are now guaranteed to happen before.
      Added helgrind annotations for promise based synchronisation.
      Added macros enabling helgrind annotations for shared_ptr.
      Added suppression for shared_ptr used inside other standard lib object and not covered by the previous macros.
      Added unit test for lower level .
      Added suppressions for reported race conditions in Rados library.
      Review heavily MemArchiveQueue and fixed missing commit in object store, leading to potentially orphaned objects.
      Enabled formerly disabled test as it is now fast enough.
      8012a02d
  9. 09 May, 2017 1 commit
  10. 28 Apr, 2017 2 commits
  11. 13 Apr, 2017 1 commit
  12. 02 Dec, 2016 1 commit
  13. 30 Nov, 2016 2 commits
  14. 18 Nov, 2015 1 commit
    • Eric Cano's avatar
      Replaced byte arrays with simple std::strings · b8b82fb5
      Eric Cano authored
      Added url style conversion of checksums
      Added support for checksums in mockNs
      Fixed support for checksums in the scheduler
      Re-instated several ASSERT_NO_THROW which were commented out during debugging.
      b8b82fb5
  15. 05 Nov, 2015 2 commits
  16. 04 Nov, 2015 1 commit
  17. 01 Jun, 2015 1 commit
  18. 28 May, 2015 1 commit
  19. 20 May, 2015 1 commit
  20. 13 May, 2015 1 commit
    • Eric Cano's avatar
      Reorganized the files in themes. · a5621a56
      Eric Cano authored
      middletier, itself separated in interface, SQLite, objectstore and
      shared tests.
      Moved all utilities (exceptions, threading...) to a shared utility
      directory.
      Created a single, shared unit test from all the scattered ones.
      a5621a56
  21. 08 May, 2015 1 commit
  22. 07 May, 2015 1 commit
  23. 29 Apr, 2015 1 commit
  24. 24 Feb, 2015 1 commit
  25. 12 Feb, 2015 1 commit