This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | |||
|
nl:caching [2022/10/11 23:25] yves |
nl:caching [2022/10/13 10:34] (current) yves |
||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ===== Caching ===== | ===== Caching ===== | ||
| + | |||
| Voor optimale prestaties ondersteunt PMA.core zowel tegelcaches als cloudcaches. | Voor optimale prestaties ondersteunt PMA.core zowel tegelcaches als cloudcaches. | ||
| + | |||
| We hebben een strategie waarbij de cache automatisch wordt geleegd na de retentieperiode en er geen nieuwe cache wordt gecreëerd indien er niet voldoende schijfruimte is. | We hebben een strategie waarbij de cache automatisch wordt geleegd na de retentieperiode en er geen nieuwe cache wordt gecreëerd indien er niet voldoende schijfruimte is. | ||
| + | |||
| Er is een aparte configuratiepagina voor cache-instellingen | Er is een aparte configuratiepagina voor cache-instellingen | ||
| - | Tile caching | + | ==== Tile caching ==== |
| - | Geëxtraheerde tegels uit WSI’s worden opgeslagen in een cache-opslagplaats. Dit is Just In Time (JIT) caching: de tegels | + | |
| + | Geëxtraheerde tegels uit [[https://realdata.pathomation.com/what-whole-slide-images-wsis-are-made-of/|WSI’s]] worden opgeslagen in een cache-opslagplaats. Dit is Just In Time (JIT) caching: de tegels | ||
| worden alleen in de cache bewaard nadat ze voor het eerst zijn gegenereerd. | worden alleen in de cache bewaard nadat ze voor het eerst zijn gegenereerd. | ||
| + | |||
| Wanneer veel mensen naar dezelfde beeld kijken, zijn ze doorgaans in dezelfde interessegebieden en beeld-details geïnteresseerd. | Wanneer veel mensen naar dezelfde beeld kijken, zijn ze doorgaans in dezelfde interessegebieden en beeld-details geïnteresseerd. | ||
| Dit houdt in dat, wanneer het systeem langer wordt gebruikt, vrijwel alle geopende | Dit houdt in dat, wanneer het systeem langer wordt gebruikt, vrijwel alle geopende | ||
| content beschikbaar komt via de tegelcache. Tile caching maakt het hiermee mogelijk om van PMA.core een | content beschikbaar komt via de tegelcache. Tile caching maakt het hiermee mogelijk om van PMA.core een | ||
| systeem te maken dat zeer goed opgeschaald kan worden dan wanneer dit mechanisme afwezig was. | systeem te maken dat zeer goed opgeschaald kan worden dan wanneer dit mechanisme afwezig was. | ||
| + | |||
| PMA.core maakt geen cache aan van tegels of thumbnails indien er niet voldoende schijfruimte beschikbaar is (zoals gedefinieerd in de | PMA.core maakt geen cache aan van tegels of thumbnails indien er niet voldoende schijfruimte beschikbaar is (zoals gedefinieerd in de | ||
| instellingen). | instellingen). | ||
| - | Cloud caching | + | |
| + | ==== Cloud caching ==== | ||
| Beelden die worden verkregen via cloudopslag zoals S3 of Azure, hebben het voordeel van een extra | Beelden die worden verkregen via cloudopslag zoals S3 of Azure, hebben het voordeel van een extra | ||
| cache-laag. | cache-laag. | ||
| + | |||
| + | {{ :cache_structure.png?nolink&400 |}} | ||
| + | |||
| Op basis van de verzoeken van cliënten, vraagt PMA.core een deel van de originele beeld op uit de cloudopslag, | Op basis van de verzoeken van cliënten, vraagt PMA.core een deel van de originele beeld op uit de cloudopslag, | ||
| welke in een lokale cache-opslag wordt bewaard. Uit dat data-deel worden vervolgens de tegels verkregen. | welke in een lokale cache-opslag wordt bewaard. Uit dat data-deel worden vervolgens de tegels verkregen. | ||
| - | Probleemoplossing | + | ==== Probleemoplossing ==== |
| Het is mogelijk om een afbeelding vanuit de cloudopslag te laden indien er geen schijfruimte is. | Het is mogelijk om een afbeelding vanuit de cloudopslag te laden indien er geen schijfruimte is. | ||
| + | |||
| Stel dat de gehele schrijfruimte 100GB bedraagt en er momenteel 95GB wordt gebruikt. PMA.core is ingesteld | Stel dat de gehele schrijfruimte 100GB bedraagt en er momenteel 95GB wordt gebruikt. PMA.core is ingesteld | ||
| om geen cache te gebruiken indien er niet tenminste 1GB beschikbare ruimte is. Laten we verder aannemen dat | om geen cache te gebruiken indien er niet tenminste 1GB beschikbare ruimte is. Laten we verder aannemen dat | ||
| de retentieperiode is ingesteld op 30 dagen en dat alle cache in de laatste 10 dagen is gecreëerd. | de retentieperiode is ingesteld op 30 dagen en dat alle cache in de laatste 10 dagen is gecreëerd. | ||
| + | |||
| Als er nu 10 of 100 verzoeken zijn om verschillende afbeeldingen te laden, moet PMA.core de delen van deze afbeeldingen | Als er nu 10 of 100 verzoeken zijn om verschillende afbeeldingen te laden, moet PMA.core de delen van deze afbeeldingen | ||
| cachen, waardoor er ineens geen ruimte is en er niets verwijderd kan worden. | cachen, waardoor er ineens geen ruimte is en er niets verwijderd kan worden. | ||
| + | |||
| U kunt dit nog verder doordrijven en ervan uitgaan dat u 100GB aan vrije ruimte heeft op een 100GB schijf en | U kunt dit nog verder doordrijven en ervan uitgaan dat u 100GB aan vrije ruimte heeft op een 100GB schijf en | ||
| u honderden verzoeken voor “Afbeeldingsinfo” ontvangt. Hierdoor bewaart PMA.core weer delen van honderden | u honderden verzoeken voor “Afbeeldingsinfo” ontvangt. Hierdoor bewaart PMA.core weer delen van honderden | ||
| afbeeldingen tegelijkertijd op de schijf op, waardoor de schijf mogelijk vol raakt (zonder dat er ook maar één regel is verbroken). | afbeeldingen tegelijkertijd op de schijf op, waardoor de schijf mogelijk vol raakt (zonder dat er ook maar één regel is verbroken). | ||
| + | |||
| Hierna werkt er niets meer, omdat PMA.core niet weet wat het moet verwijderen; alle cache is nieuw. | Hierna werkt er niets meer, omdat PMA.core niet weet wat het moet verwijderen; alle cache is nieuw. | ||
| U zult nu de cache-map(pen) handmatig moeten legen, waarna het opbouwproces opnieuw kan beginnen | U zult nu de cache-map(pen) handmatig moeten legen, waarna het opbouwproces opnieuw kan beginnen | ||