When using the standard getConfig methods from the Bukkit FileConfiguration API, my understanding is that the entire file is read at server start up, and all values are cached in memory. How does this affect memory usage if a plugin has a very large config file? My reason for asking is that I am considering storing UUID to Name mappings for a pre-1.7.5 plugin that I am converting to use UUID's, using SagaciousZed's ConfigAccessor class which I believe uses the same FileConfiguration and YamlConfiguration classes as the built-in version, but allows one to pass a filename instead of only accessing config.yml. If this plugin were to be used on a very large server with tens of thousands or even millions of users, would it try to cache all of the entries from the file in memory? It seems to me that this could potentially cause a server to run out of memory at some point. Again, the purpose is to create a flat file database with UUID as key and player name as value, so I can do name look ups of offline players from UUID, using bukkit versions prior to 1.7.5 that lack the player.GetName(UniqueID) method, without requiring an SQL data store. As I write this post, I'm beginning to believe that implementing this using Sqlite is probably the best course of action, so that whether the server owner has an SQL database server available or not is irrelevant. Still, I'd like to hear comments on how big is too big when it comes to using yaml files with the FileConfiguration API. Comments on better ways of doing UUID's with older server versions are also welcome.