Jämförda versioner

Nyckel

  • Dessa rader lades till.
  • Denna rad togs bort.
  • Formateringen ändrades.

...

För att generera testdata används för närvarande enhetstestet BenchmarkTest som skapar en väldigt enkel databasstruktur där varje post härleds utifrån ett heltal. Observera att testet först  skapar poster och sedan uppdaterar dessa. Med andra ord kan man avbryta körningen manuellt när första passet med skapandet är klart.

Procedur:

  1. Det finns en färdig databasdump med 10 000 000 poster som ligger på QA2 under mule användaren "filetransfer/engagement_index_table.gz" om dennas kan användas hoppa då direkt till punkt 10 nedan
  2. Skapa en mysql databas på lämplig server. Observera att en lokal databas på din laptop åtminstone är dubbelt så snabb som normala virtuella servers i ett datacenter
  3. Checka ut SKLTP-EI och gör en "mvn clean install" från rot-biblioteket 
  4. Editera mavens byggfil pom.xml och lägg till mysql biblioteket
  5. Editera src/test/resources/ei-test-config.properties och ställ in rätt databas samt lägg till benchmarkRows som ska sättas till antalet rader som ska skapas och benchmarkBatchSize som ska sättas till batch storlek (500 är lagom)
  6. Editera src/test/resources/persistence-test.xml och kommentera bort hibernate.show_sql för att slippa en massa onödiga utskrifter
  7. Editera src/test/resources/log4j.xml och sätt level till WARN för org.hibernate.SQL för att slippa en massa onödiga utskrifter 
  8. Skapa testdata genom att köra "mvn -Dtest=BenchmarkTest test" detta kan ta några timmar så kommandot "nohup mvn -Dtest=BenchmarkTest test > benchmark-load.log 2>&1 &" kan med fördel användas
  9. Ladda ut data från tabellen genom att köra "mysqldump -u root test engagement_index_table | gzip  > engagement_index_table.gz" filen blir ca 615MB stor
  10. Ladda in data i den aktuella databasen genom att köra först kopiera databasfilen och sedan köra  "gunzip < engagement_index_table.gz | mysql -h <host> -u <user> -p <database>". Där <host> är hostnamnet på servern <user> är mysql användaren och <database> är namnet på databasen/schemat. Programmet kommer att fråga efter Exempel:

...

  1. lösenord. Observera att en eventuell befintlig tabell raderas och ersätts med en ny. 

generate snippet:

$ nohup mvn -Dtest=BenchmarkTest test > benchmark-load.log 2>&1 &

export snippet:

$ mysqldump -u root test engagement_index_table | gzip  > engagement_index_table.gz

import snippet:

$ gunzip < engagement_index_table.gz | mysql -h <host> -u <user> -p <database>

ei-test-config.properties snippet:

...