-
Notifications
You must be signed in to change notification settings - Fork 26
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
HL-1205 Postgres support #55
base: master
Are you sure you want to change the base?
Conversation
pullTimeout = Duration.ofMinutes(5) | ||
) | ||
|
||
constructor( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please consider builder instead of telescoping constructors and default params. See https://github.com/wyrzyk/java-api-design-checklist/blob/master/CHECKLIST.md#3612-consider-a-builder-when-faced-with-many-constructor-parameters
parameters = "-p 3306:5432 -v `realpath $pgData`:/var/lib/postgresql/data", | ||
arguments = "-c 'listen_addresses='*'' -c 'max_connections=$maxConnections'" | ||
) | ||
Thread.sleep(Duration.ofSeconds(15).toMillis()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be great to wait on a condition instead of thread sleep. We're either loose time waiting, or return too fast. And it can cause flakiness.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a red flag. @masiorski have you checked it there is any way to actually wait for the image to be ready rather than sleep?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we do not need this line here, I will remove it, thanks
@@ -18,7 +18,11 @@ class FileArchiver { | |||
) { | |||
ubuntu.install(connection, listOf("lbzip2")) | |||
time("unzip") { | |||
connection.execute("tar -I lbzip2 -xf $archive", timeout) | |||
val cmd = if (archive.contains("SCALED_ISSUES_UNIMODAL_PG")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is this change related to "Postgres support"?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yes sir, I keep data sets for PG here - https://s3.console.aws.amazon.com/s3/buckets/jpt-pgdata/?region=eu-central-1&tab=overview
we need to move the archives to the correct S3 bucket (but I do not have rights there, need your help)
@@ -18,7 +18,11 @@ class FileArchiver { | |||
) { | |||
ubuntu.install(connection, listOf("lbzip2")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't have to install lbzip2 in case we're not using it.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
thanks for pointing this out
Please update CHANGELOG. |
I'm assuming HL-1205 is internal project. Is so there is no point in mentioning it in an open-source repo. You should create a JPREF ticket for this work and reference it. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Overall looks ok, but please test this.
src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/database/PostgresDatabase.kt
Outdated
Show resolved
Hide resolved
override fun start(jira: URI, ssh: SshConnection) { | ||
// TODO Check logs for the following entry | ||
// LOG: database system is ready to accept connections | ||
Thread.sleep(Duration.ofSeconds(15).toMillis()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This sleep is suspicious too. How do we resolve the TODO?
- resolve TODO
- remove sleep
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
sleep is enough here, postgres databases are initialising very quickly, checking logs is something nice to have
CHANGELOG.md
Outdated
[Unreleased]: https://github.com/atlassian/infrastructure/compare/release-4.14.4...master | ||
[Unreleased]: https://github.com/atlassian/infrastructure/compare/release-4.14.5...master | ||
|
||
## [4.14.5] - 2020-02-03 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We'll mark the release after it happens, so you can remove this header
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
More precisely, remove the entire changelog diff except for the actual change you're shipping:
### Added
- Add support for Postgres database.
src/main/kotlin/com/atlassian/performance/tools/infrastructure/api/database/PostgresDatabase.kt
Show resolved
Hide resolved
import java.net.URI | ||
import java.time.Duration | ||
|
||
class PostgresDatabase( |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you can avoid the FileArchiver
changes, perhaps by inlining some code, then this class wouldn't have to be merged it, but could be used in-place.
Please review and release this PR. I'm leaving atlassian in February. I would like to finish PG support before my leave. Regards, Marcin