Uploaded image for project: 'Spatial Information Systems'
  1. Spatial Information Systems
  2. SIS-573

Allow data stores to be closed asynchronously

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.3
    • 1.4
    • Storage
    • None

    Description

      A DataStore can be connected to a big file through internet, for example if the file is a Cloud Optimized GeoTIFF (COG). This is reasonably efficient if the server support HTTP ranges. But if the GeoTiffStore (for example) is connected to a big TIFF on a server that do not support HTTP range, it may download a large amount of data. We need a way to interrupt that.

      Implementing an abort() method would be a significant amount of work. But as a mid-term solution, we need to at least get DataStore.close() to work asynchronously. In current DataStore implementations, close() is a synchronized method which blocks until the reading process is completed. We should invoke Channel.close() before to enter in the synchronized block. It will allow java.nio.channels.AsynchronousCloseException to be thrown and interrupt the reading process.

      Attachments

        Activity

          People

            desruisseaux Martin Desruisseaux
            desruisseaux Martin Desruisseaux
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: