New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added missing tests, new configuration with HikariCP and bumped Play version #1149

Merged
merged 1 commit into from Oct 29, 2014

Conversation

Projects
None yet
3 participants
@donovanmuller
Contributor

donovanmuller commented Oct 29, 2014

Added the remaining tests for play2-java-jpa:

  • /fortunes
  • /update
  • /plaintext

Also added a new benchmark configuration based on play2-java-jpa but using the HikariCP plugin. This allows the default BoneCP connection pool to be replaced with HikariCP.

Added the remaining tests.
Bumped Play version to 2.3.6.
Added HikariCP benchmark config.

msmith-techempower added a commit that referenced this pull request Oct 29, 2014

Merge pull request #1149 from donovanmuller/master
Added missing tests, new configuration with HikariCP and bumped Play version

@msmith-techempower msmith-techempower merged commit 57de4cb into TechEmpower:master Oct 29, 2014

1 check passed

continuous-integration/travis-ci The Travis CI build passed
Details
@richdougherty

This comment has been minimized.

Show comment
Hide comment
@richdougherty

richdougherty Oct 30, 2014

Contributor

👍 I think this PR looks great. I have a few suggestions but there's no rush on these things. You can easily change them up in your next PR.

Contributor

richdougherty commented Oct 30, 2014

👍 I think this PR looks great. I have a few suggestions but there's no rush on these things. You can easily change them up in your next PR.

('Scala', 'Slick', ['Linux'], ['db', 'query', 'fortune', 'update']),
('Java', None, ['Linux'], ['json']),
('Java', 'Ebean', ['Linux'], ['db', 'query']),
('Java', 'JPA', ['Linux'], ['db', 'query', 'fortune', 'update', 'plaintext']),

This comment has been minimized.

@richdougherty

richdougherty Oct 30, 2014

Contributor

I suggest renaming "JPA" to "JPA BoneCP" here so that the difference between the two frameworks is really clear. I understand that BoneCP is the default but I don't think it will hurt to spell out the difference to anyone who is reading the results!

@richdougherty

richdougherty Oct 30, 2014

Contributor

I suggest renaming "JPA" to "JPA BoneCP" here so that the difference between the two frameworks is really clear. I understand that BoneCP is the default but I don't think it will hurt to spell out the difference to anyone who is reading the results!

('Java', None, ['Linux'], ['json']),
('Java', 'Ebean', ['Linux'], ['db', 'query']),
('Java', 'JPA', ['Linux'], ['db', 'query', 'fortune', 'update', 'plaintext']),
('Java', 'JPA HikariCP', ['Linux'], ['db', 'query', 'fortune', 'update', 'plaintext']),

This comment has been minimized.

@richdougherty

richdougherty Oct 30, 2014

Contributor

Thanks for implementing the plaintext test. Since the test doesn't hit the database, I'd suggest moving the implementation out of the two JPA tests and into the no-DB Java test. How does that sound?

@richdougherty

richdougherty Oct 30, 2014

Contributor

Thanks for implementing the plaintext test. Since the test doesn't hit the database, I'd suggest moving the implementation out of the two JPA tests and into the no-DB Java test. How does that sound?

This comment has been minimized.

@msmith-techempower

msmith-techempower Oct 30, 2014

Member

I would recommend not moving the plaintext tests out of this - this is cleanly organized as-is.

@msmith-techempower

msmith-techempower Oct 30, 2014

Member

I would recommend not moving the plaintext tests out of this - this is cleanly organized as-is.

This comment has been minimized.

@richdougherty

richdougherty Oct 30, 2014

Contributor

I'm suggesting moving the plaintext test out of the play2-java-jpa and play2-java-jpa-hikaridb tests and into play2-java. I think this is nice and clean, but maybe I'm wrong about that?

In general, with the way I've structured the Play 2 tests (and feel free to disagree) is into database tests (play2-java-jpa, play2-java-ebean, play2-scala-anorm, play2-scala-slick) and non-database tests (play2-java, play2-scala).

Each database test uses a different persistence approach, so they are useful for comparing different persistence frameworks. That's why I recommend the database tests only include tests that use the database: db, query, fortune, update.

The non-database tests don't use a persistence framework so I recommend that they are used to test the common part of Play that doesn't rely on a persistence framework. These tests are: json and plaintext.

If we included json and plaintext in each database test then we'd have lots of duplicated tests that are testing the same thing. When people look at the results for json or plaintext they should only see play2-java and play2-scala in the results. It's not helpful in these tests to see comparisons between persistence frameworks.

Here's the test configuration at the moment:

