-
Notifications
You must be signed in to change notification settings - Fork 4.2k
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
Bulk Load CDK: prefix search nonambiguous; filename uses wall time #48623
Bulk Load CDK: prefix search nonambiguous; filename uses wall time #48623
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
@davinchia added you here since you raised this as part of your IAM work |
} else { | ||
pathConstant | ||
pathFactory.getFinalDirectory(stream, streamConstant = true).toString().takeWhile { | ||
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.
What is the significance of $
here? Is there a variable interpolation scheme going on?
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. Basically, give me a directory with only the values constant across syncs realized, then take everything up to the start of the first variable.
FileVariable("timestamp", """\d+""") { | ||
// NOTE: We use a constant time for the path but wall time for the files | ||
Instant.now().toEpochMilli().toString() | ||
}, |
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.
Nit: Is there a way to use the DI'd clock here? Also, this being in a companion object, when does it actually get called?
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 it's init, maybe we can initialize it in an init block 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.
The DI'd clock is "sync time". It's used once and the same value is constant across all uploads, and is used for all the time-based variables except this one, which is supposed to be the actual load time.
val prefix = | ||
pathFactory.getFinalDirectory(stream, streamConstant = true).toString().takeWhile { | ||
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.
Nit: should we share this code since it's coupled?
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.
yeah, it should really go into the path factory, and be like "longestStreamConstantPrefix" or something
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.
Left some questions and nits, but not blocking
937566f
to
deafd18
Compare
b65a21f
into
jschmidt/s3v2/issue-10732/staging-tests
What
Also: