Re:Gitlab Epic Issue Relationships Deleted
by vesinisa on Wednesday December 15, 2021 @06:39AM
(#29564602)
Seems like they have it mostly resolved, the releationships were restored from a backup 3 hours prior to the incident, and they are working to restore the data for the 313 (sic.) items still affected: https://gitlab.com/gitlab-org/gitlab/-/issues/348547
Re:Gitlab Epic Issue Relationships Deleted
by vesinisa on Thursday December 16, 2021 @03:23AM
(#29576213)
Sorry - I meant "as cited", i.e. there were exactly 313 items still requiring attention (presumably number of links that were created between the last backup and the incident.) This is a very low number, bordering on something you could fix by hand or at least a small script.
Re:Gitlab Epic Issue Relationships Deleted
by raffraffraff on Wednesday December 15, 2021 @07:50AM
(#29565260)
Worst case in 2021 should be a daily full backup + transaction logs. That's enough to get you point in time recovery.
On AWS, EBS snapshots are incremental (I didn't know that until studying for AWS certification), so you could schedule a snapshot every 5 minutes if you wanted.
Looking at the timeline, I'm just gonna repeat something I said in another thread this week: it's easy to underestimate how long it takes to do basically anything with a few hundred GB of important data.
Re:Gitlab Epic Issue Relationships Deleted
by dspillett on Wednesday December 15, 2021 @08:16AM
(#29565471)
For a full backup of a huge DB a three-hour window is pretty small, but I doubt that is what is happening here.
A far more common setup is regular full backups, often daily though sometimes more/less frequent, with much smaller transaction log backups at high frequency, perhaps every 15 minutes, between. That way you lose at most what has happened since the last log backup, and you can restore to any point in time between the full backup and the last log backup. It takes more effort to restore as you need to first restore the full then restore (replay) the log backups in sequence until the point you care about.
Sometimes there is a third layer between: differential backups. These are usually much smaller than a full backup, while also smaller (and less faf/time to restore) than the log backups for the period they cover, but don't offer point-in-time recovery.
Re:Gitlab Epic Issue Relationships Deleted
by arcatek on Wednesday December 15, 2021 @08:22AM
(#29565531)
Out of curiosity, how do transaction logs handle things like created_at fields, or randomly generated UUID, which rely on contextual data? Is the server time/rng seed faked for each replayed transaction?
Re:Gitlab Epic Issue Relationships Deleted
by dspillett on Thursday December 16, 2021 @07:26AM
(#29577477)
The transaction log is everything that gets done, not how it is done, so it can be replayed reliably. How values that are random, time sensitive, or otherwise arbitrary, are derived during a transaction is not important. What is logged is the fact that the values x/y/z were recorded in row 123,456 which is in page 987,654,321¹ which means that when the log is replayed you end up with exactly the same state the original database was in at the point the log is run to.
[1] in fact it could just be logged at the page level, the granularity of the log structure will vary between systems, if logged at the row level it may be the case that the physical datafile after restore is not exactly the same but the data will still be “random” values & all.
Re:Gitlab Epic Issue Relationships Deleted
by dikei on Wednesday December 15, 2021 @09:03AM
(#29566048)
In most cases, transaction logs/write-ahead logs will contain the return value of non-determistic functions like created_at or random uuid, instead of the function call.
Re:Gitlab Epic Issue Relationships Deleted
by nefitty on Wednesday December 15, 2021 @06:42AM
(#29564627)
I was confused by the title. Apparently epics are a way to organize issues by themes across projects. GitHub doesn't have this concept, in case anyone else was wondering.
Re:Gitlab Epic Issue Relationships Deleted
by nefitty on Wednesday December 15, 2021 @09:41AM
(#29566534)
To add to the confusion of the agile term, the lay term and the company name, I know epics as some part of the React state-management library, Redux Observable...
Re:Gitlab Epic Issue Relationships Deleted
by Karellen on Wednesday December 15, 2021 @06:57AM
(#29564752)
Huh. While trying to figure out the reasoning behind the name used, TIL that "epic" has acquired a new meaning of "(computing) In software development, a large or extended user story."
Re:Gitlab Epic Issue Relationships Deleted
by tsimionescu on Wednesday December 15, 2021 @08:20AM
(#29565508)
The name is an extension of '[user] story' - in literature, an epic is a collection of related stories (as in, The Epic of Gilgamesh), so they decided to call a collection of User Stories an Epic.
Scroll down to "break issues into actionable tasks", and they have an example that's even labeled as an "Epic". They are definitely headed in the same direction as Gitlab.
This is actually what they did, apparently: https://gitlab.com/gitlab-org/gitlab/-/issues/348547#note_77...
On AWS, EBS snapshots are incremental (I didn't know that until studying for AWS certification), so you could schedule a snapshot every 5 minutes if you wanted.
Looking at the timeline, I'm just gonna repeat something I said in another thread this week: it's easy to underestimate how long it takes to do basically anything with a few hundred GB of important data.
Restoring a new database from the AWS snapshot and transaction logs was literally faster.
A far more common setup is regular full backups, often daily though sometimes more/less frequent, with much smaller transaction log backups at high frequency, perhaps every 15 minutes, between. That way you lose at most what has happened since the last log backup, and you can restore to any point in time between the full backup and the last log backup. It takes more effort to restore as you need to first restore the full then restore (replay) the log backups in sequence until the point you care about.
Sometimes there is a third layer between: differential backups. These are usually much smaller than a full backup, while also smaller (and less faf/time to restore) than the log backups for the period they cover, but don't offer point-in-time recovery.
[1] in fact it could just be logged at the page level, the granularity of the log structure will vary between systems, if logged at the row level it may be the case that the physical datafile after restore is not exactly the same but the data will still be “random” values & all.
https://docs.gitlab.com/ee/user/group/epics/
https://github.community/t/epics-github-issues/1430
You can also add them to GitHub via ZenHub and other such tools.
https://en.wiktionary.org/wiki/epic
?
Scroll down to "break issues into actionable tasks", and they have an example that's even labeled as an "Epic". They are definitely headed in the same direction as Gitlab.
I'm unsure as to whether that's a good thing or not.
1) https://github.blog/2021-06-23-introducing-new-github-issues...