Scaling is a strange beast.
The map calculation involves a lot of queries to determine the cell color based on the available slots in the shelves so I think that faster hardware and a separate DB server should allow to scale without problems. Keep in mind that my DB (mysql) and Servoy server are both running on a quite old machine (Pentium3 2x1000), using two separate server like Pentium4 or whatever should allow a lot more speed in this kind of process.
To give you an idea these are the queries needed to build the map on my development machine (Dual PPC G5 2000mhz, servoy developer, mysql 4.1.14), the whole process took less than 4 seconds:
Total Time (mm:ss:ms) Count Avg Time (mm:ss:ms) SQL Statement
00:01:371 1373 00:00:000 select bancali.bancaliid, bancali.id_ubicazione, bancali.data_creazione from bancali where bancali.id_ubicazione = ? order by bancali.bancaliid
00:00:687 242 00:00:002 select ubicazione.ubicazioneid from ubicazione where (ubicazione.settore = ? and ubicazione.fila = ? ) order by ubicazione.ubicazioneid
00:00:085 74 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?,?,?,?)
00:00:029 22 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?,?,?)
00:00:027 25 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?)
00:00:027 19 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?,?,?,?,?,?,?)
00:00:006 5 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
00:00:003 2 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)
00:00:002 1 00:00:002 select sg.group_id,sg.group_name from servoy_groups sg,servoy_user_groups sug where sg.group_id = sug.group_id and sug.user_id = ? order by sg.group_name
00:00:002 2 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?)
00:00:002 1 00:00:002 select ubicazione.ubicazioneid from ubicazione order by ubicazione.ubicazioneid
00:00:001 1 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?)
00:00:001 2 00:00:000 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?)
00:00:001 1 00:00:001 select ubicazione.settore, ubicazione.ubicazioneid, ubicazione.ubicazione, ubicazione.slot, ubicazione.fila, ubicazione.livello from ubicazione where ubicazione.ubicazioneid in (?,?,?,?,?)