WebAssembly Opportunity: Embeding V8 in RAMCloud Server for Extending Ultra-low Latency In-mem KVS

  • Global Moderator

    Adrian Colyer discusses an opportunity for WebAssembly in a new post on his fantastic blog "the morning paper"

    Original Post
    Source Research and Slides

    Quick overview:

    RAMCloud is an ultra-low latency key-value store combining DRAM and RDMA. The RAMCloud research group is looking to use use RAMCloud as a platform to build other higher-level services on top and have reached a conclusion that an embedded JavaScript engine might be the way to go: "with procedure invocation and database interactions 11.4-72x faster, and code only 2-10% slower than native even before considering WebAssembly, JavaScript looks promising."

    The authors also discuss the option of compiling procedures written in C++ to asm.js. “Asm.js code loads fast, runs fast, and it retains the isolation benefits of the JavaScript runtime.” A set of query benchmarks show that asm.js is within 2-10% of native code performance. WebAssembly is even faster than asm.js, and can also support Non-Web Embeddings.

    "Hosts of V8 can multiplex applications by switching between contexts, just as conventional protection is implemented in the OS as process context switches… A V8 context switch is just 8.7% of the cost of a conventional process context switch… V8 will allow more tenants, and it will allow more of them to be active at a time at a lower cost."

    The RAMCloud research group's stated goal is to embed V8 into the RAMCloud server; to develop a smart API for procedures that exposes rich, low-level database functionality; and to begin experimenting with realistic and large scale applications.

  • administrators

    @sc0ttwad3 Can you add more tags for this topic?

  • Global Moderator

    @admin I don't see a way of doing that. I'm getting "ERROR: You are only allowed to edit posts for 5 second(s) after posting"

  • administrators

    @sc0ttwad3 There is a input at the bottom of editor

  • administrators

    @sc0ttwad3 I've added you to the Moderators Group, fell free to post more topics and editing any of them. Cheers 🙂

  • Global Moderator

    @admin I only have access to that tag entry field (below a post in the editor) when initially creating a post. What I can't find is the way to edit my own post, as I'm always presented with the 5 sec. error when I try. Worst case, I could just delete the post, and re-create with appropriate tags?

  • administrators

    @sc0ttwad3 Oh, you have to select category before add tags.

  • Global Moderator

    @admin Permissions have now allowed me to add tags. Thx!

  • Interesting. I'm suspecting we are going to see a lot of non-web use of wasm pretty soon.
    I'm particularly interested in getting the AOT parts of LLVM, minus the optimization passes and other crufts, to compile wasm to machine code. A very slim wasm-to-machine-code backend.

    It will be interesting to see a Node-like env for wasm, but without the JIT compiler since wasm is AOT-compiled anyway unless one is considering dynamic loading of wasm modules.
    It would be spec-compliant and would allow all languages that target wasm to run on it.

    I was going to start a wasm-to-x86 compiler, but felt I would be duplicating efforts and I probably wont go very far with it.
    Projects like (https://github.com/WebAssembly/wasm-jit-prototype) and (https://github.com/kanaka/wac) are a nice step in the right direction.
    If anyone has found any similar work being done, please share a link to it.

A community for developers looking to put WebAssembly to use today. Come rock WebAssembly with us!

Looks like your connection to WebAssembly Rocks was lost, please wait while we try to reconnect.