1. 16 Nov, 2020 2 commits
  2. 14 Nov, 2020 1 commit
  3. 11 Nov, 2020 1 commit
  4. 09 Nov, 2020 1 commit
  5. 08 Nov, 2020 1 commit
  6. 06 Nov, 2020 1 commit
  7. 05 Nov, 2020 1 commit
  8. 04 Nov, 2020 1 commit
  9. 30 Oct, 2020 5 commits
  10. 29 Oct, 2020 1 commit
  11. 27 Oct, 2020 1 commit
  12. 22 Oct, 2020 1 commit
  13. 21 Oct, 2020 1 commit
  14. 17 Oct, 2020 1 commit
  15. 15 Oct, 2020 2 commits
    • Luca Beltrame's avatar
      Increase timeout for reading data from resources to 30 seconds · 9acda8e4
      Luca Beltrame authored
      The introduction of LZMA compression for payloads can mean that when
      handling already-compressed attachments, especially those in large
      sizes, the default timeout of 10 seconds can be exceeded. This is
      particularly evident for machines with rotational disks or full disk
      This has particularly bad effects on item syncing:
      1. The resource retrieves an item, and starts compressing the payload.
      2. The compression takes more than 10 seconds, so the resource is
         disconnected from Akonadi due to the timeout.
      3. Upon reconnection, there is an attempt to rollback the change, but
         the change did not actually take place, so a bunch of errors
         regarding transactions are logged.
      4. The database for that resource and that collection is left in an
         inconsistent state.
      5. This can cause the resource to ultimately get stuck on its jobs.
      Fixing the actual problem is probably far more convoluted, but a quick
      workaround would be to increase the timeout up to 30 seconds, to stay on
      the safe side.
      This change was tested on a laptop with FDE that could not sync
      attachments larger than 5M: after the change, the syncing was performed
    • Laurent Montel's avatar
      Remove not implemented method · e52957ae
      Laurent Montel authored
  16. 11 Oct, 2020 2 commits
  17. 10 Oct, 2020 1 commit
  18. 09 Oct, 2020 1 commit
  19. 06 Oct, 2020 1 commit
  20. 05 Oct, 2020 1 commit
  21. 04 Oct, 2020 3 commits
  22. 03 Oct, 2020 3 commits
    • Daniel Vrátil's avatar
    • Daniel Vrátil's avatar
      (De)compress payload data during (de)serialization · 37f9fcae
      Daniel Vrátil authored
      The compression is completely transparent to clients, serializers and
      Akonadi. The idea is that when serializing payload, we can compress
      the serialized data using LZMA compression to save space. The data are
      usually large enough to benefit from the compression and at the same
      time small enough for the compression to not cause any significant
      performance overhead.
      In my local experiment, compressing each file in file_db_data reduced
      the overall size by ~30%.
      The only place where the compression aspects "leak" to the user is
      regarding the Item and part sizes stored in Akonadi.
      The change is backwards compatible, so it can handle uncompressed
      payloads created before this change just fine. All newly created
      or updated payloads will get compressed automatically. Eventually
      a StorageJanitor task to compress th entire storage may be introduced,
      but we may need some proper progress reporting for that, since it
      may take a lot of time, even on fast SSD disk to compress all the
      files in file_db_data (depending on size of the database).
    • Daniel Vrátil's avatar
      Implement CompressionStream · 2bf3a5c9
      Daniel Vrátil authored
      It's a QIODevice that can be placed on top of another
      QIODevice. When opened in read-only mode, it will read
      compressed data from the underlying device and output
      decompressed data. When opened in write-only mode it
      will take the data written into it and write them
      compressed into the underlying device.
  23. 01 Oct, 2020 1 commit
  24. 29 Sep, 2020 2 commits
  25. 21 Sep, 2020 3 commits
  26. 20 Sep, 2020 1 commit