I am, however, still confused by the hg-review-repo side of things. It's pretty far outside my domain, much more of a releng speciality than A-Team. Does https://github.com/laggyluke/reviewboard-mercurial-hook#readme contain everything we need from that side? What kind of disk space do we need? When we set up reviewboard.allizom.org and reviewboard-dev.allizom.org around 6 months ago, the idea of having an hg review repository wasn't on the radar, so we probably don't have much disk space available right now. Now that fubar is back from PTO, if we need something large, we need to start setting it up now.
What kind of maintenance do we need going forward? I noticed a thread on hg scaling in this group, but I didn't really see any conclusion. Unless we are treating the initial deployment as a temporary throwaway solution (and I don't think we are), we need to deal with maintenance questions now. As gps remarked, the try server has caused a lot of headaches with its thousands of heads, and I'm pretty sure no one in releng wants to go down that path again unless we have a really solid plan. I know we want a minimum viable product, but I consider some plan for scalability to be part of that minimum; putting this off until later will cause more pain in the long run.
Mark
--
You received this message because you are subscribed to the Google Groups "mozilla-code-review" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozilla-code-review+unsub...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Resetting repos is definitely going to be a problem. The one and only requirement of the hg hosting side that I know of is for the published changesets to live forever as they would essentially be the data backing our code review data. Taras previously said that this is on his radar, any updates on what we want to do here, Taras?On the issue of the hg repos, I'm of course fine with running the latest and greatest version of hg, but we should also note that we've been talking about upgrading the hg version on hg.m.o for a number of years now (I can confidently say 2, but I'm probably underestimating) and it hasn't happened yet, so I'd rather us to keep that in mind before putting all of our eggs in that basket. I'd defer to Taras on that issue too, of course.
Cheers,
To unsubscribe from this group and stop receiving emails from it, send an email to mozilla-code-re...@googlegroups.com.
Ehsan Akhgari wrote:Resetting repos is definitely going to be a problem. The one and only requirement of the hg hosting side that I know of is for the published changesets to live forever as they would essentially be the data backing our code review data. Taras previously said that this is on his radar, any updates on what we want to do here, Taras?
Don't have a good update here. My understanding is that resetting has been done before mainly due to respository corruption. As far as I know that was due to people not spending the time to debug the "wedged hg" problems when resetting was a viable option.On the issue of the hg repos, I'm of course fine with running the latest and greatest version of hg, but we should also note that we've been talking about upgrading the hg version on hg.m.o for a number of years now (I can confidently say 2, but I'm probably underestimating) and it hasn't happened yet, so I'd rather us to keep that in mind before putting all of our eggs in that basket. I'd defer to Taras on that issue too, of course.
Just coming to this thread, so my apologies if I get the context incorrect.
On 2014-05-27, 13:12 , Taras Glek wrote:
Which repos are we talking about resetting? If only "try", then as I understand it, holding a 2 week history is "sufficient", and we have plans to support that on try.
Ehsan Akhgari wrote:Resetting repos is definitely going to be a problem. The one and only requirement of the hg hosting side that I know of is for the published changesets to live forever as they would essentially be the data backing our code review data. Taras previously said that this is on his radar, any updates on what we want to do here, Taras?
If we're talking about resetting any other repos, especially m-c, m-a, m-b, m-r or any of the b2g variants, we need some more discussion to ensure we don't mess with the downstream b2g partners view of gecko.git.
The issues blocking hg server software upgrade were largely "no one owned hg" (imo), so resources were not aligned across the groups in a timely fashion. Now Laura owns repos, so "things have changed".Don't have a good update here. My understanding is that resetting has been done before mainly due to respository corruption. As far as I know that was due to people not spending the time to debug the "wedged hg" problems when resetting was a viable option.On the issue of the hg repos, I'm of course fine with running the latest and greatest version of hg, but we should also note that we've been talking about upgrading the hg version on hg.m.o for a number of years now (I can confidently say 2, but I'm probably underestimating) and it hasn't happened yet, so I'd rather us to keep that in mind before putting all of our eggs in that basket. I'd defer to Taras on that issue too, of course.
We did get in one server upgrade last year. And, from discussions with a "major hg user" (facebook), it seems like we'll be able to fasttrack upgrades withing a point release of stable. I'm going to go out on a limb here, and say we can do an hg server upgrade in Q3.
As for the "wedged" problems -- we have gotten some decent debugging (thanks to Glandium) and theories (thanks to GPS) within the last month. Much more is known, so we can say with confidence that:
a) there is no silver bullet server release
b) staying closer to "tip" will help
c) preventing commiter's from interrupting a commit will really help (social and technical solutions available)
On Tue, May 27, 2014 at 4:30 PM, Hal Wine <hw...@mozilla.com> wrote:
Just coming to this thread, so my apologies if I get the context incorrect.
On 2014-05-27, 13:12 , Taras Glek wrote:
Which repos are we talking about resetting? If only "try", then as I understand it, holding a 2 week history is "sufficient", and we have plans to support that on try.
Ehsan Akhgari wrote:Resetting repos is definitely going to be a problem. The one and only requirement of the hg hosting side that I know of is for the published changesets to live forever as they would essentially be the data backing our code review data. Taras previously said that this is on his radar, any updates on what we want to do here, Taras?
If we're talking about resetting any other repos, especially m-c, m-a, m-b, m-r or any of the b2g variants, we need some more discussion to ensure we don't mess with the downstream b2g partners view of gecko.git.
To give a bit of a background on what we're trying to achieve here, we're working on a new code review workflow that replaces the current workflow of attaching textual diffs to bugs to pushing your changes to a remote code repository and have the review tool look at that code repository to get the information about the code being reviewed, etc. from there. The hg repo that I'm talking about here would be conceptually similar to the try repo in that people will push their local trees to that repo so it's separate from m-c/m-a/etc. but we do need to ensure that the changesets that are pushed to that repo will persist forever because otherwise going back to a code review of 6 months ago would not work since you would be asking for a changeset which no longer exists on that repo. So we won't be able to reset that repo if it gets affected by similar problems to the perf issues that we've been struggling with on try.
The issues blocking hg server software upgrade were largely "no one owned hg" (imo), so resources were not aligned across the groups in a timely fashion. Now Laura owns repos, so "things have changed".Don't have a good update here. My understanding is that resetting has been done before mainly due to respository corruption. As far as I know that was due to people not spending the time to debug the "wedged hg" problems when resetting was a viable option.On the issue of the hg repos, I'm of course fine with running the latest and greatest version of hg, but we should also note that we've been talking about upgrading the hg version on hg.m.o for a number of years now (I can confidently say 2, but I'm probably underestimating) and it hasn't happened yet, so I'd rather us to keep that in mind before putting all of our eggs in that basket. I'd defer to Taras on that issue too, of course.
We did get in one server upgrade last year. And, from discussions with a "major hg user" (facebook), it seems like we'll be able to fasttrack upgrades withing a point release of stable. I'm going to go out on a limb here, and say we can do an hg server upgrade in Q3.
As for the "wedged" problems -- we have gotten some decent debugging (thanks to Glandium) and theories (thanks to GPS) within the last month. Much more is known, so we can say with confidence that:
a) there is no silver bullet server release
b) staying closer to "tip" will help
c) preventing commiter's from interrupting a commit will really help (social and technical solutions available)
Thanks! So based on the above, do you think we would be able to host a code repository system where we persist the changesets pushed to it forever?
--
You received this message because you are subscribed to the Google Groups "mozilla-code-review" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozilla-code-review+unsub...@googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "mozilla-code-review" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozilla-code-re...@googlegroups.com.
I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?
On Tue, May 27, 2014 at 10:39 PM, Hal Wine <hw...@mozilla.com> wrote:
Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
Sure. That was a tangent.
I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?
I would say that person is me. :-) Unless you mean the Review Board project, in which case I can reach out to them as well. Please let me know what you'd like to know about the plans for staging environment.
On Tue, May 27, 2014 at 10:39 PM, Hal Wine <hw...@mozilla.com> wrote:Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
Sure. That was a tangent.I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?I would say that person is me. :-) Unless you mean the Review Board project, in which case I can reach out to them as well. Please let me know what you'd like to know about the plans for staging environment.
Taras, in the interest of moving this forward further, do you think we can do something sooner than June 6th?
Tuesday, May 27, 2014 19:39
Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?
Thanks,
--Hal
One of my favorites: http://www.c2.com/cgi/wiki?DifferenceBetweenTheoryAndPractice
Thanks!
On Tue, May 27, 2014 at 9:30 PM, Mike Hommey <glan...@mozilla.com> wrote:
On Tue, May 27, 2014 at 08:06:18PM -0400, Ehsan Akhgari wrote:Having a dummy branch where everything is merged into with something like
> Note that we do not require to persist the "heads" but we do need to
> persist the changesets. So for example a solution which merges the heads
> in a dumb way to just reduce the number of heads will work fine. Or any
> other variation of that idea...
http://mercurial.selenic.com/wiki/TipsAndTricks#mergemineortheir , which
is equivalent to git merge -s ours, would avoid deltas growing out of
proportion without generaldelta.
Mike
--
You received this message because you are subscribed to the Google Groups "mozilla-code-review" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mozilla-code-re...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Tuesday, May 27, 2014 18:34
I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
Thanks!
Tuesday, May 27, 2014 18:30
Having a dummy branch where everything is merged into with something like
http://mercurial.selenic.com/wiki/TipsAndTricks#mergemineortheir , which
is equivalent to git merge -s ours, would avoid deltas growing out of
proportion without generaldelta.
Mike
Tuesday, May 27, 2014 17:06
Note that we do not require to persist the "heads" but we do need to persist the changesets. So for example a solution which merges the heads in a dumb way to just reduce the number of heads will work fine. Or any other variation of that idea...
Cheers,
What's the rush. I think we can rely on try as is during the testing period.Tuesday, May 27, 2014 19:49On Tue, May 27, 2014 at 10:39 PM, Hal Wine <hw...@mozilla.com> wrote:Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
Sure. That was a tangent.I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?I would say that person is me. :-) Unless you mean the Review Board project, in which case I can reach out to them as well. Please let me know what you'd like to know about the plans for staging environment.
Taras, in the interest of moving this forward further, do you think we can do something sooner than June 6th?
Not confidential, but I viewed it as "getting Hal up to speed, so noise for everyone else". You did such a good job getting me up to speed, adding the list back in. Thanks!On Wed, May 28, 2014 at 1:13 AM, Hal Wine <hw...@mozilla.com> wrote:
[Moving most to bcc]
Not sure why you dropped the public mailing list from the CC list. I don't think anything in this email is confidential and cannot be discussed in public. If that's true, please add the list back to the CC list. Specifically there are people on the list who I'd like to verify what I'm saying below for accuracy. Thanks!
On 2014-05-27, 19:49 , Ehsan Akhgari wrote:
Ehsan, my interest here is ensuring we all share the same expectations (please feel free to point me to any docs that cover this, if they exist).On Tue, May 27, 2014 at 10:39 PM, Hal Wine <hw...@mozilla.com> wrote:
Folks -- let's keep this thread to a single topic. In this case the topic is supporting the rollout of Review Board into a staging environment.
On 2014-05-27, 18:34 , Ehsan Akhgari wrote:
Please take to another thread - there are reasons.I'm very glad to hear that! Out of curiosity, is there a technical reason why we have not done this for try? Is it just that we haven't gotten around to doing it yet?
Sure. That was a tangent.
I do not agree. In the past, the dummy branch method proposed below was implemented with the "try repo" and failed to yield improvements (and was then removed). That was sever server versions ago, and by all accounts, things may have changed. But as far as I know, this technique has not been shown to improve performance in a situation where the performance problem had been recreated.But I think this answers the question of whether we can make hosting this repo work. Do you agree, Hal?
As I said in a previous email, I will get with some folks and get back to this group. I did leave out a time frame. I'll get back to this group no later than Friday, June 6. Between now and then, I'll be meeting with:
- dev services, who have hard data on current infrastructure capacity and alternatives
- GPS, who has replicated the "try repo" performance problem, and has had long discussion with the Hg dev team.
- someone from the Review Board program who can speak to what the plans are for the staging environment.
Ehsan - can you provide me with that last item? Or point me to whomever can?
I would say that person is me. :-) Unless you mean the Review Board project, in which case I can reach out to them as well. Please let me know what you'd like to know about the plans for staging environment.
It may make more sense to have a chat/vidyo about this subject. Basically what I know at this time is standing up the staging environment is a Q2 goal, and the staging environment needs an hg repository. And our repository creation process routes via RelEng (usually me) per https://wiki.mozilla.org/ReleaseEngineering/RepositoryCreationRequest. This is a "first of it's kind" use case for source control at Mozilla, and hence there are some additional questions.
Okay, in our world, that is a HUGE difference. Thanks for clarifyingJust to make sure that we're talking about the same thing, this is not going to be a staging environment in the usual sense of the word. It can probably be more accurately described as an initial deployment of the tool in order to test it in practice with a small target audience.
Agreed - Q2 goal means "no later than", but also means "we knew you were coming" (which is good).About the timelines, this might be a Q2 goal for some teams/people but from my perspective, I'd really like to move on this as fast as we can, since we're still in the process of building the tool. The goal for the initial deployment is to get feedback from our test group and based on the feedback, we might need to go back and change various things in the tool. So it's crucial to try to move things forward as fast as we can, and we've been doing that with reasonable success so far.
And releng/it relationship is changing as we speak - for the better.
Looking at https://wiki.mozilla.org/ReleaseEngineering/RepositoryCreationRequest, I'm not sure if I understand what the exact pieces for RelEng and IT look like exactly.
What we need here is an L1 hg repository where we have the option of installing our hg hooks on. Additionally we'd like to ensure that the changesets pushed to this repo are not destroyed by a reset/etc. In the future we'd like to do some of the things mentioned in the thread so far to ensure the repo's performance as it's being used by more people, but that is not required at this stage. Also, we won't need to mirror this repo to git.
Now, on to answering your questions below.
Here are some open questions I have:
- is this staging-to-be-used-as-POC, or staging-to-work-out-operational-issues-before-production-deployment?
Hal's definitions:I'd say more of the latter. Except that I'm not sure what you mean by "operational issues". We're mostly interested in feedback on the code review tools and workflows at this stage, nothing else.
- how many devs will use the staging environment?
Part of Dave Camp's team. According to phonebook, there are ~30 people reporting to him, not sure how many of those are targeted for this experiment. CCing him.
- is there a planned duration?
No.
- what are the goals of the staging? Feature tests, UX tests, performance tests, ???
Testing our code review tools and workflows. We're not interested in any repository level performance tests for now.
- what level of support are you planning on needing? (set & forget; or frequent repository resets; or "on call"?)
Good to know -- we'll see if we can make hook deployment self serve (perhaps not immediately).Set and forget. We might of course need to do things like deploy newer versions of our hook to the repo, etc. I don't think we'll ever need a reset.
- is there a business requirement to host the Review Board repository in the same URL space as served by hg.m.o?
If you mean hosting it on hg.m.o, no. I'd like to have it hosted wherever is faster and easier.
- are there any special security or privacy issues with the contents of this repository?
No.
- do devs need to interact with this repository directly, or is all interaction via the review board tooling and UI? ssh only, or web view required?
Http tickles the poor performance parts of many headed repos. (http headers get large, which makes load balancing harder, etc...) If we can avoid the need for multiple web heads to serve devs, things will be simpler to operate.Developers will push to this repository through hg push. ssh access is obviously required for pushing. Web view is helpful but not required. But this is something that the ReviewBoard devs who read the public list should confirm -- I'm not sure how ReviewBoard accesses hg (it might be through web view).
Here are some assumptions I'm making -- I could be completely wrong on a number of them -- feel free to correct me. The goal is to get to agreement, not for me to have guessed accurately. :)
- there is only one repository instance needed in staging or production
Yes, we won't need a separate repository when we open this up to a broader audience.
- the repository is completely unstructured (i.e. it can be used for any code review, not just those that are "mozilla-central" based - multiple roots)
Then there are no multiple roots. (unrelated trees in the same repository implies multiple roots).It will only be used for mozilla-central based code reviews, not arbitrary other projects. Not sure what you mean by multiple roots.
- the staging environment will not have any production data in it. (i.e. no requirements for backups)
This will need some more discussion -- as you say there are "crowd sourced" solutions that will work for now, but also various requirements on location of data-to-be-backed-up for when it goes to production.We need to ensure the persistence of the data in the repository somehow. If this can be done by the usual Mozilla hosted backups (not sure what our existing practices for hg backups look like) then great! If that might add multiple weeks (or months) to the timeline here, I'd be perfectly happy with an externally hosted backup solution (which might just be a bunch of people keeping updated clones of this repo on their machines.)
- the staging environment would not be migrated to production - the production instances will be rebuilt with empty databases & repositories as applicable
yep - that follows from the clarification of purpose, which I wanted to tease out. check.That's not correct. We would definitely like to preserve the data in the system when moving this to a broader audience.
- any urls into the staging environment will not be preserved in production. (for sure, the host name will differ.)
Okay, this may take some planning. However, it sounds like it that can be a quick phase 2 to stabilize URLs. This most likely depends on exactly what the review board folks support in terms of old/new writable repositories.While changing the URLs won't be the end of the world, it's unnecessary pain for the users which I'd like to avoid if possible.
If this is a completely separate repository, with quite separate needs, it may make more sense to have it on it's own server, and not be tied to some of the constraints most of hg.m.o operates under. That's an example of what I'm hoping to learn from these questions to find an optimal solution.
Yes - at the moment, I don't see any business requirement to have this repository tied to the main server at all. My mental model is shifting to "the repo is just yet another database instance used by review board". IT runs multiple database servers for this purpose, we should consider running this as a completely separate instance, as long as we can define the flows needed (and I think we can).I don't know what those constraints are, so hopefully the above would make it obvious whether this is the case.
Hoping we can get you unblocked quickly,
--Hal
Thanks!
Ehsan