git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Mercurial on BigTable

From
Scott Chacon <schacon@gmail.com>
Date
Jun 10, 2009, 19:15 UTC
Message-ID
<d411cc4a0906101215t313b2037k713aa1ce974c30cc@mail.gmail.com>
Has anyone watched this yet?
http://code.google.com/events/io/sessions/MercurialBigTable.html

It's kind of interesting - a Googler talks about getting Mercurial running on BigTable. What fascinates me is that if I'm not horribly mistaken, it seems like they just threw out the revlog format entirely and just store the data in a key-value store as sort of a Git-like content addressable filesystem. I had thought they were taking advantage of the revlog structure somehow, but it appears like they basically just changed the underlying data format to be much more like Git and rewrote ah Hg speaking server on top of that. They even explicitly store the head values like refs instead of reading childless nodes out of the revlog, which is what I thought Hg did.

Does anyone know how they do the graph walking efficiently with this structure? He mentioned it was about half as fast as native Hg, but that seemed to be acceptable. Curious if anyone had any thoughts or information on this. Shawn, are there technical reasons why this works well the way they're doing it for Hg but would not for Git (like in the repo MINA based server)? It looks like the data structure and protocol exchange are incredibly similar after they threw away all the revlog stuff. Or is it just that they're fine with the speed loss and the Android project would not be?

Scott
Next: Sverre Rabbelier
Message 1 of 8 in “Mercurial on BigTable”
  1. Scott ChaconJun 10, 2009
  2. Sverre RabbelierJun 10, 2009
  3. Andreas EricssonJun 11, 2009
  4. Jakub NarebskiJun 11, 2009
  5. Shawn O. PearceJun 12, 2009
  6. Jakub NarebskiJun 12, 2009
  7. Sitaram ChamartyJun 11, 2009
  8. Shawn O. PearceJun 12, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.