)]}'
{
  "log": [
    {
      "commit": "52ea2dd038a560e2a5a69403fb759ca8a8968257",
      "tree": "f20ecebe97f43c1de251ccaa7a6259710fd3db77",
      "parents": [
        "3c5717caf1475fd25964109a0fc640bd150fce43"
      ],
      "author": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Wed Apr 05 14:16:03 2017 -0700"
      },
      "committer": {
        "name": "Justin Mattson",
        "email": "jmatt@google.com",
        "time": "Fri Apr 07 13:37:49 2017 -0700"
      },
      "message": "Add file storage adapter for Fuchsia\n\nThis skips calls to flock, since we don\u0027t support that syscall,\nwe should replace this with some other sort of lock if we can.\n\nChange-Id: I19d8317beb96d081e5ecec3ad876ffd7d0164c58\n"
    },
    {
      "commit": "3c5717caf1475fd25964109a0fc640bd150fce43",
      "tree": "8591711875de2e906bff1347d2001899f358d2d4",
      "parents": [
        "fec2aa74e7443bad8663be9205d58774029631b8"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Mar 02 10:19:10 2017 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Mar 02 10:19:10 2017 +0700"
      },
      "message": "leveldb: DB.rotateMem: retry DB.newMem three times before panicking #167\n"
    },
    {
      "commit": "fec2aa74e7443bad8663be9205d58774029631b8",
      "tree": "40627933468d4f816c5c9f9d6a0de01d85f70bcc",
      "parents": [
        "eade5ec175c38459815086b9def130752e24b699"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Mar 02 10:08:45 2017 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Mar 02 10:08:45 2017 +0700"
      },
      "message": "leveldb: DB.memCompaction should raise errCompactionTransactExiting panic when canceled due to DB being closed #167\n"
    },
    {
      "commit": "eade5ec175c38459815086b9def130752e24b699",
      "tree": "7b172d89769084d0ca77d2ea61e84b6195873fb8",
      "parents": [
        "23851d93a2292dcc56e71a18ec9e0624d84a0f65"
      ],
      "author": {
        "name": "ByteInk",
        "email": "byteink9@gmail.com",
        "time": "Thu Mar 02 10:50:46 2017 +0800"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Thu Mar 02 09:50:46 2017 +0700"
      },
      "message": "Fix readRawBlock: a forgotten BufferPool Put (#168)\n\n"
    },
    {
      "commit": "23851d93a2292dcc56e71a18ec9e0624d84a0f65",
      "tree": "61ff1bf0d062fd6505094c58f28a90c93845a811",
      "parents": [
        "6b4daa5362b502898ddf367c5c11deb9e7a5c727"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Dec 27 18:05:19 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Dec 27 18:05:19 2016 +0700"
      },
      "message": "leveldb: version now locks individual files (fixes #161)\n\nThis way version doesn\u0027t need to locks successive versions.\nSo that intermediate files generated during compaction can\nbe released right away, even if old versions still being used.\n"
    },
    {
      "commit": "6b4daa5362b502898ddf367c5c11deb9e7a5c727",
      "tree": "1a2d91f5859661a68d5121e1b8c8e4d8533ea710",
      "parents": [
        "b5f625e626b6e6d3a48797c341f6d378b85c78a9"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 12:00:08 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 12:00:08 2016 +0700"
      },
      "message": "all: fix documentation\n"
    },
    {
      "commit": "b5f625e626b6e6d3a48797c341f6d378b85c78a9",
      "tree": "4d9601e4a52adaa6d1f2e03222a1867b5919b584",
      "parents": [
        "3bec68c57c4f090726e6ad65ed50c52afd54f9a0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 11:35:07 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 11:35:07 2016 +0700"
      },
      "message": "leveldb: get rid of multi-valued receive operation\n"
    },
    {
      "commit": "3bec68c57c4f090726e6ad65ed50c52afd54f9a0",
      "tree": "a1348a42e4fc17fe03f8c8b8681d705599247eb7",
      "parents": [
        "2c0005cd96d2e8dddf0671b6eeb18063d7aa08cb"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 11:25:58 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 11:25:58 2016 +0700"
      },
      "message": "some cleanup on errors and storage packages\n"
    },
    {
      "commit": "2c0005cd96d2e8dddf0671b6eeb18063d7aa08cb",
      "tree": "9e7a3df1b98848ef4e4be1fa22b87d09a352c1a2",
      "parents": [
        "bc7a33199fc2a9e9051b71001a441f10983ffac6"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 09:32:15 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Oct 11 09:32:15 2016 +0700"
      },
      "message": "leveldb: don\u0027t discard transaction if cannot commit, returns error instead\n"
    },
    {
      "commit": "bc7a33199fc2a9e9051b71001a441f10983ffac6",
      "tree": "1c22448ab022f369384f6dbc62fd66f74eccb37f",
      "parents": [
        "72c5131689d119c29a9f8b4d09631987be5b04b0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 11:11:05 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 11:11:05 2016 +0700"
      },
      "message": "leveldb: fix OpenTransaction godoc\n"
    },
    {
      "commit": "72c5131689d119c29a9f8b4d09631987be5b04b0",
      "tree": "e540eff5e77378177104dde0280643064c12fd88",
      "parents": [
        "62a36c4ec8d8f7f8bbf13599cba7ca5c61b96660"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 10:18:41 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 10:19:18 2016 +0700"
      },
      "message": "leveldb: remove unused readBatch and readBatchToMem func\n"
    },
    {
      "commit": "62a36c4ec8d8f7f8bbf13599cba7ca5c61b96660",
      "tree": "26db3d947bea9effb711c73f47ceedec81765440",
      "parents": [
        "1996ac2d281f2ba6171499ac0de852e41e4d446e"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 10:06:13 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Oct 10 10:06:13 2016 +0700"
      },
      "message": "leveldb: throttle transaction if there is to many tables in level-0\n"
    },
    {
      "commit": "1996ac2d281f2ba6171499ac0de852e41e4d446e",
      "tree": "566dbb0d94cc3a18bd12179e60e57943ed28f3ac",
      "parents": [
        "cde1025996b58f92704db5cb60a487efa2640d99"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Oct 09 17:02:47 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Oct 09 17:02:47 2016 +0700"
      },
      "message": "leveldb: partially rewrite batch and db writer\n\nThe new batch implementation is more cleaner by spliting batch header\nbuffer. Also added index, replaying batch should be much more performant now.\n\nDB writer now guarantee that user batch content won\u0027t be changed, previous\nimplementation would append batch directly into user batch during write\nmerge, this plain wrong and can potentially cause issue. Also added options\nto disable write merge.\n\nThere are internal corruption detected on issue #155, the batch apparently\ncontains invalid batch header and record with invalid length. Also lots\nof batches with invalid sequence number present in the journal. Hopefully\nthis change fixes some of that.\n"
    },
    {
      "commit": "cde1025996b58f92704db5cb60a487efa2640d99",
      "tree": "c59abc5faf5d8ba2781dbd83b8edc350d6046c6f",
      "parents": [
        "8d31aaf25e3fff25a66d0e116a4453ad7ccc7b76"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Oct 09 10:06:49 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Oct 09 10:15:03 2016 +0700"
      },
      "message": "journal: detect invalid chunk type\n"
    },
    {
      "commit": "8d31aaf25e3fff25a66d0e116a4453ad7ccc7b76",
      "tree": "7eeb3844b09ad80b0b77836bb4017e1ec404616e",
      "parents": [
        "1d2dc181756b1b96cad778c2cd5a9df875d19eb6"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 20:06:03 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 20:12:31 2016 +0700"
      },
      "message": "table: fix Reader.Find() that incorrectly returns if key sought is equal to shortened index key\n\nFixes #153.\n"
    },
    {
      "commit": "1d2dc181756b1b96cad778c2cd5a9df875d19eb6",
      "tree": "b6c7fee42f44bd0b1dc79b622c02d7148de90220",
      "parents": [
        "3c5e621959b9701e318bf9b92373efd1133e7246"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 19:53:32 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 19:55:56 2016 +0700"
      },
      "message": "leveldb: internal comparer should simply returns nil if user comparer cannot shorten key\n"
    },
    {
      "commit": "3c5e621959b9701e318bf9b92373efd1133e7246",
      "tree": "61fab66f1f3ee2be20786af078405558c1307bbc",
      "parents": [
        "7c4fe88e9ed641d77772c0ec4d36d1a9328569f4"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 09:29:46 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 09:29:46 2016 +0700"
      },
      "message": "increase ginkgo timeout #152\n"
    },
    {
      "commit": "7c4fe88e9ed641d77772c0ec4d36d1a9328569f4",
      "tree": "5d66f240f28051b5ba796bdcca430da4096472a1",
      "parents": [
        "57e339f913cd61c71f99bcfa176554ea882d9f44"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 09:27:28 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Oct 01 09:29:36 2016 +0700"
      },
      "message": "cache: implements short tests #152\n"
    },
    {
      "commit": "57e339f913cd61c71f99bcfa176554ea882d9f44",
      "tree": "5005ca9bfc78af44d883f44c3022fded18acc3be",
      "parents": [
        "6ae1797c0b42b9323fc27ff7dcf568df88f2f33d"
      ],
      "author": {
        "name": "WanliTian",
        "email": "buaatianwanli@gmail.com",
        "time": "Sat Oct 01 09:56:48 2016 +0800"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Sat Oct 01 08:56:48 2016 +0700"
      },
      "message": "correct comment for DB.getEffectiveMem (#150)\n\n"
    },
    {
      "commit": "6ae1797c0b42b9323fc27ff7dcf568df88f2f33d",
      "tree": "9fa7c15c6b12a0072c2f45f6714cba6c374939e1",
      "parents": [
        "3c155d39f7e795a138f68bd9ad126c20de8a0002"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Aug 25 09:45:22 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Aug 25 09:45:22 2016 +0700"
      },
      "message": "leveldb: fix version.release() panic when db is closed\n"
    },
    {
      "commit": "3c155d39f7e795a138f68bd9ad126c20de8a0002",
      "tree": "208728a1aadafc78a86f965a879c235da5c5c836",
      "parents": [
        "1f0f48196713725bac1811cfc813c510706768c3"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Aug 25 09:23:20 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Aug 25 09:23:20 2016 +0700"
      },
      "message": "leveldb: fix DB.getMems() panic when db is closed\n"
    },
    {
      "commit": "1f0f48196713725bac1811cfc813c510706768c3",
      "tree": "e8524507676472a12606bf2185d7435bde8c5f87",
      "parents": [
        "75d6fe32d6a043803db42238a38ffdf430ac99e0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Thu Aug 25 08:59:41 2016 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Aug 25 08:59:41 2016 +0700"
      },
      "message": "leveldb: fix panic on close when there is inflight Get (#149)\n\n"
    },
    {
      "commit": "75d6fe32d6a043803db42238a38ffdf430ac99e0",
      "tree": "41f58b2bc17244c6a6451004d523bfc55caeb0ed",
      "parents": [
        "e5ce663718df7509857462c00d91157583a457a9"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 11:00:12 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 11:00:12 2016 +0700"
      },
      "message": "leveldb: dbHarness.closeDB() shouldn\u0027t nil\u0027ing db object\n"
    },
    {
      "commit": "e5ce663718df7509857462c00d91157583a457a9",
      "tree": "6258b86bfe55f093a71ab34c793abcc5984e9aea",
      "parents": [
        "e2d6dc94a6b125e3360528cb2b431afb2b64bced"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:51:39 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:51:39 2016 +0700"
      },
      "message": "leveldb: fix data race\n"
    },
    {
      "commit": "e2d6dc94a6b125e3360528cb2b431afb2b64bced",
      "tree": "933b9828d81bac43a566118dbe66c5a388702755",
      "parents": [
        "c6f17d6a79383f2722faecb95a476817876d6544"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:25:23 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:25:23 2016 +0700"
      },
      "message": "travis: add go1.7\n"
    },
    {
      "commit": "c6f17d6a79383f2722faecb95a476817876d6544",
      "tree": "2c586f701cf582c1f9e824befbc912d9d555ac44",
      "parents": [
        "ab8b5dcf1042e818ab68e770d465112a899b668e"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:24:01 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Aug 24 10:24:01 2016 +0700"
      },
      "message": "leveldb: fix graceful close (fixes #148)\n"
    },
    {
      "commit": "ab8b5dcf1042e818ab68e770d465112a899b668e",
      "tree": "572fd20a0ad47f0b5d6fc668af290f90afb181b2",
      "parents": [
        "fa5b5c78794bc5c18f330361059f871ae8c2b9d6"
      ],
      "author": {
        "name": "Piotr Kasprzyk",
        "email": "ciri@ciri.pl",
        "time": "Wed Jun 29 12:12:33 2016 +0200"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Wed Jun 29 17:12:33 2016 +0700"
      },
      "message": "Fix misspelling (#143)\n\n"
    },
    {
      "commit": "fa5b5c78794bc5c18f330361059f871ae8c2b9d6",
      "tree": "44496f49723a09bd1e7e78fce95d53561b1de62a",
      "parents": [
        "cfa635847112c5dc4782e128fa7e0d05fdbfb394"
      ],
      "author": {
        "name": "Felix Lange",
        "email": "fjl@twurst.com",
        "time": "Wed Jun 08 17:43:51 2016 +0200"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Wed Jun 08 22:43:51 2016 +0700"
      },
      "message": "storage: fix compilation with GOOS\u003dnacl (#142)\n\nThis change makes leveldb compile and work in Native Client.\r\nAll file system functions return syscall.ENOTSUP because nacl has\r\nno file system."
    },
    {
      "commit": "cfa635847112c5dc4782e128fa7e0d05fdbfb394",
      "tree": "b141f3bb415a9ed90ab7b126d8607f446eb6dbcc",
      "parents": [
        "a49846ec464c03848e727868e3f3f5a0220d2774"
      ],
      "author": {
        "name": "davy",
        "email": "davygeek@users.noreply.github.com",
        "time": "Mon Apr 25 10:01:31 2016 +0800"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Mon Apr 25 09:01:31 2016 +0700"
      },
      "message": "leveldb: change wether to whether (#139)"
    },
    {
      "commit": "a49846ec464c03848e727868e3f3f5a0220d2774",
      "tree": "4eeedb1ee8f055e3a5a6b9edcbd9573a2ffce83d",
      "parents": [
        "93fc893f2dadb96ffde441c7546cc67ea290a3a8"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Apr 25 08:49:15 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Apr 25 08:49:15 2016 +0700"
      },
      "message": "util: Hash: avoid using bytes.Buffer and binary.Read to reduce allocations (fixes #141)\n"
    },
    {
      "commit": "93fc893f2dadb96ffde441c7546cc67ea290a3a8",
      "tree": "368a24ed81b636280e3ab2f47c8d00f9424220cc",
      "parents": [
        "d89627bcbd64c3f7167a3136fed12d544b8071de"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 27 18:39:39 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 27 18:39:39 2016 +0700"
      },
      "message": "leveldb: move batch size testing into TestBatch_Append\n\ncompareBatch() also used by TestBatch_EncodeDecode which doesn\u0027t\nreally calculate batch size.\n"
    },
    {
      "commit": "d89627bcbd64c3f7167a3136fed12d544b8071de",
      "tree": "3c4b64a881316c9274521ca150abbeab6faf783f",
      "parents": [
        "917f41c560270110ceb73c5b38be2a9127387071"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 27 18:16:30 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 27 18:16:30 2016 +0700"
      },
      "message": "leveldb: fix invalid batch size after append #138\n"
    },
    {
      "commit": "917f41c560270110ceb73c5b38be2a9127387071",
      "tree": "010393188055ccd8fc9bdfd31506c56176ab644a",
      "parents": [
        "ad5fd7eab7f8772f146048a7abf56c29f961bde5"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 12:04:36 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 12:04:36 2016 +0700"
      },
      "message": "util: remove unused util.Pool\n"
    },
    {
      "commit": "ad5fd7eab7f8772f146048a7abf56c29f961bde5",
      "tree": "71b615d532244f7cf2a77be31e1ceb9ab2a6daeb",
      "parents": [
        "d2378e23a8456185799ea07289e6bc3150104d72"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 12:00:39 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 12:00:39 2016 +0700"
      },
      "message": "travis: deprecate go1.2 and go1.3; add go1.5 and go1.6\n"
    },
    {
      "commit": "d2378e23a8456185799ea07289e6bc3150104d72",
      "tree": "b864d05b1328e74c56fe2246984034c68098c41c",
      "parents": [
        "8f5e9b215ed2d8db87f5b8813e9eabfac3667de8"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 09:52:52 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Mar 11 09:52:52 2016 +0700"
      },
      "message": "leveldb: add concurrent write testing #136\n"
    },
    {
      "commit": "8f5e9b215ed2d8db87f5b8813e9eabfac3667de8",
      "tree": "5d84529a609d72bad09961eb5ec735797858a483",
      "parents": [
        "ad0d8b2ab58a55ed5c58073aa46451d5e1ca1280",
        "6aadcfb6aa5fd975c67dedf71dc6d2b074cb66ee"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Fri Mar 11 08:49:15 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Fri Mar 11 08:49:15 2016 +0700"
      },
      "message": "Merge pull request #137 from karalabe/fix-writer-ack-race\n\nAck existing writes before accepting new ones"
    },
    {
      "commit": "6aadcfb6aa5fd975c67dedf71dc6d2b074cb66ee",
      "tree": "5d84529a609d72bad09961eb5ec735797858a483",
      "parents": [
        "ad0d8b2ab58a55ed5c58073aa46451d5e1ca1280"
      ],
      "author": {
        "name": "Péter Szilágyi",
        "email": "peterke@gmail.com",
        "time": "Thu Mar 10 17:13:56 2016 +0200"
      },
      "committer": {
        "name": "Péter Szilágyi",
        "email": "peterke@gmail.com",
        "time": "Thu Mar 10 17:13:56 2016 +0200"
      },
      "message": "Ack existing writes before accepting new ones\n"
    },
    {
      "commit": "ad0d8b2ab58a55ed5c58073aa46451d5e1ca1280",
      "tree": "5cd34cc57ddad1ad3eca3031a695b1f5ff49c9e4",
      "parents": [
        "82c3c99d5033f84f701d1d86830c0d3350a26ce2"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 23 08:31:43 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 23 08:31:43 2016 +0700"
      },
      "message": "leveldb: fixes compaction commit racy (fixes #133)\n"
    },
    {
      "commit": "82c3c99d5033f84f701d1d86830c0d3350a26ce2",
      "tree": "a54f76df27e4c20ddafaccc4b5a96019621adaea",
      "parents": [
        "ae167dfac54dda1ab382bdfaa64765ad82b24a06"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 15 08:11:29 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 15 08:11:29 2016 +0700"
      },
      "message": "cache: improves coding style\n"
    },
    {
      "commit": "ae167dfac54dda1ab382bdfaa64765ad82b24a06",
      "tree": "ac867f613c30f5d0ab663d7d4622cf5f40d357e7",
      "parents": [
        "e7e6f5b5ef25adb580feac515f9ccec514d0bda8"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 09 12:10:36 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 09 12:10:36 2016 +0700"
      },
      "message": "leveldb: improves coding style\n"
    },
    {
      "commit": "e7e6f5b5ef25adb580feac515f9ccec514d0bda8",
      "tree": "fe93e9ec9a79e3d19a2ba6fee7e81303101ddb85",
      "parents": [
        "9e63a9b18959aa8c868ed658adb0503adba71531"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 09 07:22:14 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Feb 09 07:22:14 2016 +0700"
      },
      "message": "storage: fs: implement read-only mode (closes #111)\n"
    },
    {
      "commit": "9e63a9b18959aa8c868ed658adb0503adba71531",
      "tree": "98f50d6fa2ec68075d81c9e6f2d3d9ad34ea1b7b",
      "parents": [
        "7af7382f37dd3baf57537cabcfd5a3a453387094"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 14:11:42 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 14:13:37 2016 +0700"
      },
      "message": "leveldb: trigger table auto-compaction after committing transaction\n"
    },
    {
      "commit": "7af7382f37dd3baf57537cabcfd5a3a453387094",
      "tree": "c04adba46d379fab3fdb5be493199c117f83998f",
      "parents": [
        "8f7e1f65cad2736b61c814fc043d44743b4436ef"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 13:53:01 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 14:13:14 2016 +0700"
      },
      "message": "leveldb: switch to transaction mode when writing large batch #129\n"
    },
    {
      "commit": "8f7e1f65cad2736b61c814fc043d44743b4436ef",
      "tree": "9e824b5a86fb9354621d704024ea1a90a88d183b",
      "parents": [
        "36d2ead1e477af53df038bdde5f7b5b3790c93dd"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 12:41:02 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 08 12:41:02 2016 +0700"
      },
      "message": "leveldb: introducing DB transaction #129\n"
    },
    {
      "commit": "36d2ead1e477af53df038bdde5f7b5b3790c93dd",
      "tree": "df10d5ce90a2e2e26a6410905608dbd06a1263a6",
      "parents": [
        "b7c1cafa822344831a63ad9c8fafb1556e66d33d"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 01 11:51:28 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Feb 01 11:51:28 2016 +0700"
      },
      "message": "storage: revamp storage api\n"
    },
    {
      "commit": "b7c1cafa822344831a63ad9c8fafb1556e66d33d",
      "tree": "589279c25449b34373fec7dff204ef4d3de3a176",
      "parents": [
        "f22b5b6bef3e37c8aa907029e57ba27c7db42d8c"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Jan 28 11:02:52 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Jan 28 11:02:52 2016 +0700"
      },
      "message": "leveldb: implements dynamic levels\n\nThe levels will grow and shrink as needed.\n"
    },
    {
      "commit": "f22b5b6bef3e37c8aa907029e57ba27c7db42d8c",
      "tree": "74795e262166fc0004069632f72c90c38154c552",
      "parents": [
        "8866fa96bca9727d463f7dd8a344ca0d86c61c28"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:25:30 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:28:05 2016 +0700"
      },
      "message": "leveldb: flush memdb only to level-0 (fixes #127)\n\nPick level other than zero can cause compaction issue with large\nbulk insert and delete on strictly incrementing key-space. The\nproblem is that the small deletion markers trapped at lower level,\nwhile key/value entries keep growing at higher level. Since the\nkey-space is strictly incrementing it will not overlaps with\nhigher level, thus maximum possible level is always picked, while\noverlapping deletion marker pushed into lower level.\n"
    },
    {
      "commit": "8866fa96bca9727d463f7dd8a344ca0d86c61c28",
      "tree": "ca848905b9a0f3a0b5517f5ebadb658a61b3bfe0",
      "parents": [
        "ece6648afbc630d7fd86d751e7541b67b13f5bd3"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:08:57 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:10:29 2016 +0700"
      },
      "message": "leveldb: DB.tableRangeCompaction: retry \u0027all level\u0027 compaction until nothing to compact; and don\u0027t limit single level compaction\n"
    },
    {
      "commit": "ece6648afbc630d7fd86d751e7541b67b13f5bd3",
      "tree": "33a481855e85f330288b376e744bdb5a9ad8ecf4",
      "parents": [
        "32f711df91a248a54482e430d597645dc97dba66"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:06:57 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Jan 26 20:06:57 2016 +0700"
      },
      "message": "leveldb: DB.tableRangeCompaction: prevent compacting last level\n"
    },
    {
      "commit": "32f711df91a248a54482e430d597645dc97dba66",
      "tree": "fbc95a4cc70eabc9b39014ef10bc1517e4398d69",
      "parents": [
        "68fb65188a5469ec277f3ab9165f3c79e7e2d681"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jan 25 09:01:23 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jan 25 09:01:23 2016 +0700"
      },
      "message": "leveldb: don\u0027t compute last level compaction score\n\nThe last level can\u0027t be compacted.\n"
    },
    {
      "commit": "68fb65188a5469ec277f3ab9165f3c79e7e2d681",
      "tree": "c6b8c3c5c7410a2a2fc0853e258d01fac5e91f9a",
      "parents": [
        "5acacf6e72d3aeaf26dd3d3f163c635d3ef1e6e6"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jan 25 07:09:56 2016 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jan 25 07:09:56 2016 +0700"
      },
      "message": "storage: fs: don\u0027t rotate LOG file on open\n"
    },
    {
      "commit": "5acacf6e72d3aeaf26dd3d3f163c635d3ef1e6e6",
      "tree": "903575eafd72b09cd62dc52e85a215d33605f6c8",
      "parents": [
        "291956272008284151e2e9435c2ff200283a0336"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Dec 10 08:36:11 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Dec 10 08:38:49 2015 +0700"
      },
      "message": "storage: fs: rotate log file after size threshold of 1 MiB reached\n"
    },
    {
      "commit": "291956272008284151e2e9435c2ff200283a0336",
      "tree": "3d5ec3eeecaf9bd476f6f576cd2ad5210159733c",
      "parents": [
        "1a9d62f03ea92815b46fcaab357cfd4df264b1a0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Dec 10 08:14:22 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Dec 10 08:14:22 2015 +0700"
      },
      "message": "manualtest/dbstress: split datalen flag into key and value\n"
    },
    {
      "commit": "1a9d62f03ea92815b46fcaab357cfd4df264b1a0",
      "tree": "d19ff1f827302ba357264f1e0a1cd82d4552c158",
      "parents": [
        "b743d92d3215f11c9b5ce8830fafe1f16786adf4",
        "52e23ca701f6fefe291393f4bdf5b7d7c13c4c32"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Wed Aug 19 12:16:22 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Wed Aug 19 12:16:22 2015 +0700"
      },
      "message": "Merge pull request #122 from ngaut/master\n\nStop ticker when return from drain method"
    },
    {
      "commit": "52e23ca701f6fefe291393f4bdf5b7d7c13c4c32",
      "tree": "d19ff1f827302ba357264f1e0a1cd82d4552c158",
      "parents": [
        "b743d92d3215f11c9b5ce8830fafe1f16786adf4"
      ],
      "author": {
        "name": "ngaut",
        "email": "ngaut@126.com",
        "time": "Wed Aug 19 11:52:34 2015 +0800"
      },
      "committer": {
        "name": "ngaut",
        "email": "ngaut@126.com",
        "time": "Wed Aug 19 11:52:34 2015 +0800"
      },
      "message": "Stop ticker when return from drain method\n"
    },
    {
      "commit": "b743d92d3215f11c9b5ce8830fafe1f16786adf4",
      "tree": "bdfb1444302aee037cb41ae86c40a998b402ad35",
      "parents": [
        "3f2ff0ec537a2cc20701bcfbec48891fba169a6f"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:55:37 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:55:37 2015 +0700"
      },
      "message": "leveldb: allows completely disable fsync (closes #103)\n"
    },
    {
      "commit": "3f2ff0ec537a2cc20701bcfbec48891fba169a6f",
      "tree": "8e9c93c5f62d6d7bdef6fced77d8f331ba4d8d54",
      "parents": [
        "621fcde0a6fff931f6fc4c37427f2b876d7d9b60"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:42:24 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:42:24 2015 +0700"
      },
      "message": "storage: syncDir: ignore ErrInvalid on unix #103\n"
    },
    {
      "commit": "621fcde0a6fff931f6fc4c37427f2b876d7d9b60",
      "tree": "7aafffc4bdcf1c144d2af76096bb7060dc5daafa",
      "parents": [
        "79ad2cf506da1571bbabb096c3abe7907d196ae0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:24:51 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:25:13 2015 +0700"
      },
      "message": "storage: fileStorage.Close(): gives warning if some files are still open, but continue closing anyway\n"
    },
    {
      "commit": "79ad2cf506da1571bbabb096c3abe7907d196ae0",
      "tree": "cdb85fe78ddbe2029990486967198c0e80976dad",
      "parents": [
        "183614d6b32571e867df4cf086f5480ceefbdfac"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:16:28 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Aug 17 09:16:28 2015 +0700"
      },
      "message": "storage: fileStorage.GetManifest() should returns error with type of ErrCorrupted if corruption detected (fixes #121)\n"
    },
    {
      "commit": "183614d6b32571e867df4cf086f5480ceefbdfac",
      "tree": "9469bdfda4bbd172ca672b4373d13a7410526053",
      "parents": [
        "ac1afffa211796ee3a994b5de9462ec1797f2318"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Jul 17 19:10:21 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Fri Jul 17 19:10:21 2015 +0700"
      },
      "message": "table: fixes snappy\n"
    },
    {
      "commit": "ac1afffa211796ee3a994b5de9462ec1797f2318",
      "tree": "4c311bdd4c8f6011c56de93c65be43a0fca69243",
      "parents": [
        "1d9e60d9e8bc81502164d907fe98f7c3994dfd05",
        "452ae908153547f972e9ece8b173d8af4d9323ce"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Fri Jul 17 18:23:57 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Fri Jul 17 18:23:57 2015 +0700"
      },
      "message": "Merge pull request #116 from anandkunal/master\n\nUpdate Snappy imports to use new canonical path"
    },
    {
      "commit": "452ae908153547f972e9ece8b173d8af4d9323ce",
      "tree": "4c311bdd4c8f6011c56de93c65be43a0fca69243",
      "parents": [
        "1d9e60d9e8bc81502164d907fe98f7c3994dfd05"
      ],
      "author": {
        "name": "Kunal Anand",
        "email": "kunal@prevoty.com",
        "time": "Wed Jul 15 23:11:20 2015 -0700"
      },
      "committer": {
        "name": "Kunal Anand",
        "email": "kunal@prevoty.com",
        "time": "Wed Jul 15 23:11:20 2015 -0700"
      },
      "message": "Update Snappy imports to use new canonical path\n"
    },
    {
      "commit": "1d9e60d9e8bc81502164d907fe98f7c3994dfd05",
      "tree": "9f040e760d814ccc5bfffa96855f486635871757",
      "parents": [
        "a06509502ca32565bdf74afc1e573050023f261c",
        "7c64ee7754868009e6af5a7c05c0afb0a5f0d8b2"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Sun Jul 05 21:51:51 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Sun Jul 05 21:51:51 2015 +0700"
      },
      "message": "Merge pull request #114 from pyros2097/patch-1\n\nUpdate README.md"
    },
    {
      "commit": "7c64ee7754868009e6af5a7c05c0afb0a5f0d8b2",
      "tree": "9f040e760d814ccc5bfffa96855f486635871757",
      "parents": [
        "a06509502ca32565bdf74afc1e573050023f261c"
      ],
      "author": {
        "name": "pyros2097",
        "email": "pyros2097@gmail.com",
        "time": "Sun Jul 05 17:49:31 2015 +0530"
      },
      "committer": {
        "name": "pyros2097",
        "email": "pyros2097@gmail.com",
        "time": "Sun Jul 05 17:49:31 2015 +0530"
      },
      "message": "Update README.md"
    },
    {
      "commit": "a06509502ca32565bdf74afc1e573050023f261c",
      "tree": "62e13924fd9bf9725b42612828e21ad2b63bb7cc",
      "parents": [
        "ca34d8aa37c94c54b2811e855943b90bf5927a51"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Jun 10 06:54:26 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Jun 10 06:54:26 2015 +0700"
      },
      "message": "table: accidentally uses two copies of snappy (fixes #110)\n"
    },
    {
      "commit": "ca34d8aa37c94c54b2811e855943b90bf5927a51",
      "tree": "3119532691bdf344cd113b341506847aae436085",
      "parents": [
        "0dd6952a2e6ddc83817284b5bb9c6e27ed5ffced"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jun 08 08:52:23 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jun 08 08:52:23 2015 +0700"
      },
      "message": "table: use go-snappy upstream\n"
    },
    {
      "commit": "0dd6952a2e6ddc83817284b5bb9c6e27ed5ffced",
      "tree": "49578e4439f6ab68b4d989be44ca123082f34d1d",
      "parents": [
        "315fcfb05d4d46d4354b313d146ef688dda272a9"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jun 08 08:44:44 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Jun 08 08:44:44 2015 +0700"
      },
      "message": "leveldb: fix DB.Delete() documentation (closes #109)\n"
    },
    {
      "commit": "315fcfb05d4d46d4354b313d146ef688dda272a9",
      "tree": "b18eced102bd43599851b7be995c71f719d47055",
      "parents": [
        "c5c5e8a54a101d23be2d1129e30fcaee6b129da6"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 20:13:07 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 20:13:07 2015 +0700"
      },
      "message": "leveldb: allows open or puts DB into read-only mode (closes #107)\n"
    },
    {
      "commit": "c5c5e8a54a101d23be2d1129e30fcaee6b129da6",
      "tree": "4c833d5c210c224f40e4c6fcb3f4f1139b17555d",
      "parents": [
        "a8ba29233f9cb06ec6bbf7c448781f3c54741f57"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Apr 06 10:53:35 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 10:26:41 2015 +0700"
      },
      "message": "leveldb: cleanup DB.recoverJournal(), memdb, session record and split session.go\n"
    },
    {
      "commit": "a8ba29233f9cb06ec6bbf7c448781f3c54741f57",
      "tree": "8e0b5094ff4fecabfc9ba0b1ea4e69fca4f6df2b",
      "parents": [
        "a86c60182559f0b9b133678d1fc1c5232e89d52e"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Apr 05 20:55:15 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 10:25:52 2015 +0700"
      },
      "message": "memdb: use named constant instead of integer literal and Reset now holds lock\n"
    },
    {
      "commit": "a86c60182559f0b9b133678d1fc1c5232e89d52e",
      "tree": "03ccc9576d323202e6ed9c21bfef8079d13a07c8",
      "parents": [
        "d0134a4f3510f24ecf1c881d4965152d23ffdab0"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 09:40:31 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 09:41:47 2015 +0700"
      },
      "message": "manualtest/dbstress: disable block cache and buffer pool by default\n"
    },
    {
      "commit": "d0134a4f3510f24ecf1c881d4965152d23ffdab0",
      "tree": "4b7e7618ea40e9a574de224e14e63427c5840e43",
      "parents": [
        "012f65f74744ed62a80abac6e9a8c86e71c2b6fa"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 09:40:00 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed May 13 09:41:47 2015 +0700"
      },
      "message": "leveldb: allows disabling buffer pool\n"
    },
    {
      "commit": "012f65f74744ed62a80abac6e9a8c86e71c2b6fa",
      "tree": "c7bf442d0c8d33ba75962ee1b563c87620d74402",
      "parents": [
        "4875955338b0a434238a31165cb87255ab6e9e4a",
        "6e07c47090fae54b1c64f441af38a265265af397"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Thu May 07 10:33:29 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Thu May 07 10:33:29 2015 +0700"
      },
      "message": "Merge pull request #106 from restlessbandit/getprop-errors\n\nuses a public API error that can be compared for invalid properties"
    },
    {
      "commit": "6e07c47090fae54b1c64f441af38a265265af397",
      "tree": "c7bf442d0c8d33ba75962ee1b563c87620d74402",
      "parents": [
        "4875955338b0a434238a31165cb87255ab6e9e4a"
      ],
      "author": {
        "name": "Travis J Parker",
        "email": "travis.parker@gmail.com",
        "time": "Wed May 06 15:31:05 2015 -0700"
      },
      "committer": {
        "name": "Travis J Parker",
        "email": "travis.parker@gmail.com",
        "time": "Wed May 06 15:31:05 2015 -0700"
      },
      "message": "uses a public API error that can be compared against for invalid property names\n"
    },
    {
      "commit": "4875955338b0a434238a31165cb87255ab6e9e4a",
      "tree": "a669838b7e8d162783cdd8ce9d6f40f50fe9dfb2",
      "parents": [
        "1338fcd7ccafd81faad23486e22d14f1fad72229"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 12:49:43 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 12:49:43 2015 +0700"
      },
      "message": "leveldb: fix testDB_IterTriggeredCompaction() keyspace size asserts\n"
    },
    {
      "commit": "1338fcd7ccafd81faad23486e22d14f1fad72229",
      "tree": "7fb654316f7a83355284b1821a2b79e79973d2d1",
      "parents": [
        "853c9132c51c79ee38121132fee6078474b841ee"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 12:29:39 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 12:29:39 2015 +0700"
      },
      "message": "leveldb: allows iterator to trigger compaction\n\nThis implements fix that was introduced in LevelDB 1.13, to fix issue\nwhere large contiguous keyspace of deleted data was not getting compacted.\n\nReported at syncthing/syncthing#1480.\n"
    },
    {
      "commit": "853c9132c51c79ee38121132fee6078474b841ee",
      "tree": "2f02333d540bf0a60c287d67574c7c2601ac942d",
      "parents": [
        "87e4e645d80ae9c537e8f2dee52b28036a5dd75e"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 09:24:50 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Apr 02 09:24:50 2015 +0700"
      },
      "message": "rename manualtest/leveldb to manualtest/dbstress\n"
    },
    {
      "commit": "87e4e645d80ae9c537e8f2dee52b28036a5dd75e",
      "tree": "afe9b1b906e2d9877a03928be255bc6506ee8eae",
      "parents": [
        "e3f32eb300aa1e514fe8ba58d008da90a062273d"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 15 16:02:18 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 15 16:02:18 2015 +0700"
      },
      "message": "opt: fixes #102\n"
    },
    {
      "commit": "e3f32eb300aa1e514fe8ba58d008da90a062273d",
      "tree": "94fcdaf8293e5e17128080554d255abbd73e5d7c",
      "parents": [
        "e9e2c8f6d3b9c313fb4acaac5ab06285bcf30b04"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 08 08:26:59 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Mar 08 08:26:59 2015 +0700"
      },
      "message": "leveldb: use \u0027comma ok\u0027 on iterator.ErrorCallbackSetter type assertion (fixes #101)\n"
    },
    {
      "commit": "e9e2c8f6d3b9c313fb4acaac5ab06285bcf30b04",
      "tree": "474e20501211e808e4745a0f137ed5cc9324344c",
      "parents": [
        "63c9e642efad852f49e20a6f90194cae112fd2ac"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Jan 29 08:17:35 2015 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Jan 29 08:17:35 2015 +0700"
      },
      "message": "fix travis-ci\n"
    },
    {
      "commit": "63c9e642efad852f49e20a6f90194cae112fd2ac",
      "tree": "7775e4709ae4fd8aa5ffd33ddb138ac787a70fdd",
      "parents": [
        "871eee0a7546bb7d1b2795142e29c4534abc49b3"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Dec 10 13:58:38 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Dec 10 13:58:38 2014 +0700"
      },
      "message": "cache: rewrite package (closes #95)\n"
    },
    {
      "commit": "871eee0a7546bb7d1b2795142e29c4534abc49b3",
      "tree": "5e0ce6659674d4d81ad499f82b85133fcbc61941",
      "parents": [
        "201fb278909236f831613868850e7074dec83d21"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Dec 01 07:52:34 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Dec 01 07:52:59 2014 +0700"
      },
      "message": "manualtest: add \u0027leveldb\u0027 manual test\n"
    },
    {
      "commit": "201fb278909236f831613868850e7074dec83d21",
      "tree": "e6c27331a8767e7a035d9c932753366345fc6580",
      "parents": [
        "00bf355982af859161b53f4309c03a4ea6955e56"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sun Nov 30 16:32:50 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Dec 01 07:52:59 2014 +0700"
      },
      "message": "leveldb: ikey: convert ikey to []byte so that Printf will print the ikey content\n"
    },
    {
      "commit": "00bf355982af859161b53f4309c03a4ea6955e56",
      "tree": "11e60d8fdc360d11ef5dbf396e3dfc0e5b734d20",
      "parents": [
        "359f1d3a5249d24ca60b47d93f3c3f1fca5a5cf5"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 29 12:36:11 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Dec 01 07:52:59 2014 +0700"
      },
      "message": "leveldb: Snapshot: add stringer\n"
    },
    {
      "commit": "359f1d3a5249d24ca60b47d93f3c3f1fca5a5cf5",
      "tree": "d8166544b4305582f48388b142b14a65b3f92a9e",
      "parents": [
        "66ca6334b18fbc94b5cac78ccfa87200985131ca"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Nov 26 19:26:20 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Mon Dec 01 07:52:59 2014 +0700"
      },
      "message": "leveldb: fix \u0027delayed\u0027 logging\n"
    },
    {
      "commit": "66ca6334b18fbc94b5cac78ccfa87200985131ca",
      "tree": "ee8cebee2f986ee72a689784f0529c5bea0b5b55",
      "parents": [
        "97e257099d2ab9578151ba85e2641e2cd14d3ca8",
        "bc74e8715d8b3cde1850c477ab6bc5e42bc3a9e7"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Mon Dec 01 07:49:04 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@users.noreply.github.com",
        "time": "Mon Dec 01 07:49:04 2014 +0700"
      },
      "message": "Merge pull request #96 from Alienero/master\n\nstorage: fix fileStorage.GetManifest"
    },
    {
      "commit": "bc74e8715d8b3cde1850c477ab6bc5e42bc3a9e7",
      "tree": "ee8cebee2f986ee72a689784f0529c5bea0b5b55",
      "parents": [
        "97e257099d2ab9578151ba85e2641e2cd14d3ca8"
      ],
      "author": {
        "name": "Yim",
        "email": "yiyan.lu@me.com",
        "time": "Sun Nov 30 22:56:15 2014 +0800"
      },
      "committer": {
        "name": "Yim",
        "email": "yiyan.lu@me.com",
        "time": "Sun Nov 30 22:56:15 2014 +0800"
      },
      "message": "Update file_storage.go\n\nif the first if statement is true, fn[7]\u003d\u003d\u0027.\u0027 ,fn[7:] is a start with \u0027.\u0027 slice. ParseUint will return an error."
    },
    {
      "commit": "97e257099d2ab9578151ba85e2641e2cd14d3ca8",
      "tree": "42db1c0c527151366f38fb76bd01c65114c16559",
      "parents": [
        "176d0784b99562ab23fbd2fd6615bcfd0ad4c252"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:33:46 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:33:46 2014 +0700"
      },
      "message": "opt: introducing Options.BlockCacheSize\n"
    },
    {
      "commit": "176d0784b99562ab23fbd2fd6615bcfd0ad4c252",
      "tree": "c88227c9ea3120d7aca9468b47c488d00e7af1fe",
      "parents": [
        "67af24b7937f6350b472f00c44117d22135a4d6c"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:20:42 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:20:42 2014 +0700"
      },
      "message": "leveldb: s/TestDb/TestDB/\n"
    },
    {
      "commit": "67af24b7937f6350b472f00c44117d22135a4d6c",
      "tree": "ff7704fb95220b00aa368d5947555d8b8ee8263d",
      "parents": [
        "b0b150eba651252e27e03b6d3ddfed3b543cb5ec"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:16:24 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 10:16:24 2014 +0700"
      },
      "message": "testutil: add \u0027with generated key/value\u0027 to AllKeyValueTesting; and implements BeforeSuite, AfterSuite setup and teardown\n"
    },
    {
      "commit": "b0b150eba651252e27e03b6d3ddfed3b543cb5ec",
      "tree": "0378625f6897f957b97ca1695e90d4a5d2120352",
      "parents": [
        "98fb367cae9dcbb42248cf9678dfdc258f739fd5"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 09:53:05 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 09:53:05 2014 +0700"
      },
      "message": "table: minor fixes\n"
    },
    {
      "commit": "98fb367cae9dcbb42248cf9678dfdc258f739fd5",
      "tree": "6deeae1f69bdece49093c094d9ac7d54a84f9ac0",
      "parents": [
        "c9e0ae706141dc099005d6d247e4880c7feda2e1"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 09:29:23 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Sat Nov 22 09:29:23 2014 +0700"
      },
      "message": "leveldb: testing: TestDb_GoleveldbIssue72and83: add checksum to the key/value data\n"
    },
    {
      "commit": "c9e0ae706141dc099005d6d247e4880c7feda2e1",
      "tree": "b93166da2f81bc784be6a80da3298d858820938e",
      "parents": [
        "4b8ccc93c9d5e6f23020aa11269ad34dd08813db"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 12:01:31 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 12:01:31 2014 +0700"
      },
      "message": "opt: adds StrictRecovery to StrictAll\n"
    },
    {
      "commit": "4b8ccc93c9d5e6f23020aa11269ad34dd08813db",
      "tree": "1afba3e6cb8b38c870f33d8e51a23021ebbd828f",
      "parents": [
        "9b496edda61d960896b7ba2860561cb486814ebb"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 12:00:59 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 12:00:59 2014 +0700"
      },
      "message": "leveldb: testing: preserve test DB when error detected\n"
    },
    {
      "commit": "9b496edda61d960896b7ba2860561cb486814ebb",
      "tree": "9c3ca5d95409760172fc3d7fecdff583514edbf0",
      "parents": [
        "8726a8802351a27bcb794ca50c850118de4a0888"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 11:59:55 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 11:59:55 2014 +0700"
      },
      "message": "table: includes the checksum in the error message\n"
    },
    {
      "commit": "8726a8802351a27bcb794ca50c850118de4a0888",
      "tree": "8ef767e9a91367d6f300581078e188c7abd308cb",
      "parents": [
        "9df1f89a3235e1d48254858658398a17e201056c"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 10:22:35 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Thu Nov 20 10:22:35 2014 +0700"
      },
      "message": "leveldb: fixes \u0027table recovery\u0027 and add testing\n"
    },
    {
      "commit": "9df1f89a3235e1d48254858658398a17e201056c",
      "tree": "60eff9cf5ba91edaa4cf3853cdc9a5d533fbc393",
      "parents": [
        "d8d1d2a5cc2d34c950dffa2f554525415d59f737"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Nov 19 13:21:36 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Wed Nov 19 13:21:36 2014 +0700"
      },
      "message": "leveldb: introducing DB.Has and Snapshot.Has methods (closes #82)\n"
    },
    {
      "commit": "d8d1d2a5cc2d34c950dffa2f554525415d59f737",
      "tree": "c2d17ea92e1ac886bb3a3bbb711eee89a21af1e3",
      "parents": [
        "13f2430fbc2ed6fa35f2790dca5bf1ce3239bf32"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 11:02:45 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 11:02:45 2014 +0700"
      },
      "message": "table: uses forked snappy-go on github (closes #89)\n"
    },
    {
      "commit": "13f2430fbc2ed6fa35f2790dca5bf1ce3239bf32",
      "tree": "788d5b1b63c7574d95d8155ea15d43b9ded63db2",
      "parents": [
        "174e13d76868d97574a4109a9f8abf04ac22d789"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 09:44:40 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 09:44:40 2014 +0700"
      },
      "message": "go vet\n"
    },
    {
      "commit": "174e13d76868d97574a4109a9f8abf04ac22d789",
      "tree": "23e06599e051ccb9e692275554fe877c616ba372",
      "parents": [
        "fc78074a21dd8024bd1d592464e4cf1b5474955c"
      ],
      "author": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 09:33:54 2014 +0700"
      },
      "committer": {
        "name": "Suryandaru Triandana",
        "email": "syndtr@gmail.com",
        "time": "Tue Nov 18 09:33:54 2014 +0700"
      },
      "message": "level: fixes table compaction that may generate tables with overlapped ukey\n\nThis become a problem when new compaction picked-up and table key range search\ndoesn\u0027t expanded in the asumption that ukey never hop across tables (true in level \u003e 0),\nwhen this happen newer ukey might pushed into lower level, and since version.get\nassume that this never happen, version.get will incorectly return older ukey instead.\n\nThis commit also fixes compaction retry, and will always expand key range search\nwhen pick-up new compaction.\n\nFixes #83.\n"
    }
  ],
  "next": "fc78074a21dd8024bd1d592464e4cf1b5474955c"
}
