For your table-lookup you have ARG (9 bytes) and DESC (13 bytes starting from position 13). I think you MASTER is 80 bytes long.
If you just extract the ARG and DESC data to a new file, then you will be only storing 22 bytes for each record, nearly a 75% saving which might allow for your doubling in number of entries in the table - it depends whether it is space or entries which is being exceeded (I don't know).
This "cut down" could be done externally to the program, or as an earliery JOB in the program. If you do it in the program, try making it a VIRTUAL file (I always used VIRTUAL for tables and only included the needed data, but never had any tables anywhere near this size).
You could make the "cut down" a VSAM KSDS and replace the table look-up, as I said before. If your MASTER is going to continue to grow, and if there is some immovable limit to do with tables, then at some point you are going to hit the limit, so now might be a good time to avoid that. With a KSDS you'd be able to handle orders of magnitude more than 500,000 if necessary.
Same 22 byte data, 9 byte key, read with the key, if found, use it, if not found, do whatever you are supposed to do.
I don't understand, if you have only 80 bytes, what is on the "MASTER" file.