Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

Introduction

The Fedora Community has raised significant concerns about retrieval times for resources with many members.   By "members" we are talking about at least three scenarios

  1.  Many children
  2.  Many has_member outlinks
  3. Many member_of inlinks 

Using a set of tests originally devised by Esmé Cowles I modified them slightly and added a couple of new tests.  The latest versions can be found here : test scripts.  

Setup:

In order to set up the machines for the tests,  I performed the following steps.  

  1.  Install postgresql 
  2. Install mysql-server 
  3. Build  the fcrepo4 project from the specified commit. 
  4. Run fcrepo-webapp using mvn clean jetty:run and the appropriate MAVEN_OPTS such as fcrepo.modeshape.configuration, fcrepo.mysql.username, fcrepo.mysql.password,  fcrepo.postgres.username, fcrepo.postgres.password.
  5. git clone https://github.com/dbernstein/fcrepo-performance-tests.git

test scripts :

Instance Definition

...

n-children.sh

FCREPO Version
RepoBranch
Commit
Environment
Modeshape Config

# of relations

Test Duration

(seconds)

Tester

4.8.0-SNAPSHOTdbernstein
b60d4e5file-simple100005.222
4.8.0-SNAPSHOTdbernstein
daa11f35file-simple100005.567
4.8.0-SNAPSHOTdbernstein
b60d4e6file-simple100004.859
4.8.0-SNAPSHOTdbernstein
daa11f36file-simple100004.841

...

FCREPO VersionRepoBranchCommitmodeshapeEnvironment

# of relations

Test Duration

(seconds)

Tester
4.8.0-SNAPSHOTfcrepo4master2df32file-simple110001.408
4.7.1fcrepo4master546f5a5file-simple210001.45
4.8.0-SNAPSHOTfcrepo4master2df32file-simple110,00028.583
4.7.1fcrepo4master546f5a5file-simple210,00024.79
4.8.0-SNAPSHOTfcrepo4masterb60d4efile-simple310,0009.58
4.8.0-SNAPSHOTdbernstein
fcrepo-2105-v4-parallelization
daa11f3file-simple310,00012.16Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3file-simple410,0009.71Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3file-simple510,0008.51Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOT

b60d4efile-simple510,0008.815
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3file-simple610,0008.29Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOT

b60d4efile-simple610,0008.661
4.8.0-SNAPSHOTbbrananfcrepo-2402f0a51ejdbc-postgresql110001.543
4.8.0-SNAPSHOTbbrananfcrepo-2402f0a51ejdbc-postgresql11000061.381perhaps postgres needs caching configured?
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3jdbc-postgresql310000.592
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3jdbc-postgresql31000039.671
4.8.0-SNAPSHOTbbrananfcrepo-2402dbernsteinf0a51ejdbc-postgresql310004.435
4.8.0-SNAPSHOTbbranandbernsteinfcrepo-2402f0a51ejdbc-postgresql31000039.486
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cachef453ajdbc-postgresql310000.5611 million item cache
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cachef453ajdbc-postgresql3100005.3341 million item cache
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cache5138b4jdbc-postgresql310000.6331 million item cache + parallelized
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cache5138b4jdbc-postgresql3100005.3981 million item cache + parallelized
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cache5138b4mysql-postgresql310000.8201 million item cache + parallelized
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cache5138b4mysql-postgresql3100007.7261 million item cache + parallelized

...

Number of relations: 1000

FCREPO VersionRepobranchCommitmodeshape configEnvironment# of relations

Test Duration

(seconds)

TesterNotes
4.8.0-SNAPSHOTfcrepo4master2df32
110006.570
4.7.1fcrepo4master546f5a5
210002.80
4.8.0-SNAPSHOTfcrepo4master2df32
110,00086.000
4.7.1fcrepo4master546f5a5
210,00057.35
4.8.0-SNAPSHOTfcrepo4masterb60d4e
310,00030.02Unlike the n-member example, results begin streaming right away - so the response begins streaming within 2 seconds.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3
310,00029.975Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3
410,00024.790Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3
510,00020.992Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTfcrepo4masterb60d4e
510,00026.357
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-v4-parallelizationdaa11f3
610,00020.337Danny Bernsteinparallel streams enabled.
4.8.0-SNAPSHOTfcrepo4masterb60d4e
610,00025.782
4.8.0-SNAPSHOTbbrananfcrepo-2402f0a51ejdbc-postgresql1100011.414
4.8.0-SNAPSHOTbbrananfcrepo-2402f0a51ejdbc-postgresql110000194
4.8.0-SNAPSHOTdbernsteincrepo-2105-v4-parallelizationdaa11f3jdbc-postgresql310003.961parallel streams enabled.
4.8.0-SNAPSHOTdbernsteincrepo-2105-v4-parallelizationdaa11f3jdbc-postgresql31000053.452parallel streams enabled.
4.8.0-SNAPSHOT
dbernstein
bbrananfcrepo-2402f0a51ejdbc-postgresql3100010.833
4.8.0-SNAPSHOT
dbernstein
bbrananfcrepo-2402f0a51ejdbc-postgresql310000109.530
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-large-cachef453ajdbc-postgresql31000022.9631 million item cache.
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-
large
v4-
cache
parallelization5138b4jdbc-postgresql31000011.5591 million item cache + parallelized
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-
large
v4-
cache
parallelization5138b4mysql-postgresql310002.3371 million item cache + parallelized
4.8.0-SNAPSHOTdbernsteinfcrepo-2105-
large
v4-
cache
parallelization5138b4mysql-postgresql31000014.9981 million item cache + parallelized

n-uris.sh

FCREPO VersionCommitEnvironment# of relations

Test Duration

(seconds)

 
4.8.0-SNAPSHOT2df32110000.039
4.7.1546f5a5210000.14
4.8.0-SNAPSHOT2df32110,0000.063
4.7.1546f5a5210,0000.17

...

repobranchCommitEnvironmentModeshape Config# of binariessize in KB

Test Duration

(seconds)

Tester
https://github.com/bbranan/fcrepo4.gitfcrepo-2402f0a51e1file-s3 1000100000:06:02
https://github.com/bbranan/fcrepo4.gitfcrepo-2402f0a51e1file-simple1000100000:02:16
https://github.com/bbranan/fcrepo4.gitfcrepo-2402f0a51e1jdbc-postgresql1000100000:02:13



Conclusions