About the Servers

From F-List Wiki
Jump to: navigation, search

There has been a great deal of speculation about how the website and chatserver are constructed and what information needs to be passed between parts of the system at which times. This page is meant to serve as a reference for the most basic of that information.


Website Machine

Contains the following on four disks:

  • (d1) The database server
    • Is it text? It's in here.
  • (d2) The website's dynamic content server (as www.f-list.net)
    • Any page with which a user can interact
  • (d2)The site search daemon
  • (d3) The static content server (as static.f-list.net)
    • User images and avatars
    • Layout images
    • Javascript
    • CSS
  • (d4) Note storage

Chat Machine

Contains the following on one disk:

  • The chat daemon (as chat.f-list.net)
  • The flash policy server (as chat.f-list.net)
  • The chat stats collector (as chat.f-list.net:9002/stats/)

Communication Paths

Realtime Bridge

www.f-list.net -> chat.f-list.net

This bridge provides message and note notifications in the chat.

Users Online in Chat

chat.f-list.net -> www.f-list.net

The chatserver passes the list of online characters to the webserver, both to be displayed on the front page and to show the 'online now' badge on character profiles.

Chat Stats

f-list.net -> chat.f-list.net

The stats script polls f-list.net every fifteen seconds to retrieve the number of users currently logged in. The list of online users is maintained as a set, and people are added and removed from it as they join and leave the chat server. The list deleted and fully reloaded every five minutes to prevent the list from creeping out of date when connection or software issues occur. This accounts for the dips that sometimes occur in the stats graphs that last for ~30 seconds where the polling overlaps with the list rebuild.

Chat Login Tickets

www.f-list.net -> chat.f-list.net -> www.f-list.net

First, when the client is opened, the website ensures that you are still logged in, and tells the chat client to load and display your characters. Then, you select a character and attempt to enter the chat, which sends another ticket back to the webserver, ensuring that the information provided is kosher. A response ticket is then returned to the chatserver, and if the information checked out, you should be logged in to chat.

This is typically the part that breaks. When chat.f-list.net has connection issues, the ticket creation process overloads the disk on www.f-list.net as hundreds of people request new ones. When validation is attempted by chat.f-list.net the tickets time out, because www.f-list.net is overloaded and unable to keep up with the pace of ticket validation and creation. There are only thirty slots in the login queue, at this time, because that is how many tickets www.f-list.net can handle, before the clients start to time out during the verification process.