Live data from Hacker News

XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

micahlerner.com

21–30 of 79 posts

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#21
post #15

> To reduce latency, a common approach is to keep a VM idle for 10 minutes or longer after a function invocation to allow for potential reuse [45]. In contrast, if a FaaS platform is optimized for hardware utilization and throughput, this waiting time should be reduced by a factor of 10 or more, because starting a VM consumes significantly fewer resources than having a VM idle for 10 minutes This seems somewhat surpr…

Are we talking about VMs (e.g. K8s or something) or JVMs (or other equiv garbage-collected runtimes for other languages with hot-code-loading)?

I'm imagining that sharing actual JVMs is a massive saving over each function getting its own VM to launch a JVM in?

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#23
post #15

> To reduce latency, a common approach is to keep a VM idle for 10 minutes or longer after a function invocation to allow for potential reuse [45]. In contrast, if a FaaS platform is optimized for hardware utilization and throughput, this waiting time should be reduced by a factor of 10 or more, because starting a VM consumes significantly fewer resources than having a VM idle for 10 minutes This seems somewhat surpr…

RAM, disk. Functions are often written in high level JITd languages, they may need to load large reference datasets from disk, they may require a lot of code to be transferred over the network before they can begin running, and because nobody trusts the security of the Linux kernel you also have to pay the VM startup time. An idle process on Linux isn't much different: it consumes RAM, disk and a kernel. If you trust…

> and because nobody trusts the security of the Linux kernel

Seriously? I imagine all the infra worldwide is run on FaaS and short-lived VMs, right?

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#25

Earlier quoted context omitted.

FaaS could be sharing your hardware at a function level inside the JVMs or whatever you are running, rather than at the VM or hypervisor level. You can (potentially) get much better elasticity and utilisation?

Isn't that just functions?

Isn't FaaS just wrapping around functions and their deployment?

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#26
post #8

Earlier quoted context omitted.

What would the point of self-hosted FaaS be? They lose their whole value proposition when you're paying for dedicated servers or when you don't have large numbers of servers.

FaaS could be sharing your hardware at a function level inside the JVMs or whatever you are running, rather than at the VM or hypervisor level. You can (potentially) get much better elasticity and utilisation?

Software already shares hardware at the function level. You have far more visibility and control over this within your program than you do when you add an unnecessary layer of abstraction like FaaS.

Think more about the name: Function as a Service.

Why do you need to serve yourself your own functions? It makes sense only in the context of a cloud provider that's trying to solve the problem of underutilized resources used across many customers.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#27
post #15

> To reduce latency, a common approach is to keep a VM idle for 10 minutes or longer after a function invocation to allow for potential reuse [45]. In contrast, if a FaaS platform is optimized for hardware utilization and throughput, this waiting time should be reduced by a factor of 10 or more, because starting a VM consumes significantly fewer resources than having a VM idle for 10 minutes This seems somewhat surpr…

I think it means reserving resources. When resources are reserved, they cannot be used for anything else (even if you're not actually using that reservation) so one can also say that those resources are "consumed".

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#28

It's interesting to see the heavily growing demand graph. Is that because people want to adopt it, or is it being mandated or encouraged as "best practice" etc? I'm not implying that true organic demand wouldn't exist because it definitely might, but I have seen in practice where leadership encourages or even mandates usage of FaaS, so the numbers go up even though on a neutral field people wouldn't necessarily choos…

I think one of the core arguments for larger organisations is that incompetence can not ruin everything.

Firebase is a good case study for this: They heavily argue using Firestore and server less functions. If you succeed solving your problems using their offerings, then they will also guarantee that things run well and scale well.

Firestore, as when I used it last, did not support all the operations that can make traditional DBMS go in their knees. You have document level isolation, ie. no joins or aggregating functions (like count or sum across documents). These functions need to be implemented in another way using aggregators or indices.

So I agree that development is more fun when developing on proper runtimes using fully fledged databases. But when you manage several thousands of developers on all levels, then I think it makes sense to impose another architecture.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#29

It's interesting to see the heavily growing demand graph. Is that because people want to adopt it, or is it being mandated or encouraged as "best practice" etc? I'm not implying that true organic demand wouldn't exist because it definitely might, but I have seen in practice where leadership encourages or even mandates usage of FaaS, so the numbers go up even though on a neutral field people wouldn't necessarily choos…

Most teams at meta are free to choose which internal tools to use. We evaluated the maturity, performance, staffing levels, roadmap when choosing tools.

Re: XFaaS: Hyperscale and Low Cost Serverless Functions at Meta

#30
post #15

> To reduce latency, a common approach is to keep a VM idle for 10 minutes or longer after a function invocation to allow for potential reuse [45]. In contrast, if a FaaS platform is optimized for hardware utilization and throughput, this waiting time should be reduced by a factor of 10 or more, because starting a VM consumes significantly fewer resources than having a VM idle for 10 minutes This seems somewhat surpr…

Memory is used.
Post reply on HN