)]}'
{
  "log": [
    {
      "commit": "a327b7dbeb2b0050f7ca9072047bf8ef2d282833",
      "tree": "e3f0ad7d56fcb7df7fc0d1caccbffaeda35f368a",
      "parents": [
        "bbf59a2174772c76e26daa5afeeb6f6c038088fb"
      ],
      "author": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sat Jan 31 19:26:49 2015 +0300"
      },
      "committer": {
        "name": "Alexander Shorin",
        "email": "kxepal@apache.org",
        "time": "Sat Jan 31 19:26:49 2015 +0300"
      },
      "message": "Remove useless eunit include\n"
    },
    {
      "commit": "bbf59a2174772c76e26daa5afeeb6f6c038088fb",
      "tree": "430f2c8065aefa6727fbda1616d589cbb25ca377",
      "parents": [
        "a853c32c5a3e5e353d169af7f4cf831f78d9ee1a"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 21 01:11:31 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Aug 21 02:35:56 2014 -0500"
      },
      "message": "Update to use couch_stats\n"
    },
    {
      "commit": "a853c32c5a3e5e353d169af7f4cf831f78d9ee1a",
      "tree": "3cba8a8bcdebcdeef3ec1adeec76c5ea982104d6",
      "parents": [
        "7d64200b19066fd07d993c1ad1af8d1c9bb87f21"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Aug 19 11:56:19 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Aug 19 11:56:32 2014 -0500"
      },
      "message": "Return ok for pattern matching in client code\n"
    },
    {
      "commit": "7d64200b19066fd07d993c1ad1af8d1c9bb87f21",
      "tree": "49215670a6b39b40b5693cd9aba39ee1e03a83ac",
      "parents": [
        "77dd2bed7cadcfaa686a0008361d6e057839a515"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 16:32:01 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 16:32:01 2014 -0500"
      },
      "message": "Replace twig with couch_log\n"
    },
    {
      "commit": "77dd2bed7cadcfaa686a0008361d6e057839a515",
      "tree": "f26f0b3e13f2a3cdc4e5ddd72e5fbcac547e9de6",
      "parents": [
        "6ba870119fcf92a42b60086fe557e2aff0598037"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:25:53 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:25:53 2014 -0500"
      },
      "message": "The couch_log functions are all two-arity\n"
    },
    {
      "commit": "6ba870119fcf92a42b60086fe557e2aff0598037",
      "tree": "8a164a083932cc9909ad5e1f5b6eee36af9ece6a",
      "parents": [
        "535941d94d3e2d05f5ec31d2ff8f65c4149cc1da"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:25:20 2014 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Sun Aug 17 15:25:20 2014 -0500"
      },
      "message": "Remove vestigal call to margaret\n\nWe\u0027ll re-add the metric when couch_stats is merged.\n"
    },
    {
      "commit": "535941d94d3e2d05f5ec31d2ff8f65c4149cc1da",
      "tree": "23b792cdcbd781cf7cf6fbaf9542138f8fda41e8",
      "parents": [
        "096f0cfb1a6f85880685b7b65d44f00a582436d3"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Jul 18 14:58:23 2014 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Aug 07 12:33:09 2014 +0100"
      },
      "message": "Allow for timeout message while waiting for sender\n\nIn 9c36c1b0 we fixed counting bug in the bufffer but introduced another\none. We started asserting that the timeout message can only arrive when\nthe sender is not nil, but in fact it can absolutely happen that the\nbuffer is asked to deliver a message while one is in flight. This causes\nthe rexi_buffer to crash. The fix is to simply restore the clause that\nignores the timeout message if the server is waiting for a sender to\nreturn.\n\nBugzID: 32669\n"
    },
    {
      "commit": "096f0cfb1a6f85880685b7b65d44f00a582436d3",
      "tree": "773e46033539337cc394673358688729f265e2b8",
      "parents": [
        "9a1bbd09334dc869d45eed9331cb61432f116ca5"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 26 19:49:30 2014 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:08:32 2014 +0100"
      },
      "message": "Fix error_limit \u003d 0, and make it the default\n\nSetting the error_limit to 0 would previously cause rexi_server to crash\non the next error because of an unhandled exception in a queue:drop/1.\nThis fixes that exception and makes a limit of 0 the default. Operators\ncan still raise the limit to capture errors in the future if we end up\nfinding that useful.\n\nBugzID: 30821\n"
    },
    {
      "commit": "9a1bbd09334dc869d45eed9331cb61432f116ca5",
      "tree": "cc7465de67e341e5b01df87afe744945b5e91148",
      "parents": [
        "455101492947939cb7767c6bd888baf2e33ad497"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Tue Jun 10 14:01:07 2014 +0100"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:08:25 2014 +0100"
      },
      "message": "Add max_count to state record\n"
    },
    {
      "commit": "455101492947939cb7767c6bd888baf2e33ad497",
      "tree": "d39aff25cc480acfcbaed730cab3c716dc3d360f",
      "parents": [
        "cd07cb8c04df1510253718df7f63d6783e3ec0a7"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 03 14:28:37 2014 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:08:14 2014 +0100"
      },
      "message": "Fix counting bug in buffer\n\nQuoting @davisp:\n\nThere\u0027s a bug in rexi_buffer that can lead to the counter in its state\nrunning negative. I noticed this on malort looking for memory usage. A\nquick reading of the code suggests its due to us getting a timeout\nmessage with an empty queue. Theoretically this could happen if we\u0027ve\nexceeded the MAX_MEMORY threshold when sending a message or even with\njust grabbing the buffered count when its idle.\n\nBugzID: 28049\n"
    },
    {
      "commit": "cd07cb8c04df1510253718df7f63d6783e3ec0a7",
      "tree": "e0b58093a0d4ccb30fd2d5d5eeb876d75af95001",
      "parents": [
        "23cda378322851e8d09c850510ed75119cc83adf"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Jun 03 14:25:59 2014 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:08:01 2014 +0100"
      },
      "message": "Configure buffer limit by message count\n\nThis allows an operator to decide how large the buffers should be. It\nalso provides an escape valve to clear the buffer entirely.\n"
    },
    {
      "commit": "23cda378322851e8d09c850510ed75119cc83adf",
      "tree": "1eed86b6bb6931ddb1ef59c432c54e72e850f4f8",
      "parents": [
        "e13e16f6a0b12985ae95b9fc220321f25a078f8a"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 31 02:55:57 2014 -0600"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:06:43 2014 +0100"
      },
      "message": "Slight style tweaks to rexi_buffer hibernation\n\nAvoid using a possibly misleading variable name by not naming it.\nAlternatively, this is not the variable name you are looking for.\n\nBugzId: 27672\n"
    },
    {
      "commit": "e13e16f6a0b12985ae95b9fc220321f25a078f8a",
      "tree": "133c0a8b25677585984ad62ba39e6589e684a2a2",
      "parents": [
        "e271ae4666d908a8cb4b33002b46f9da0f3611e6"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 30 22:03:09 2014 -0600"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:06:30 2014 +0100"
      },
      "message": "Hibernate rexi_buffer when becoming idle\n\nThe rexi_buffer gen_server can hold onto quite a bit of RAM during idle\noperation. This just checks when we\u0027re going back to the idle state and\nhibernates until the next message arrives. This ensures that we run\ngarbage collection before sitting idle.\n\nBugzId: 27672\n"
    },
    {
      "commit": "e271ae4666d908a8cb4b33002b46f9da0f3611e6",
      "tree": "da12ae7f8996420e6908b022221295365b904167",
      "parents": [
        "f9380551e3bedf4e32842eaca77435206424b1be"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jan 30 21:31:11 2014 -0600"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:06:14 2014 +0100"
      },
      "message": "Removed upgrade statement in rexi:kill/2\n\nRemoving cruft we no longer need that was sending an extra useless\nmessage.\n\nBugzId: 27671\n"
    },
    {
      "commit": "f9380551e3bedf4e32842eaca77435206424b1be",
      "tree": "26956ab694f30ec03d89e4e0c828aa3173d82a3a",
      "parents": [
        "5b5899627db710cab64d1c724cc4ad4d7447b9d8"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Dec 12 11:36:05 2013 -0600"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:05:43 2014 +0100"
      },
      "message": "Revert \"Tag all replies to the coordinator\"\n\nNot all rexi communication happens through `rexi_utils:recv/6`. We\u0027ll\nneed to audit all of our apps to see anywhere that doesn\u0027t to update to\nthe new message format.\n\nThis reverts commit 2f967906730eedf5851752be06155fc49edd28a1.\n"
    },
    {
      "commit": "5b5899627db710cab64d1c724cc4ad4d7447b9d8",
      "tree": "d779f13f8752c286a0bbeba5bfcd16f7b530cad3",
      "parents": [
        "8f9d160c688af025179b0f61be972a00b33f5fad"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Dec 10 09:59:16 2013 -0600"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:04:13 2014 +0100"
      },
      "message": "Rename governor to buffer\n\nBuffer describes the behavior quite a bit better than governor.\n\nBugzId: 23717\nBugzId: 23718\n"
    },
    {
      "commit": "8f9d160c688af025179b0f61be972a00b33f5fad",
      "tree": "bb1e025579e84e8d3b17f2820fe648eb1722141e",
      "parents": [
        "664f0b8f3f42f43be87aa9687372bac96c7743a0"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Nov 22 15:58:02 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:03:23 2014 +0100"
      },
      "message": "Don\u0027t block the governor to send a message\n\nThis allows the governor to continue prioritizing incoming requests\ninstead of hanging for several seconds to try to connect to the remote\nnode.\n\nBugzID: 23717\nBugzID: 23718\n"
    },
    {
      "commit": "664f0b8f3f42f43be87aa9687372bac96c7743a0",
      "tree": "c0eb325a8e58b2984fb950d9856883f66fb33926",
      "parents": [
        "b2950830fc80514f1ac63a32e3da82df6284daed"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Oct 16 11:51:05 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:03:15 2014 +0100"
      },
      "message": "Try to start per-node servers immediately\n\nI can\u0027t think of a good reason not to do this.\n"
    },
    {
      "commit": "b2950830fc80514f1ac63a32e3da82df6284daed",
      "tree": "2f26283153891656f45778b1dc1d3c44cb93878c",
      "parents": [
        "ffb6dade31e6d131a1db582d376bd8f20c7d935e"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Oct 16 10:54:15 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:03:06 2014 +0100"
      },
      "message": "Remove gov_manager from supervision\n\nWe\u0027ll remove the module itself in a subsequent release.\n"
    },
    {
      "commit": "ffb6dade31e6d131a1db582d376bd8f20c7d935e",
      "tree": "31e60b3254c10b7b5479757974168e805bf10de0",
      "parents": [
        "1030906b85de7a398baf6363b9d3f6f21e93b257"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Oct 16 10:42:15 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:02:58 2014 +0100"
      },
      "message": "Start a supervised rexi_governor per node\n\nThis generalizes rexi_server_mon to start per-node versions of a server\nspecified by a child module.\n\nBugzID: 23717\nBugzID: 23718\n"
    },
    {
      "commit": "1030906b85de7a398baf6363b9d3f6f21e93b257",
      "tree": "6924e82ab85e1d1b7999556bbf9e00da842d4cb6",
      "parents": [
        "11b3859aae49c1a575cd70e401c9add9e578ca6b"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Oct 15 22:46:52 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 18:02:32 2014 +0100"
      },
      "message": "Rejigger the governor implementation\n\nPreviously we\u0027d spawn a number of processes to send messages to\n\u0027noconnect\u0027 / \u0027nosuspend\u0027 nodes.  Now we\u0027re buffering the messages that\nneed to be sent directly in each governor and sending them one at a\ntime.  This prevents the net_kernel from tipping over in the noconnect\ncase.  We also decide whether to drop messages based on memory\nconsumption in the node instead of process limits (since we\u0027re not\nspawning anymore).\n\nBugzID: 23717\nBugzID: 23718\n"
    },
    {
      "commit": "11b3859aae49c1a575cd70e401c9add9e578ca6b",
      "tree": "1af17bf168c1c6c64b2a3d384f488c0c1d67d7d8",
      "parents": [
        "cae29fe1926db6ec89645da63aee60766f14bd11"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Fri Nov 22 16:40:23 2013 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:58:42 2014 +0100"
      },
      "message": "Remove old code_change, set module version to 1\n"
    },
    {
      "commit": "cae29fe1926db6ec89645da63aee60766f14bd11",
      "tree": "d85bfcc40d061081090bbb21ee5d2e34131797a6",
      "parents": [
        "77339578ec3ad0f9f3ca261889e432d64eb793f4"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Oct 28 16:03:07 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:58:32 2014 +0100"
      },
      "message": "Implement new stream2 API\n\nThis embeds the stream_init/1 logic into the stream functions so that we\ndon\u0027t have to maintain the logic for inititalizing the stream for all\nclients.\n\nBugzId: 24635\n"
    },
    {
      "commit": "77339578ec3ad0f9f3ca261889e432d64eb793f4",
      "tree": "d9727ef748f3c289521ba6fbd8edce0cb3790117",
      "parents": [
        "945bfcac25007518f39cfbc6eb61d6d67773f598"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Oct 04 13:14:25 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:58:22 2014 +0100"
      },
      "message": "Allow callbacks to update their list of workers\n\nWe need this to be able to allow coordinators to replace nodes that are\nin maintenance mode.\n\nBugzId: 22729\n"
    },
    {
      "commit": "945bfcac25007518f39cfbc6eb61d6d67773f598",
      "tree": "1fe535ba44542eedafa976ee5b15485c304bea77",
      "parents": [
        "8f2c2956a80afce73e4193819bf6c973376a28cd"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Sep 06 15:04:00 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:58:14 2014 +0100"
      },
      "message": "Exit with timeout instead of returning an atom\n\nEvery function that called `rexi:stream/1` had to check the return value\nfor timeout and would then call `erlang:exit/1` if that atom were\nreturned. Rather than force every function to make this check this just\ncalls exit in `rexi:stream/1`. Its possible to catch this if a process\never happens to require it.\n\nBugzId: 22729\n"
    },
    {
      "commit": "8f2c2956a80afce73e4193819bf6c973376a28cd",
      "tree": "8e48dfb897656fb641195d6ecbdbb6beb53817ee",
      "parents": [
        "b28cbb76b9901af09c3d7b8c9b81df171cf75f85"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Aug 14 09:06:05 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:58:04 2014 +0100"
      },
      "message": "Implement new streaming APIs\n\nThis adds new functions that are used by coordinators and workers to\nnegotiate an RPC stream. A stream is simply any response that requires\nmultiple messages from the worker.\n\nBugzId: 22729\n"
    },
    {
      "commit": "b28cbb76b9901af09c3d7b8c9b81df171cf75f85",
      "tree": "8ca5b957f7a2812a51ae8c8d024a4a903732b183",
      "parents": [
        "c275f924aac24bd113fbf27eefd1b95281491c92"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Aug 16 14:40:31 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:54 2014 +0100"
      },
      "message": "Use \u0027$initial_call\u0027 instead of initial_call\n\nBugzID: 18742\n"
    },
    {
      "commit": "c275f924aac24bd113fbf27eefd1b95281491c92",
      "tree": "cad6712bc13c6b7e831665b30e4954bb4e43f442",
      "parents": [
        "4c994477d67352c5102ed773600089bd1037ab89"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 06 15:53:24 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:42 2014 +0100"
      },
      "message": "Tag all replies to the coordinator\n\nBugzID: 20204\n"
    },
    {
      "commit": "4c994477d67352c5102ed773600089bd1037ab89",
      "tree": "3e4aba20b3d311d0e0795667da9c9c2965083129",
      "parents": [
        "d1995a5b76f10b94edc4bf729ace583d228e9ffa"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 06 15:44:05 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:34 2014 +0100"
      },
      "message": "Handle rexi-tagged messages\n\nBugzID: 20204\n"
    },
    {
      "commit": "d1995a5b76f10b94edc4bf729ace583d228e9ffa",
      "tree": "8e4c3b021585dad2c10fb13bb327a5adb724ee2f",
      "parents": [
        "ad795911100283df6740647492373b3377fc27bf"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Apr 16 10:12:58 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:21 2014 +0100"
      },
      "message": "Start per-node servers regardless of feature flag\n\nPreviously rexi_server_mon would fail to start per-node servers on a\nnode where the use of those servers in rexi:cast messages was disabled\nby the \"server_per_node\" feature flag.  This mostly defeats the purpose\nof the feature flag, which is to ensure that we can start all the\nper-node servers before we try to use them.  Moreover, it cluttered up\nthe error logs because rexi_server_mon would crash after trying to\nexecute a `start_child` on rexi_server.\n\nThe fix is not DRY but it does the job well.\n\nBugzID: 18970\n"
    },
    {
      "commit": "ad795911100283df6740647492373b3377fc27bf",
      "tree": "35454129267814a89fc4bc65bde6ec4c73d7968a",
      "parents": [
        "752921bea5d166e1c2f7d4c09985fa974740842d"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Apr 11 08:10:20 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:10 2014 +0100"
      },
      "message": "Use the unadulterated node name in server name\n\nBugzID: 18215\n"
    },
    {
      "commit": "752921bea5d166e1c2f7d4c09985fa974740842d",
      "tree": "4939ea102eda0064688c7c72160e7dc2ee50fc54",
      "parents": [
        "837f0457a0e4e280fed6741af33e6a61c5fbf016"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Apr 11 08:02:41 2013 -0400"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:57:00 2014 +0100"
      },
      "message": "Add a temporary feature flag for server-per-node\n"
    },
    {
      "commit": "837f0457a0e4e280fed6741af33e6a61c5fbf016",
      "tree": "aebcdba55612782083e624be862f760fad7f3919",
      "parents": [
        "f5907c4b89456d3120a4d1e1080d9203e6522816"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Mar 22 15:07:53 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:56:26 2014 +0100"
      },
      "message": "[2/3] Start a rexi_server per remote node\n\nSwitch sending rexi messages to the rexi_server handling requests for\nthe local node. This replaces the use of the singleton rexi_server\nprocess with a rexi_server instance for each node.\n\nThe only slight gotchya in the switch is that we need to send kill\nmessages to both the per-node and singleton instances during the\ntransition because we can\u0027t tell which process may have generated the\njob. The extra kill message will be removed in the next commit.\n"
    },
    {
      "commit": "f5907c4b89456d3120a4d1e1080d9203e6522816",
      "tree": "6dfc1110a7651ffc2926487d6e31b74fa45c9abb",
      "parents": [
        "6cd3b812c0bb5c956d8264aae0ffdd94bbd52314"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Mar 18 22:51:29 2013 -0500"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Jul 23 17:56:17 2014 +0100"
      },
      "message": "[1/3] Start a rexi_server per remote node\n\nThis is part of a multi-release upgrade to switch to using a rexi_server\ninstance per remote node. The first commit introduces the new\nrexi_server instances, the second switches to using the new instances\nand the third will remove the singleton rexi_server. Each of these\ncommits should be in a separate release.\n\nThe new pattern introduced by this commit will start a \u0027rexi_server_%b\u0027\nprocess where the \u0027%b\u0027 is replaced by the `erlang:phash2(Node)` for\nwhich it will service requests. After the second commit is release each\nrexi generated message will be sent to the rexi_server instance on the\nremote node handling requests for the local node. The\n`rexi_utils:server_pid/1` function is used to generate the id of the\nremote server.\n"
    },
    {
      "commit": "6cd3b812c0bb5c956d8264aae0ffdd94bbd52314",
      "tree": "10339d9fa7376da9844fd68d88a30c283750a2f8",
      "parents": [
        "f37c5b5bd7e4986ff217e066026515af120a3fec"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:25:37 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Feb 12 23:25:37 2014 +0000"
      },
      "message": "Change API to function per level\n"
    },
    {
      "commit": "f37c5b5bd7e4986ff217e066026515af120a3fec",
      "tree": "91bf78a21c8a1c0fb27af347f97281654389e75a",
      "parents": [
        "00d03035ac063250744bb2bc8ee0e30e1fb301a9"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 20:12:50 2014 +0000"
      },
      "committer": {
        "name": "Robert Newson",
        "email": "robert.newson@cloudant.com",
        "time": "Wed Feb 12 20:12:50 2014 +0000"
      },
      "message": "Switch to couch_log\n"
    },
    {
      "commit": "00d03035ac063250744bb2bc8ee0e30e1fb301a9",
      "tree": "fca4e41534b5fa4d5d6540ed3a79c12abceca0a9",
      "parents": [
        "a0bd404860cfec8d232149229029c6bb0b051894"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Dec 19 18:16:58 2013 +0000"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:59:46 2014 -0800"
      },
      "message": "Remove references to margaret\n"
    },
    {
      "commit": "a0bd404860cfec8d232149229029c6bb0b051894",
      "tree": "0d2a5acf7f4a6030778cb5bf399f480cdf908021",
      "parents": [
        "f68f7246e0004d99b94cf7451dfc9b48f15dfe89"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Wed Dec 18 14:04:59 2013 +0000"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:59:41 2014 -0800"
      },
      "message": "Build with rebar\n"
    },
    {
      "commit": "f68f7246e0004d99b94cf7451dfc9b48f15dfe89",
      "tree": "f86e7f7368e232d5c269b8e76654bf11a3d30531",
      "parents": [
        "1d28932b8c9be09ea2985e998b2894d5c2cf7b6e"
      ],
      "author": {
        "name": "Robert Newson",
        "email": "rnewson@apache.org",
        "time": "Thu Jun 13 13:42:11 2013 +0100"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:59:35 2014 -0800"
      },
      "message": "Fix up copyright headers\n"
    },
    {
      "commit": "1d28932b8c9be09ea2985e998b2894d5c2cf7b6e",
      "tree": "ab6ea2807efe0c380f9ce6880f1cef23fd4ca785",
      "parents": [
        "6068dc9195353283eadb4bbb0839b04d7aacc303"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Mar 05 18:03:31 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:59:31 2014 -0800"
      },
      "message": "New build system for rexi\n"
    },
    {
      "commit": "6068dc9195353283eadb4bbb0839b04d7aacc303",
      "tree": "5eeca6ec90db28a4bc46383a0fd6d3a768cc85e7",
      "parents": [
        "9924f5960432b6b17e491b2e878193d2f21b5218"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Wed Mar 20 05:04:53 2013 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Fri Jan 17 13:59:26 2014 -0800"
      },
      "message": "Remove Cloudant build system remnants\n"
    },
    {
      "commit": "9924f5960432b6b17e491b2e878193d2f21b5218",
      "tree": "a051ebf5b4ee961804ce6ea070e30699b35eecc1",
      "parents": [
        "e56c018e63961f40e8e99367e619d6dd3d955f5f"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Feb 13 17:15:55 2013 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Feb 13 17:18:27 2013 -0500"
      },
      "message": "Allow sending to anonymous remote PIDs\n\nBugzID: 17296\n"
    },
    {
      "commit": "e56c018e63961f40e8e99367e619d6dd3d955f5f",
      "tree": "3f99e4dbceeac39488a2b8b5fbd68e93b3aebbc0",
      "parents": [
        "f51ce210f634261db8578354cff1c5b61d40e51b"
      ],
      "author": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Wed Feb 13 14:48:59 2013 -0500"
      },
      "committer": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Wed Feb 13 14:48:59 2013 -0500"
      },
      "message": "Change startup order in rexi_sup\n\nEnsures rexi_governor comes up before rexi_server. Also removed the custom appup\n\nBugzID:17287\n"
    },
    {
      "commit": "f51ce210f634261db8578354cff1c5b61d40e51b",
      "tree": "57dfc082cea7538cb25834813e62e4ec0ebe5097",
      "parents": [
        "3da27d54d62f5c09aab3760dfb3c298d78adbe76"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Feb 13 13:14:48 2013 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Feb 13 13:54:34 2013 -0500"
      },
      "message": "Add custom appup to start governor\n"
    },
    {
      "commit": "3da27d54d62f5c09aab3760dfb3c298d78adbe76",
      "tree": "8ce84bde7845e30192f9775756cf064e7498ae3b",
      "parents": [
        "d239e0c48b8833597028f0cc50996b5ccee58969",
        "7a81f9795cfe841b47dc852ae3abe8105ab60070"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Mon Feb 11 12:52:54 2013 -0800"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Mon Feb 11 12:52:54 2013 -0800"
      },
      "message": "Merge pull request #7 from cloudant/15608-too-much-spawning2\n\nInstall a governor to limit the amount of spawning we\u0027ll do to send messages to an unresponsive node.\r\n\r\nBugzID: 15608"
    },
    {
      "commit": "7a81f9795cfe841b47dc852ae3abe8105ab60070",
      "tree": "8ce84bde7845e30192f9775756cf064e7498ae3b",
      "parents": [
        "6703c36d3cd9e83ec3375e5dce04676fa84b0e67"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Feb 11 15:32:31 2013 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Feb 11 15:44:46 2013 -0500"
      },
      "message": "Pull settings from new config app\n\nBugzID: 15608\n"
    },
    {
      "commit": "6703c36d3cd9e83ec3375e5dce04676fa84b0e67",
      "tree": "40bde14721b0d2cfcefb232729f195344eed1376",
      "parents": [
        "b952dbbc73d884752ce62023d510c4e6c8b14865"
      ],
      "author": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Sat Dec 01 07:46:34 2012 -0500"
      },
      "committer": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Thu Feb 07 13:55:23 2013 -0500"
      },
      "message": "Manage Excessive amount of spawned pids\n\nrexi_utils:send uses the noconnect and nosuspend options in order to immediately\nreturn to the controller and spawns new processes to actually send the messages, assuming\nthe remote node is only temporarily down. In the nosuspend case these pids\ncan hang around indefinitely and build up.\n\nThis patch sends the messages that need to be sent from spawned processes to a new\ngen_server, rexi_manager, which manages a group of rexi_governors, one for each node.\nThe governor does the spawning and monitoring of the pids and keeps track of how many are sent.\nIf a node down message is received the manager sets a timer which when expired tells the appropriate\ngovernor to kill all the pids waiting on that node. A cap prevents spawning of processes above\na certain amount, after which messages are dropped on the floor.\n\nBugzID: 15608\n"
    },
    {
      "commit": "b952dbbc73d884752ce62023d510c4e6c8b14865",
      "tree": "ef069c2d86051f7ae2d58930faabe6eae928cb6b",
      "parents": [
        "171281fbdeda9e8246041191b1399e9218b4f8bc"
      ],
      "author": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Sat Dec 01 08:05:40 2012 -0500"
      },
      "committer": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Tue Jan 29 07:33:00 2013 -0500"
      },
      "message": "Ignore some files\n"
    },
    {
      "commit": "171281fbdeda9e8246041191b1399e9218b4f8bc",
      "tree": "a9a300e9de1545c6de28f97a915b4c736d7031e4",
      "parents": [
        "871e70277199a2fccdc868abe58f02588834b436"
      ],
      "author": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Sat Dec 01 07:45:42 2012 -0500"
      },
      "committer": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Tue Jan 29 07:33:00 2013 -0500"
      },
      "message": "Whitespace\n"
    },
    {
      "commit": "d239e0c48b8833597028f0cc50996b5ccee58969",
      "tree": "aa76584f45cac37214efcc246d0fa20f7336b262",
      "parents": [
        "8055f14304bc5505a7b49bfd6142ea53fcc00a17",
        "871e70277199a2fccdc868abe58f02588834b436"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jan 28 15:51:41 2013 -0800"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jan 28 15:51:41 2013 -0800"
      },
      "message": "Merge pull request #6 from cloudant/16883-smaller-send-buffer\n\nReduce stream message limit"
    },
    {
      "commit": "871e70277199a2fccdc868abe58f02588834b436",
      "tree": "aa76584f45cac37214efcc246d0fa20f7336b262",
      "parents": [
        "8055f14304bc5505a7b49bfd6142ea53fcc00a17"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jan 28 16:17:52 2013 -0600"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Mon Jan 28 16:17:52 2013 -0600"
      },
      "message": "Reduce stream message limit\n\nIts possible that a worker is starved out of running during the initial\nspin up of worker processes. When there\u0027s a high Q running its possible\nthat a few of the workers are prevented from sending messages back which\nends up causing significant latency as they wait for other workers to\nfill up their 100 message buffer and get swapped out.\n\nOnce they start sending though the view streams fine. While we don\u0027t\nunderstand why some workers behave like this a quick fix is to just\nreduce the size of the buffer so that we\u0027re not introducing as large of\na delay in the time to first byte.\n"
    },
    {
      "commit": "8055f14304bc5505a7b49bfd6142ea53fcc00a17",
      "tree": "978db9ead38eb08120072a1fb1412d692fb2df4d",
      "parents": [
        "c6b77781da5cf48917c3bb45901176d56725194f",
        "c3b0548d230fab77ac4267d8f11c527b62b78ee4"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Tue Jul 17 10:37:08 2012 -0700"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Tue Jul 17 10:37:08 2012 -0700"
      },
      "message": "Merge pull request #4 from cloudant/13311-improve-view-back-pressure\n\nImplement message stream interface\r\n\r\nBugzID: 13311\r\nBugzID: 14075"
    },
    {
      "commit": "c3b0548d230fab77ac4267d8f11c527b62b78ee4",
      "tree": "978db9ead38eb08120072a1fb1412d692fb2df4d",
      "parents": [
        "c6b77781da5cf48917c3bb45901176d56725194f"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Jun 12 18:29:01 2012 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Thu Jun 14 15:11:13 2012 -0500"
      },
      "message": "Implement message stream interface\n\nThis allows workers to stream messages to a coordinator process which is\nthen responsible for acking each message. When a worker reaches a\nconfigurable number of outstanding messages it will wait for acks before\ncontinuing to send messages.\n"
    },
    {
      "commit": "c6b77781da5cf48917c3bb45901176d56725194f",
      "tree": "0266bcd59f74e04a02076feb00c1ecb3fcfd6fcf",
      "parents": [
        "42df8e4bb4b0757258b733b6e53e4b3a342f9897"
      ],
      "author": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Apr 17 11:30:53 2012 -0500"
      },
      "committer": {
        "name": "Paul J. Davis",
        "email": "paul.joseph.davis@gmail.com",
        "time": "Tue Apr 17 11:32:36 2012 -0500"
      },
      "message": "Provide a rexi:cast that uses erlang:send/2\n\nSometimes we want to have workers avoid deferring their casts to a\ntemporary process. This can lead to message pileups on the distribution\ncontrol sockets.\n\nBugzID: 13469\n"
    },
    {
      "commit": "42df8e4bb4b0757258b733b6e53e4b3a342f9897",
      "tree": "ea994d7b68d7aa122e20495bf2e453474865eff9",
      "parents": [
        "260b5e98c1abe18d7d68d370f9ed693f3d8800be",
        "3679456c42fe9b2776cd9d47c21cbb15dd98d6c5"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Fri Feb 17 09:13:20 2012 -0800"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Fri Feb 17 09:13:20 2012 -0800"
      },
      "message": "Merge pull request #3 from cloudant/13298-remove-blocking-send"
    },
    {
      "commit": "3679456c42fe9b2776cd9d47c21cbb15dd98d6c5",
      "tree": "ea994d7b68d7aa122e20495bf2e453474865eff9",
      "parents": [
        "260b5e98c1abe18d7d68d370f9ed693f3d8800be"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Feb 17 09:05:30 2012 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Feb 17 09:05:30 2012 -0500"
      },
      "message": "Don\u0027t block rexi_server to send a message\n\nWhen a worker dies rexi_server needs to notify the remote client.  If\ncommunication to the remote node is impaired rexi_server may block for\nseveral seconds trying to send the rexi_EXIT message.\n\nFix is to use the same \u0027noconnect\u0027 and \u0027nosuspend\u0027 options in\nrexi_server that we use to submit jobs from a client.\n\nBugzID: 13298\n"
    },
    {
      "commit": "260b5e98c1abe18d7d68d370f9ed693f3d8800be",
      "tree": "381f3fa64f1bc0a21f53185e44971921701d198f",
      "parents": [
        "e36d452cfd7470039af6a71b6b04b4909809d295"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Oct 11 13:29:35 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Oct 11 13:29:35 2011 -0400"
      },
      "message": "Use a tagged version of twig\n"
    },
    {
      "commit": "e36d452cfd7470039af6a71b6b04b4909809d295",
      "tree": "5d4c5d4f9217a9fd03f28b1e213499b62c224292",
      "parents": [
        "99679e7078876a1e9adfcc91306bb8b7b9e92027"
      ],
      "author": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Sun Oct 09 10:40:28 2011 -0400"
      },
      "committer": {
        "name": "Bob Dionne",
        "email": "bob@cloudant.com",
        "time": "Sun Oct 09 10:40:28 2011 -0400"
      },
      "message": "Remove unused variables\n"
    },
    {
      "commit": "99679e7078876a1e9adfcc91306bb8b7b9e92027",
      "tree": "deb0d6a7edb36e7bc4bbbded763a2b61d2152272",
      "parents": [
        "6336d080a1de9b2b0de0c0786fa4232c85d2135f",
        "dfa9b9902f7aac1b69ae471092c192fcb2b4b42f"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 08 06:57:54 2011 -0700"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 08 06:57:54 2011 -0700"
      },
      "message": "Merge pull request #2 from cloudant/12713-fail-rexi_DOWN-faster\n\nBugzID: 12713"
    },
    {
      "commit": "dfa9b9902f7aac1b69ae471092c192fcb2b4b42f",
      "tree": "deb0d6a7edb36e7bc4bbbded763a2b61d2152272",
      "parents": [
        "eadec1f1215f893479952a4b4e8563d56153752c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 08 09:43:28 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 08 09:43:28 2011 -0400"
      },
      "message": "Remove an ancient debugging statement\n"
    },
    {
      "commit": "eadec1f1215f893479952a4b4e8563d56153752c",
      "tree": "2759421616e4f03110538e47677444b53e380c5f",
      "parents": [
        "97b651657e674d1f6946e896ca54bcec063d5a37"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Oct 07 20:39:13 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Oct 07 20:39:13 2011 -0400"
      },
      "message": "Keep the DOWN notifications DRY\n"
    },
    {
      "commit": "97b651657e674d1f6946e896ca54bcec063d5a37",
      "tree": "02d6391fd6b730ef6645d61d8ee3372f3fd3499b",
      "parents": [
        "6336d080a1de9b2b0de0c0786fa4232c85d2135f"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Oct 07 20:34:05 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Oct 07 20:34:05 2011 -0400"
      },
      "message": "Fail fast if asked to monitor process on down node\n\nBugzID: 12713\n"
    },
    {
      "commit": "6336d080a1de9b2b0de0c0786fa4232c85d2135f",
      "tree": "6098c7ad71380f2205dd0d6080a5e57c3fce542e",
      "parents": [
        "9b6a5cf123faaedbc6b5e3d756a933bc7ee36a74"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 27 16:03:31 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 27 16:05:35 2011 -0400"
      },
      "message": "Track client pid in ets table\n\nWe need the client pid in order to respond to clients when the worker\ncrashes.\n\nBugzID: 12344\n"
    },
    {
      "commit": "9b6a5cf123faaedbc6b5e3d756a933bc7ee36a74",
      "tree": "68aeb95f0322179eae2147f3134a28c4086ae94b",
      "parents": [
        "9fd372245ff550c34e988caf8f09722631f8ef76"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 27 15:16:50 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jun 27 15:16:50 2011 -0400"
      },
      "message": "Add an index keyed on client reference\n\nThis prevents table scans triggered by the kill handler from causing\nthe server to fall over under very high throughput.\n\nI also took the opportunity to refactor a bit and use #job records\nthroughout the server instead of raw tuples.\n\nBugzID: 12344\n"
    },
    {
      "commit": "9fd372245ff550c34e988caf8f09722631f8ef76",
      "tree": "4a608e0893406b5050b082a3300d45d6d75f7a36",
      "parents": [
        "dd0e3f998175a3ac9abc28f7ebc4602b666ff175"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Mar 29 20:25:04 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Mar 29 20:25:08 2011 -0400"
      },
      "message": "Use \u0027nosuspend\u0027 for all messages to remote nodes\n\nThe motivation for this change is to avoid suspending rexi clients\nwhen \u0027busy_dist_port\u0027 events occur.\n"
    },
    {
      "commit": "dd0e3f998175a3ac9abc28f7ebc4602b666ff175",
      "tree": "394c47ac18cecff9e83b0597a8352c8177a1f782",
      "parents": [
        "140cb8dd0dacda4c66b62f37b8ab0930c613d99c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Mar 29 17:01:23 2011 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Mar 29 17:01:23 2011 -0400"
      },
      "message": "Do not allow sender to be suspended for any reason\n"
    },
    {
      "commit": "140cb8dd0dacda4c66b62f37b8ab0930c613d99c",
      "tree": "678114d51b3f062541119237914ccc94c582404e",
      "parents": [
        "be510dc6e8ddc12e2fa34f13ae21cc0e8d299bbd"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Mar 10 12:26:27 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Mar 10 12:26:27 2011 -0500"
      },
      "message": "Always provide the nonce to the spawned process\n"
    },
    {
      "commit": "be510dc6e8ddc12e2fa34f13ae21cc0e8d299bbd",
      "tree": "5bf769a41b6893fcd9e1f5b3b7acbb6b1a0bd611",
      "parents": [
        "6c905cd5e520636557bdfb8d5836656b3c053b29"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Mar 10 10:42:16 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Mar 10 10:42:16 2011 -0500"
      },
      "message": "Small tweak to logging level\n"
    },
    {
      "commit": "6c905cd5e520636557bdfb8d5836656b3c053b29",
      "tree": "6fcb164191944fe0832aeed96b0c8a76dab01bc0",
      "parents": [
        "da20e4a3d8f6b278eae8c47aaf2fdfd4227a5dd3"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Mar 09 13:28:04 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Mar 09 14:36:59 2011 -0500"
      },
      "message": "Use twig for logging\n"
    },
    {
      "commit": "da20e4a3d8f6b278eae8c47aaf2fdfd4227a5dd3",
      "tree": "cd27ca77506680990277f46d067ca9ec15ff5e05",
      "parents": [
        "353b3c4fd04209679019ad23bf3599165327f889"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sun Feb 27 21:30:12 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sun Feb 27 21:33:41 2011 -0500"
      },
      "message": "Remove old appup\n"
    },
    {
      "commit": "353b3c4fd04209679019ad23bf3599165327f889",
      "tree": "912b5366189b142dfa9586034938576b592c058c",
      "parents": [
        "3389d4ad812a09c5daf143338bb9c4b5509a5922"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Feb 22 16:10:54 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Feb 22 16:10:54 2011 -0500"
      },
      "message": "Update rebar to 2cff499\n"
    },
    {
      "commit": "3389d4ad812a09c5daf143338bb9c4b5509a5922",
      "tree": "0079090765204b68f598318518af38021fb7d754",
      "parents": [
        "6e73a4d422e0494c72e07c1b903755e9caa9cb4b"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jan 31 15:08:13 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Jan 31 15:08:13 2011 -0500"
      },
      "message": "Ignore unknown cast messages\n\nThis server needs to be bulletproof.\n\nBugzID: 11762\n"
    },
    {
      "commit": "6e73a4d422e0494c72e07c1b903755e9caa9cb4b",
      "tree": "d07799dc9c86cd00cd1e30524933aa8667ca741b",
      "parents": [
        "c81297d606fc42e14d74be23b750029a00a0e106"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Wed Jan 26 14:51:40 2011 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam.kocoloski@gmail.com",
        "time": "Wed Jan 26 14:51:40 2011 -0500"
      },
      "message": "Update spec to include accumulator in timeout response\n\nBugzID: 11432\n"
    },
    {
      "commit": "c81297d606fc42e14d74be23b750029a00a0e106",
      "tree": "cc070c7581810fd9bd9e58ab9ed8584c103021dc",
      "parents": [
        "f463444c2801833b04d264ae5724e6f780d6b1e4"
      ],
      "author": {
        "name": "Robert Dionne",
        "email": "bob@cloudant.com",
        "time": "Tue Dec 21 14:08:43 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Dec 21 14:46:25 2010 -0500"
      },
      "message": "Include accumulator in timeout response, BugzID 11432\n"
    },
    {
      "commit": "f463444c2801833b04d264ae5724e6f780d6b1e4",
      "tree": "02c63b55471b22ce37604f126ebdddaa2298033b",
      "parents": [
        "14c2eb060e54a63655e54745b7fa42408ca0a532"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 13 13:54:12 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 13 13:54:12 2010 -0500"
      },
      "message": "Fix a minor problem in the README and add a couple of links\n"
    },
    {
      "commit": "14c2eb060e54a63655e54745b7fa42408ca0a532",
      "tree": "082efc7dffef9ce4febecfe3426445bf51268a47",
      "parents": [
        "8d70ebb0432dd7b161c73bdd0209e2848fa4ed52"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Dec 10 13:34:29 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Dec 10 13:34:29 2010 -0500"
      },
      "message": "Include the exception class in the #error{}\n"
    },
    {
      "commit": "8d70ebb0432dd7b161c73bdd0209e2848fa4ed52",
      "tree": "610660cd85c62be4021c1eaff52efd8ef22e50bb",
      "parents": [
        "cbf529f5237ea33c64ebc4c0c371191e96d76a43"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 09 17:35:30 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 09 17:39:40 2010 -0500"
      },
      "message": "Move #error{} definition to rexi.hrl\n"
    },
    {
      "commit": "cbf529f5237ea33c64ebc4c0c371191e96d76a43",
      "tree": "dce92837c6ac7a73dfb16dab4264af57b54d98c1",
      "parents": [
        "17d1b5bdebf37c64dfc8f5d31b01da7a43b3ac6b"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 22:38:47 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 09 17:39:15 2010 -0500"
      },
      "message": "Multi-faceted refactor of error logging\n\n* Store errors as instances of internal #error{} record\n* Move error buffer API calls to rexi.erl\n* Don\u0027t badmatch if an old process exits abnormally\n* Trivial rename of internal state fields\n"
    },
    {
      "commit": "17d1b5bdebf37c64dfc8f5d31b01da7a43b3ac6b",
      "tree": "b96643bdb54418019c35351d42162d4dc50daff8",
      "parents": [
        "75654aefab1ebf18aa9f66cfe304dc337b0ea8ef"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 22:38:35 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 06 22:24:22 2010 -0500"
      },
      "message": "code_change for new server state\n"
    },
    {
      "commit": "75654aefab1ebf18aa9f66cfe304dc337b0ea8ef",
      "tree": "80dfb00f358336b515fd5a341bf7a604090f27fa",
      "parents": [
        "6aaabddf7272cad81a35a801646dde1777eafef0"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 20:42:20 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 06 22:24:22 2010 -0500"
      },
      "message": "correct specification to allow undefined nonces\n"
    },
    {
      "commit": "6aaabddf7272cad81a35a801646dde1777eafef0",
      "tree": "6508b2b773573dd2fee4776531d59bd29f04de67",
      "parents": [
        "9b7477e8e4b194ac3535e0f7f3d6aeea70fa1f50"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 20:41:54 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 06 22:24:22 2010 -0500"
      },
      "message": "reduce code duplication in doit handler\n"
    },
    {
      "commit": "9b7477e8e4b194ac3535e0f7f3d6aeea70fa1f50",
      "tree": "375245dc05a1bc8577a815379d91c9f2a340b811",
      "parents": [
        "eef5f2cc5241c948d434d4d9e61a7c26cdfe09eb"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 20:41:08 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 06 22:24:22 2010 -0500"
      },
      "message": "keep init_p/2 around for a smoother upgrade\n"
    },
    {
      "commit": "eef5f2cc5241c948d434d4d9e61a7c26cdfe09eb",
      "tree": "9b9ce8717a1704db204603b814f163812d3d0c72",
      "parents": [
        "8f064edd2fff7e095e0b34f17ab3b274df09c0ff"
      ],
      "author": {
        "name": "Robert Dionne",
        "email": "bob@cloudant.com",
        "time": "Thu Nov 18 11:20:26 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Mon Dec 06 22:24:22 2010 -0500"
      },
      "message": "keep a circular buffer of errors cached in memory\n"
    },
    {
      "commit": "8f064edd2fff7e095e0b34f17ab3b274df09c0ff",
      "tree": "e13da8a2d9be632875eaad73baf8edab05b5ad58",
      "parents": [
        "22f5d6c333484ef07123f688f9b3fc712ebb1cb4"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 20:06:57 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 20:06:57 2010 -0500"
      },
      "message": "bundle rebar\n"
    },
    {
      "commit": "22f5d6c333484ef07123f688f9b3fc712ebb1cb4",
      "tree": "c95b1fed8780fc1d60d506daf4282ed91e7f9c7e",
      "parents": [
        "4fe3f1a72bcff22520be9f4e7fd4d983013867a1"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 14:47:15 2010 -0500"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Dec 02 16:39:50 2010 -0500"
      },
      "message": "set version to `git describe` during rebar compile\n"
    },
    {
      "commit": "4fe3f1a72bcff22520be9f4e7fd4d983013867a1",
      "tree": "878cea916b4da6ecf1e9181981180a27f7b4631a",
      "parents": [
        "140d280ae4cfdb316fb5524a3fc318e4366ffa42"
      ],
      "author": {
        "name": "Robert Dionne",
        "email": "bob@cloudant.com",
        "time": "Thu Nov 04 14:53:44 2010 -0400"
      },
      "committer": {
        "name": "Robert Dionne",
        "email": "bob@cloudant.com",
        "time": "Thu Nov 04 14:53:44 2010 -0400"
      },
      "message": "relax return type of recv\n"
    },
    {
      "commit": "140d280ae4cfdb316fb5524a3fc318e4366ffa42",
      "tree": "9d674a6b2adb87b73731b1c6fa095b19999759bc",
      "parents": [
        "6709bacae2bb0608442ed8908d0b1d0b1141ab34"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Oct 26 20:51:54 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Tue Oct 26 20:51:54 2010 -0400"
      },
      "message": "log abnormal rexi worker deaths\n"
    },
    {
      "commit": "6709bacae2bb0608442ed8908d0b1d0b1141ab34",
      "tree": "67ebb111c9f8036f1f31ea13340089ea49243586",
      "parents": [
        "7530b5c3dcbfa83b67a2d9148c0e21fecd11d399"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 23 12:35:12 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Oct 23 12:35:12 2010 -0400"
      },
      "message": "b25b5b was sloppy, erlang:send_after/3 does not wrap w/ ok\n\n"
    },
    {
      "commit": "7530b5c3dcbfa83b67a2d9148c0e21fecd11d399",
      "tree": "5f9a2456f8a8b9f6492c9435f4a6c6803511ee48",
      "parents": [
        "8f787c0c7d36a7eb0794f620ebd480638f627d64"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Oct 21 21:48:39 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Oct 21 21:48:39 2010 -0400"
      },
      "message": "use erlang:send_after/3 instead of timer version\n\nhttp://www.erlang.org/doc/efficiency_guide/commoncaveats.html#id52228\n"
    },
    {
      "commit": "8f787c0c7d36a7eb0794f620ebd480638f627d64",
      "tree": "9674fb59a029db195096bdc01220e0a98119f3ce",
      "parents": [
        "5fbe486afcb1fcb870cc3cb3f812380a63126bd5"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Oct 20 15:18:28 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Oct 20 15:18:28 2010 -0400"
      },
      "message": "let rebar manage the module lists\n\n"
    },
    {
      "commit": "5fbe486afcb1fcb870cc3cb3f812380a63126bd5",
      "tree": "a9dae34b02ca27d7c76ec8fa2ffbc4ce6b14dfa9",
      "parents": [
        "007d55bd38b60e2d7dca65eeaafdf02d733ae9a2"
      ],
      "author": {
        "name": "Brad Anderson",
        "email": "brad@sankatygroup.com",
        "time": "Fri Aug 27 21:44:22 2010 -0400"
      },
      "committer": {
        "name": "Brad Anderson",
        "email": "brad@sankatygroup.com",
        "time": "Fri Aug 27 21:44:22 2010 -0400"
      },
      "message": "add README.md back in for apps\n\n"
    },
    {
      "commit": "007d55bd38b60e2d7dca65eeaafdf02d733ae9a2",
      "tree": "b1ea0fa5ca7849f014de1df3be716dddf4b55845",
      "parents": [
        "cd563bee7d845d9bd2d969f2a7cb72f94bc5fc72"
      ],
      "author": {
        "name": "Brad Anderson",
        "email": "brad@cloudant.com",
        "time": "Tue Aug 17 22:04:15 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Aug 27 16:52:26 2010 -0400"
      },
      "message": "split some rexi utilities out from fabric\n\n"
    },
    {
      "commit": "cd563bee7d845d9bd2d969f2a7cb72f94bc5fc72",
      "tree": "1cea8a17781558e7dab8eccf8af6459800c25c81",
      "parents": [
        "85ae6ca690edad17ceb92b856623a0a599924c77"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Aug 27 15:43:44 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Aug 27 15:46:02 2010 -0400"
      },
      "message": "Apache 2 license, Cloudant copyright when appropriate\n\n"
    },
    {
      "commit": "85ae6ca690edad17ceb92b856623a0a599924c77",
      "tree": "a9c6c06a73a6608109f587193205cd7f6ff53232",
      "parents": [
        "234fcf93643671318e46fecddf793b2f119418f5"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 21:18:57 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 21:18:57 2010 -0400"
      },
      "message": "bah, missed a rename\n\n"
    },
    {
      "commit": "234fcf93643671318e46fecddf793b2f119418f5",
      "tree": "f7e5057984a83b21bb86e0c3fd3752dffcc0fcef",
      "parents": [
        "13a8075c07f148626049ac780f472898c4e2b76c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 21:13:48 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 21:13:48 2010 -0400"
      },
      "message": "kill was looking up the wrong ref(), so it never found anything\n\n"
    },
    {
      "commit": "13a8075c07f148626049ac780f472898c4e2b76c",
      "tree": "f6b59249a656157d3d7ad57516c5fc460e51ffb1",
      "parents": [
        "69d30df9ac93976743c3decf56c471508cb6f897"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 16:32:29 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Wed Jul 14 16:32:29 2010 -0400"
      },
      "message": "5 minute default timeout for sync_reply\n\n"
    },
    {
      "commit": "69d30df9ac93976743c3decf56c471508cb6f897",
      "tree": "db056a650d16e5d14b65c764233db559a1564839",
      "parents": [
        "6c1079a922a4d96d6dca101e1a7d68a93f5b8c7c"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Jul 10 15:50:17 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Sat Jul 10 15:50:17 2010 -0400"
      },
      "message": "thank you dialyzer\n\n"
    },
    {
      "commit": "6c1079a922a4d96d6dca101e1a7d68a93f5b8c7c",
      "tree": "be250bf966189d165e8a5c7c962d318ac2a2e358",
      "parents": [
        "a3191c5438440dced103c4c9677e8859b71121dc"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 17 10:18:29 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 17 10:18:55 2010 -0400"
      },
      "message": "demonitor before killing the worker\n\n"
    },
    {
      "commit": "a3191c5438440dced103c4c9677e8859b71121dc",
      "tree": "34fb22047036006aa90c30648ce32f63852152dd",
      "parents": [
        "9cd898d5bb0436182b6642972e90c94460a8eb61"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 17 10:17:40 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Thu Jun 17 10:18:55 2010 -0400"
      },
      "message": "switch to ets for managing the workers\n\n"
    },
    {
      "commit": "9cd898d5bb0436182b6642972e90c94460a8eb61",
      "tree": "668552c5923d7aac7d58c8278f7dcbf1b4588826",
      "parents": [
        "1eeb6a261f068236a0a235007aeec37e9018dce1"
      ],
      "author": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Jun 11 14:57:41 2010 -0400"
      },
      "committer": {
        "name": "Adam Kocoloski",
        "email": "adam@cloudant.com",
        "time": "Fri Jun 11 14:57:41 2010 -0400"
      },
      "message": "update rexi.app to 1.2 to match dbcore 1.1.x numbering\n\n"
    }
  ],
  "next": "1eeb6a261f068236a0a235007aeec37e9018dce1"
}