configurations = [
  # Java test for common 
  ('Java',  None,               ['Linux'],            ['json']),
  ('Java',  'Ebean',            ['Linux'],            ['db', 'query']),
  ('Java',  'JPA',              ['Linux'],            ['db', 'query', 'fortune', 'update', 'plaintext']),
  ('Java',  'JPA HikariCP',     ['Linux'],            ['db', 'query', 'fortune', 'update', 'plaintext']),
  ('Scala', None,               ['Linux'],            ['json']),
  ('Scala', 'Anorm',            ['Linux', 'Windows'], ['db', 'query', 'fortune', 'update']),
  ('Scala', 'Slick',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
]

I'm suggesting that ultimately we get it looking like:

configurations = [
  # Java test for common 
  ('Java',  None,               ['Linux'],            ['json', 'plaintext']),
  ('Java',  'Ebean',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Java',  'JPA',              ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Java',  'JPA HikariCP',     ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Scala', None,               ['Linux'],            ['json', 'plaintext']),
  ('Scala', 'Anorm',            ['Linux', 'Windows'], ['db', 'query', 'fortune', 'update']),
  ('Scala', 'Slick',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
]

Does that sound OK?

@richdougherty

richdougherty Oct 30, 2014

Contributor

I'm suggesting moving the plaintext test out of the play2-java-jpa and play2-java-jpa-hikaridb tests and into play2-java. I think this is nice and clean, but maybe I'm wrong about that?

In general, with the way I've structured the Play 2 tests (and feel free to disagree) is into database tests (play2-java-jpa, play2-java-ebean, play2-scala-anorm, play2-scala-slick) and non-database tests (play2-java, play2-scala).

Each database test uses a different persistence approach, so they are useful for comparing different persistence frameworks. That's why I recommend the database tests only include tests that use the database: db, query, fortune, update.

The non-database tests don't use a persistence framework so I recommend that they are used to test the common part of Play that doesn't rely on a persistence framework. These tests are: json and plaintext.

If we included json and plaintext in each database test then we'd have lots of duplicated tests that are testing the same thing. When people look at the results for json or plaintext they should only see play2-java and play2-scala in the results. It's not helpful in these tests to see comparisons between persistence frameworks.

Here's the test configuration at the moment:

configurations = [
  # Java test for common 
  ('Java',  None,               ['Linux'],            ['json']),
  ('Java',  'Ebean',            ['Linux'],            ['db', 'query']),
  ('Java',  'JPA',              ['Linux'],            ['db', 'query', 'fortune', 'update', 'plaintext']),
  ('Java',  'JPA HikariCP',     ['Linux'],            ['db', 'query', 'fortune', 'update', 'plaintext']),
  ('Scala', None,               ['Linux'],            ['json']),
  ('Scala', 'Anorm',            ['Linux', 'Windows'], ['db', 'query', 'fortune', 'update']),
  ('Scala', 'Slick',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
]

I'm suggesting that ultimately we get it looking like:

configurations = [
  # Java test for common 
  ('Java',  None,               ['Linux'],            ['json', 'plaintext']),
  ('Java',  'Ebean',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Java',  'JPA',              ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Java',  'JPA HikariCP',     ['Linux'],            ['db', 'query', 'fortune', 'update']),
  ('Scala', None,               ['Linux'],            ['json', 'plaintext']),
  ('Scala', 'Anorm',            ['Linux', 'Windows'], ['db', 'query', 'fortune', 'update']),
  ('Scala', 'Slick',            ['Linux'],            ['db', 'query', 'fortune', 'update']),
]

Does that sound OK?

This comment has been minimized.

@msmith-techempower

msmith-techempower Oct 30, 2014

Member

Okay, with your full explanation, that sounds better to me.

@msmith-techempower

msmith-techempower Oct 30, 2014

Member

Okay, with your full explanation, that sounds better to me.

This comment has been minimized.

@richdougherty

richdougherty Oct 30, 2014

Contributor

Great :)

@richdougherty

richdougherty Oct 30, 2014

Contributor

Great :)

donovanmuller added a commit to donovanmuller/FrameworkBenchmarks that referenced this pull request Nov 3, 2014

Updated all benchmarks to Play 2.3.6 and Scala 2.11.4.
Updated Ebean benchmarks to include missing tests as well as include HikariCP version.
Moved `/plaintext` tests from JPA/Ebean benchmarks to the `play2-java` benchmark as per TechEmpower#1149 (comment)
Added BoneCP qualifier as per TechEmpower#1149 (comment) and changed names accordingly.

donovanmuller added a commit to donovanmuller/FrameworkBenchmarks that referenced this pull request Nov 3, 2014

Updated all benchmarks to Play 2.3.6 and Scala 2.11.4.
Updated Ebean benchmarks to include missing tests as well as include HikariCP version.
Moved `/plaintext` tests from JPA/Ebean benchmarks to the `play2-java` benchmark as per TechEmpower#1149 (comment)
Added BoneCP qualifier as per TechEmpower#1149 (comment) and changed names accordingly.
@donovanmuller

This comment has been minimized.

Show comment
Hide comment
@donovanmuller

donovanmuller Nov 3, 2014

Contributor

@richdougherty Have implemented your suggestions here as well as updating Ebean benchmark etc.

Contributor

donovanmuller commented Nov 3, 2014

@richdougherty Have implemented your suggestions here as well as updating Ebean benchmark etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment