Table des matières
TME KVStore (facultatif)
Ce TME est facultatif pour 2018-2019
L'objectif de ce TME est de prendre en main un système scalable clé-valeur. Notions abordées: clé, répartition des données en fonction d'un préfixe de la clé, localité d'une opération, lectures/écritures non isolées, transaction pour isoler une séquence d'écritures, écriture conditionnelle.
Préparation
cd votre répertoire tar zxvf /Infos/bd/kvstore/kv-ce-3.1.7.tar.gz cd kv-3.1.7 source /Infos/bd/kvstore/config-java-classpath-kvlite.txt
Seulement si l'étape précédente n'a pas été faite : télécharger le logiciel oracle kv store (fichier kv-ce-3.1.7.tar.gz). Copier le logiciel dans votre dossier de travail et le décompresser.
Démarrage du serveur
Démarrer le serveur kvlite (version light de kvstore) avec la commande :
java -jar lib/kvstore.jar kvlite -root /tmp/kvroot
Rmq: L'option -root
permet de préciser un dossier local sur votre machine pour que kvstore stocke les données (éviter de stocker les données sur NFS).
En cas d'erreur au démarrage de kvlite, supprimer entièrement le dossier kvroot rm -rf /tmp/kvroot
.
Garder ce terminal ouvert (pour afficher les eventuels messages provenant du serveur kvstore) mais ne plus l'utiliser par la suite pour saisir d'autres commandes.
Pour éteindre le serveur : soit la touche Ctrl-C soit la commande
java -Djava.library.path=./lib -jar lib/kvstore.jar stop -root /tmp/kvroot
Récupérer les fichiers du TME
tar zxvf /Infos/bd/kvstore/kvstore-etu.tgz cd kvstore-etu
Documentation
- Lire la documentation Oracle NOSQL (en particulier le quick start)
- Ouvrir un onglet dans votre navigateur pour consulter l'API java. Cliquer sur le package oracle.kv, puis consulter les méthodes put et get multigetde l'interface KVStore et les méthodes createPut… de l'interface OperationFactory.
Exercice 1
Lire le sujet
Initialier le store
cd kv-3.1.7 source /Infos/bd/kvstore/config-java-classpath-kvlite.txt cd ..
Vérifier que la variable CLASSPATH contient tous les jar de kvstore
echo $CLASSPATH
Initialiser le store
cd kvstore-etu javac InitMagasinGlobal.java java InitMagasinGlobal
Question 1
javac ExecutionSansTransaction.java java ExecutionSansTransaction