2024-05-30 Migrazione su Virtuoso
Meta
-
https://github.com/ad-freiburg/qlever-control/issues/35
- docker.io/adfreiburg/qlever:latest Non garantisce di usare l’ultima versione! Non viene fatto un pull automatico. Stavo inconsapevolmente usando la versione di ottobre 2023
- Fondamentale specificare il digest o il commit dell’immage docker, il tag latest non basta
-
Ottimizzazione Virtuoso per dataset di grandi dimensioni e server potenti
;; Per 500 GB di RAM;; Also, if running with a large database, setting MaxCheckpointRemap to 1/4th of the database size is recommended. This is in pages, 8K per page.MaxCheckpointRemap = 20000000;; NumberOfBuffers = (Free Memory * 0.66)/8000. MaxDirtyBuffers (3/4 of NumberOfBuffers)NumberOfBuffers = 44000000MaxDirtyBuffers = 33000000MaxClientConnections = 200O_DIRECT = 1RdfFreeTextRulesSize = 100000IndexTreeMaps = 256MaxQueryMem = 16G -
Script per bulk load in multiprocessing con Virtuoso
#!/bin/bash# Configurazione variabiliCONTAINER_NAME="oc_meta" # Nome del container DockerDBA_USER="..." # Nome utente DBADBA_PASSWORD="..." # Password DBALOG_FILE="bulk_load.log" # File di log nel volume montatoCORES=$(nproc) # Numero di core della macchinaLOADERS=$((CORES / 2)) # Numero di loaders (massimo core / 2)# Funzione per lanciare il loaderlaunch_loader() {docker exec -i $CONTAINER_NAME isql 1111 $DBA_USER $DBA_PASSWORD exec="rdf_loader_run(log_enable=>2);" >> $LOG_FILE 2>&1 &}# Inizializzazione del logecho "Inizio caricamento bulk RDF: $(date)" > $LOG_FILE# Avvio multipli loaderfor ((i=1; i<=LOADERS; i++))doecho "Lancio loader $i: $(date)" >> $LOG_FILElaunch_loaderdone# Attesa del completamento dei loaderswait# Esecuzione del checkpoint finaleecho "Esecuzione checkpoint: $(date)" >> $LOG_FILEdocker exec -i $CONTAINER_NAME isql 1111 $DBA_USER $DBA_PASSWORD exec="checkpoint;" >> $LOG_FILE 2>&1# Ripristino delle impostazioni di checkpoint e schedulerdocker exec -i $CONTAINER_NAME isql 1111 $DBA_USER $DBA_PASSWORD exec="checkpoint_interval(N);" >> $LOG_FILE 2>&1docker exec -i $CONTAINER_NAME isql 1111 $DBA_USER $DBA_PASSWORD exec="scheduler_interval(M);" >> $LOG_FILE 2>&1echo "Caricamento bulk RDF completato: $(date)" >> $LOG_FILE -
Virtuoso
- Conteggi
- AR:
- Blazegraph: 1,577,469,289
- Virtuoso:1,577,470,930
- BR:
- Blazegraph: 1,246,866,834
- Virtuoso: 1,247,454,694
- RA:
- Blazegraph: 903,227,547
- Virtuoso: 903,228,697
- ID:
- Blazegraph: 628,852,233
- Virtuoso: 628,857,264
- RE:
- Blazegraph: 212,260,046
- Virtuoso: 212,260,046
- AR:
- Osservazioni:
- Ci sono delle triple di default nel triplestore che non sono riuscito a cancellare per problemi di permessi
- Virtuoso è decisamente più lento di Blazegraph nel contare le triple
- La differenza di triple si spiega perchè nei dati ci sono più triple che nel triplestore Blazegraph. E qualcosa di cui mi ero già accorto a proposito dei soggetti referenziati senza triple. Quei riferimenti sono presenti solo nei dati e non nel triplestore per ragioni sconosciute
- Conteggi
-
Qlever
- Numero di triple
- Blazegraph: 4,568,675,949
- Qlever: 4,569,275,768
- Numero di triple