9 | | When utilizing GDAL in multithread code, it was found that often the limiting portion of the code was often the LRU block cache within GDAL. This is an attempt to make the LRU cache more efficient in multithreaded situations by making it possible to have multiple LRU per dataset and optimizing when locking occurs. |
| 9 | When utilizing GDAL in multithread code, it was found that often the limiting portion of the code was often the LRU block cache within GDAL. This is an attempt to make the LRU cache more efficient in multithreaded situations by making it possible to have multiple LRU per dataset and optimizing when locking occurs. Additionally, the changes outlined attempt to find an efficient manner to manage data within the cache. |
| 10 | |
| 11 | '''This change attempts to:''' |
| 12 | |
| 13 | * Make the caching system within raster datasets: |
| 14 | * Thread Safe |
| 15 | * Provide performance more linearly with an increasing number of threads |
| 16 | * Reduce the scope of the current cache locking. |
| 17 | * Optionally enable a per dataset cache (rather then a global cache) |
| 18 | * Make Mem datasets READ thread safe per dataset. |
| 19 | * Lay the ground work for future development to increase thread safety in drivers. |
| 20 | |
| 21 | '''This change does NOT attempt to:''' |
| 22 | |
| 23 | * Make all drivers thread safe |
| 24 | * Make datasets thread safe |