Need inputs on optimising web service calls from Perl -
current implementation- divide original file files equal number of servers. ensure each server picks 1 file processing. each server splits file 90 buckets. use forkmanager fork 90 processes, each operating on bucket. child processes make api calls. merge output of child processes. merge output of each server.
stats- size of content downloaded using api call 40kb. on 2 servers, above process 225k user file runs in 15 minutes. aim finish 10 million file in 30 minutes. (hope doesn't sound absurd!)
i contemplated using berkeleydb but, couldn't find how convert berkeleydb file normal ascii file.
this sounds one-time operation me. although don't understand 30 minute limit, have few suggestions know experience.
first of all, said in comment, bottleneck not reading data files. not writing results harddrive. bottleneck in transfer between machines , remote machines. setup sounds sophisticated, might not in situation.
if hitting webservice, running service. there servers can handle ammount of load. have brought down dev environment servers of big logistics company small load test ran @ night. often, these things equipped long-term load, not short, heavy load.
since talking each other through various protocols, web services or other apis, should consider talking people run service. if have business-relationship, easy. if not, try find way reach them , ask if service able handle many requests @ all. end them excluding permanently because admins looks tried ddos them.
i'd ask them if send them files (or excerpt of data, cut down relevant processing) can operations in batch on side. way, remove load processing web requests, , time takes these requests.
Comments
Post a Comment