Changes to the service

iLxlo_
iLxlo_
Aug 11 · 5 min read
Image for post
Image for post

For a few months we have been able to verify that the growth of Filo has been increasing progressively, this has resulted in an increase in the consumption of resources (CPU, RAM).

The Filo’s Development Team has been investigating the situation and testing possible solutions to fix the problem, however none have worked.

We are currently making use of the tools that Discord provides us to avoid receiving events that we do not need. This helped us a lot, but it is not enough to correct the problem.

One of the final solutions to correct this problem is the semi-elimination of the member counter module.
What does semi-elimination of the member counter module mean?
This means that we are not going to eliminate the module completely, we will eliminate part of the functions of said module, parts that influence performance. The functions to be retired are: human counter and bot counter.

Discord currently does not offer any information about the number of humans/bots on a server. We obtain that information because we cache all users of all guilds and with a formula we distinguish humans from bots.

Filo stores more than 900,000 users in its cache memory, this means tripling the usual consumption of Filo, since we could save 90% of the users we cache.

It should be noted that not only these functions will be affected, some commands such as server, members, randomuser will be affected.
Below you can see how this affects each command:

  • server. The human and bot counter will be removed from the command.
  • members. The command will be retired, it doesn’t really have any useful function now.
  • randomuser. The command will not work as expected. Only a random user that is stored in the cache memory will be chosen.

The levels module is another candidate to be deactivated due to performance problems. We did a pilot test on one of Filo’s shards collecting statistics on the messages per second received. We were able to observe that the amount was inordinate and this increases the resource consumption of the tiers database.
It is worth clarifying several aspects regarding the deactivation of this module, which are:

  • The deactivation of this module is temporary, in the future we will try to bring this system back with an optimization in the level database.
  • Some commands will be affected and therefore will have to be removed: rank, level, xp.

Finally we are going to talk about the ticket system. A few months ago we started collecting statistics about the commands executed. After a while we have been able to observe that the Support/Tickets category is the least used. This has motivated the Filo Development Team to deactivate this system.
Of course, several commands will be affected, which are: new, close.

All the changes described above will be applied on September 1, 2020, on that day a brief maintenance will be carried out.

We hope you understand the current situation.

Desde hace unos meses hemos podido comprobar que el crecimiento de Filo ha ido aumentando progresivamente, esto ha dado como consecuencia un aumento en el consumo de recursos (CPU, RAM).

El Equipo de Desarrollo de Filo ha estado investigando la situación y probando posibles soluciones para solucionar el problema, no obstante, ninguna ha dado resultado.

Actualmente estamos haciendo uso de las herramientas que Discord nos proporciona para evitar recibir eventos que no necesitamos. Esto nos ayudó bastante, pero, no es suficiente para corregir el problema.

Una de las soluciones finales para la corrección de este problema es la semi-eliminación del módulo contador de miembros.
¿Qué quiere decir semi-eliminación del módulo contador de miembros?
Esto quiere decir que no vamos a eliminar el módulo por completo, eliminaremos parte de las funciones de dicho módulo, partes que influyen en el rendimiento. Las funciones que se van a retirar son: contador de humanos y contador de bots.

Actualmente Discord no ofrece ningún tipo de información acerca de la cantidad de humanos/bots que hay en un servidor. Obtenemos esa información debido a que almacenamos en la memoria cache todos los usuarios de todos los gremios y con una fórmula distinguimos los humanos de los bots.

Filo almacena más de 900,000 usuarios en su memoria cache, esto supone triplicar el consumo habitual de Filo, ya que nos podríamos ahorrar un 90% de los usuarios que almacenamos en cache.

Cabe aclarar que no solo se va a ver afectado estas funciones, algunos comandos como el server, members, randomuser se verán afectados.
A continuación puedes ver como afecta esto a cada comando:

  • server. El contador de humanos y bots se retirará del comando.
  • members. El comando se retirará, realmente ahora no tiene ninguna función útil.
  • randomuser. El comando no funcionará como se espera. Únicamente se elegirá un usuario aleatorio que estén almacenados en la memoria cache.

El módulo de niveles es otro de los candidatos en ser desactivados por problemas de rendimiento. Hicimos una prueba piloto en uno de los shard de Filo recopilando estadísticas de los mensajes por segundo que se reciben. Pudimos observar que la cantidad era desmesurada y esto aumenta el consumo de recursos de la base de datos de niveles.
Cabe aclarar varios aspectos con respecto a la desactivación de este módulo, los cuáles son:

  • La desactivación de este módulo es temporal, en un futuro intentaremos traer de vuelta este sistema con una optimización en la base de datos de niveles.
  • Algunos comandos se verán afectados y por lo tanto tendrán que ser eliminados: rank, level, xp.

Por último vamos a hablar del sistema de tickets. Hace unos meses empezamos a recopilar estadísticas acerca de los comandos ejecutados. Después de un tiempo hemos podido observar que la categoría de Support/Tickets es la menos utilizada. Esto ha motivado al Equipo de Desarrollo de Filo desactivar este sistema.
Por supuesto varios comandos se van a ver afectados, los cuáles son: new, close.

Todos los cambios descritos anteriormente se verán aplicados el día 1 de Septiembre del 2020, dicho día se realizará un breve mantenimiento.

Esperamos que entiendan la situación actual.

Filo

iLxlo_

Written by

iLxlo_

Filo Developer | Otaku & Player | Student programming | Rainbow Six Siege player

Filo

Filo

Filo is a powerful multipurpose Discord bot. Customizable, multiple languages, report, logging, welcome and farewells, member counter, anti-invites, auto-mod, anti-evasion. +190 commands.

iLxlo_

Written by

iLxlo_

Filo Developer | Otaku & Player | Student programming | Rainbow Six Siege player

Filo

Filo

Filo is a powerful multipurpose Discord bot. Customizable, multiple languages, report, logging, welcome and farewells, member counter, anti-invites, auto-mod, anti-evasion. +190 commands.

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store