Valhalla Survey & Stratagey
By The Numbers
Valhalla is a big server. Created in 2017, it contains 22 text channels regularly used for chatting (not including announcement and rule channels) as of 06/23.
The largest channel, #berk, contains ~520,000 messages (06/23). Most other channels are considerably smaller, containing about ~50,000 each (06/23). Note that these numbers include all messages, including those containing only media.
A large number of the messages in Valhalla contain media uploaded to the Discord CDN. According to search, there are ~10,000 messages in #random_gifs_photos and ~12,000 messages in #berk that contain at least one image (06/23).
Assuming that each media message is 2MB in size, which is 1/2 the upload limit for free users, storing these media messages would require 44GB.
Possible Scenarios
Hard Cut
The petals must fall
This is the worst-case scenario, in which Valhalla is banned, destroyed, or Discord takes significant adverse action against us in particular. If this were to occur, we would need to do a few things to migrate.
- Grab what we can - Screenshots, copy paste, whatever. Grab all the significant moments that we can, while we can.
- Inform the users - If Valhalla is dead, we will need a way to tell the survivors where to go. There isn’t really a great way to inform everyone at the moment. That’s a problem.
- Build anew - Building a new platform will take time. There will need to be a temporary platform, at least for the techies, to communicate and build the new Berk. This would probably be something simple, like IRC.
<=3 Day Migration
So what are you going to do about it?
In a time limited situation, it will likely be necessary for us to download content and store it with metadata in an intermediary location before standing up the replacement. A central SQL database hosted somewhere would likely be our best bet.
Here’s an example schema for an intermediary PostgreSQL database:
CREATE TABLE valhalla (
messageid varchar PRIMARY KEY, # The discord message ID, which should be unique
msgdate timestamp,
content text,
channel varchar,
sender varchar, # The string name of the sender
senderid varchar # The UID of the sender
);
In this scenario, it is unlikely that media content or all message content will be preserved. It also may be a good idea to limit archival initially to a certain duration, such as the last 4 years, or omit some channels entirely. In an attempt to access channel priorities, I’ve created channel burndown list below with notes.
Step by step:
- Notify users and collect emails
- Build intermediary database
- Freeze all channels, minus one or so
- Dump content according to burndown list until server closure
- Build New Berk
- Add content and users
1 Week+ Migration
Not my snappiest comeback
This is a more likely, and simplier scenario that assumes about a week timeline to perform the migration. This scenario attempts to migrate while using the current Valhalla for coordination and communication.
In this situation, we could likely stand up the new solution, and migrate messages directly to New Berk as they are archived. This would eliminate the need for an intermediary database like in the 3 day migration.
Step by step:
- Notify users and collect emails
- Stand up New Berk
- Dump content according to burndown into New Berk
- Freeze archived channels
- Move users
Channel Burndown
In the case of a restricted-time migration, it might be necessary to omit some channels from archival. This page contains a table that attempt to prioritize channels in order of importance with some notes.
This table is only my oppinion, and may change.
- Berk - The MAIN channel. If we had to take only one, it would be this one. It is the largest by far.
- httyd-general - Our main fandom channel. Lots of important lore in here
- fandom-meetup-plans - Small channel, but lots of important meetup messages and photos.
- dragons_edge - Secondary chat channel. Important, but less so. Smaller.
- media_spoilers - Contains httyd lore for movie releases and things
- nerds - Lots of good techie discussions. May be useful for reference
- art-and-stuff - Very nice to have if media can be saved. Not much use without media. Lots of original art.
- non-httyd-general - Other fandoms lore chat
- book_spoilers - New and small channel, has some fandom discussion
- ebay - Good discussion and links to merch, more useful with media.
- nsfw - Lots of funny discussion in here, but not super important
- games - Some game discussion, meh
- language-talks - Small discussion channel
- tumblrs-and-social-media - Small channel, mostly links
- music - Some old music discussion, mostly links nowadays
- random-gifs-photos - Mostly media, lots of memes and such
- random_videos - Mostly YouTube links
- voice-chat-live - Messages, but mostly nonsense from VCs that we don’t understand or remember anymore
- fandom-dates - Birthday messages
- emotional_support - This is complicated. A lot of users may not want this moved, and I don’t blame them. As a result, not high priority
- tales-of-xadia - Dead, small channel
- nsfw-spoilers - Dead channel
- Hidden and mod channels - No idea what is in these
- Archived channels - Do we even look at these now? Some lore importance