Estimation of appropriate innodb buffer pool size
Bad!  The innodb_buffer_pool_size should never be set bigger than the amount of RAM you have.  An general rule is to set it to 70% of available RAM.  For 128GB of RAM, 100G is probably fine, assuming you don't have a lot of other applications running on it.

The buffer_pool is a cache.  If the data that you actively use is only 20G, then about 20G will work fine, almost as good as 100G.  And you don't need to increase your RAM.

If you are repeatedly reading all of your 307G of data and indexes, then you do need 350GB of RAM.  But probably you could make some simple changes to avoid such repeated reading, thereby getting down to a civilized "working set", such as 20G.  (No, there is no simple way to estimate the "working set size".)

Bottom line:  Don't get more RAM.  Set the buffer_pool to 100G.  Fix any slow queries.

More discussion.