Skip to content
Snippets Groups Projects
  1. Sep 14, 2012
    • Jared Hancock's avatar
      Add chunked file data support · e51bb66f
      Jared Hancock authored
      This will remove the upper limit of BLOB sizes imposed by MySQL with the
      max_allowed_packet setting completely.
      
      This adds a new table %file_chunk which will contain the filedata in smaller
      chunks (256kB). It also includes a new class, AttachmentChunkedData, which
      will handle reading and writing the data, abstracting away the chunks.
      
      This is done by migrating data from the %file table to the %file_chunk
      table. One must beware that this must safely (the migration that is) plug
      into the both the live osTicket developers as well as the users doing a full
      upgrade from osTicket-1.6*. For this, the AttachmentFile::save method was
      patched to use the new AttachmentChunkedData class to write the attachment
      data to the database in chunks. That is, the migrater will use the new code
      on the major upgrade and bypass the filedata column of the %file table
      altogether. Therefore, the patch associated with this commit will not
      migrate any data for the major upgrade.
      
      For developers doing incremental upgrades, the patch included in this
      commit will transfer the data from the %file data to the new %file_chunk
      table by chunking it. As written, only the first 16MB of the attachment is
      migrated. This could easily be adjusted, but it seems like a reasonable
      limit for now.
      e51bb66f
    • Jared Hancock's avatar
  2. Sep 10, 2012
  3. Sep 09, 2012
  4. Sep 07, 2012
  5. Sep 05, 2012
    • Jared Hancock's avatar
      Fetch file data in chunks for downloads · f21e5c01
      Jared Hancock authored
      MySQL has a limit on the maximum amount that can be transferred in one
      statement. It's the max_allowed_packet setting. The value of this setting
      will be the approximate upper limit of attachments that can be handled by
      the database given the current access model for osTicket.
      
      The issue came up for attachment uploads and was corrected, so that uploads
      are chunk inserted into the database. Downloads, however, were forgotten.
      Strangely, it took quite a bit of debugging to track down the problem.
      
      This patch corrects attachment downloads by fetching 256kB chunks of the
      attachment at a time and sending them directly to the client. This will also
      overcome PHP's memory limit which would be the second-level blocker of
      attachment sizes. Lastly, the AttachmentFile::getData() method is simulated
      using output buffering. This will provide the same access as the previous
      getData() method; however, it is still subject ot PHP's memory limits.
      f21e5c01
  6. Sep 03, 2012
  7. Aug 31, 2012
  8. Aug 30, 2012
  9. Aug 29, 2012
  10. Aug 28, 2012
  11. Aug 23, 2012
  12. Aug 16, 2012
  13. Aug 13, 2012
Loading