I am wondering (since I am currently looking at the “encrypted notes dapp”) what is the biggest possible “safe” storage on a single canister? Is it 2GB? Since, I am guessing if the top limit is 4GB and we need to copy over data to stable variables in pre-upgrade process, that would actually double our used up storage during that process. Ie: if we have 1.9 GB stored already and canister is in the process of “copying” data from our vars to stable vars it would, while in that process be at a top limit of 3.8 GB (just like when using our regular local storage when copying over files - we need to have the double amount of space as the file is only moved and removed from it’s initial location after it has already been copied)? This really seems like a very low amount…
2GB would mean creating so many new canisters with the same code if we have a dapp that requires a lot of space, then storing references to the principals of those deployed canisters so we know which canisters hold data we need, but also, if there are so many of the “expansion” canisters deployed, even canister holding string values of references to those canisters so it knows where to read data from would pile up and potentially have to be expanded into a new canister and it would become a huge mess. Or am I missing something? How would you take care of an issue when you know there is going to be a lot of data needed to be stored and a lot of canisters deployed to accommodate for the storage needs ?