|
|
|
|
|
by panarky
4183 days ago
|
|
Each event is processed individually so thousands of functions can run in parallel and performance remains consistently high regardless of the frequency of events. http://aws.amazon.com/lambda/ Now we're talking. If you can carve your application into small, independent tasks, Lambda can run thousands of them in parallel. This could be cost-effective if you have a large amount of data stored in small chunks in S3, and you need to query it or transform it sporadically. So instead of keeping terabytes of logs or transactions in Hadoop or Spark on hundreds of machines, keep the data in 100 MB chunks in S3. Then map-reduce with Lambda. Set up one web server to track chunks and tasks, have each Lambda instance get tasks from the server. You could effectively spin up thousands of cores for a few minutes and only pay for the minutes you use. |
|
It's suitable for flinging a map-reduce job in response to some event, but I wouldn't try to jam a map-reduce job into those constraints. I mean, sure, yeah, theoretically possible, but really the wrong way to do it. If you're doing a task that even takes a second or two in Lambda you're coming perilously close to being less than an order of magnitude from a hard cutoff, which isn't a great plan in the public cloud. You really ought to be targeting getting in and out of Lambda much faster than that, and anything that needs to be longer being a process triggered in another more permanent instance.