{"action":"created","comment":{"url":"https://api.github.com/repos/m3db/m3db/pulls/comments/192854494","pull_request_review_id":125710983,"id":192854494,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5Mjg1NDQ5NA==","diff_hunk":"@@ -0,0 +1,168 @@\n+// Copyright (c) 2018 Uber Technologies, Inc.\n+//\n+// Permission is hereby granted, free of charge, to any person obtaining a copy\n+// of this software and associated documentation files (the \"Software\"), to deal\n+// in the Software without restriction, including without limitation the rights\n+// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n+// copies of the Software, and to permit persons to whom the Software is\n+// furnished to do so, subject to the following conditions:\n+//\n+// The above copyright notice and this permission notice shall be included in\n+// all copies or substantial portions of the Software.\n+//\n+// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n+// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n+// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n+// THE SOFTWARE.\n+\n+package m3db\n+\n+import (\n+\t\"time\"\n+\n+\t\"github.com/m3db/m3db/src/dbnode/encoding\"\n+\t\"github.com/m3db/m3db/src/dbnode/x/xio\"\n+\t\"github.com/m3db/m3x/ident\"\n+)\n+\n+const (\n+\t// todo(braskin): replace this with actual size if we can\n+\tblockReplicaLen = 10\n+)\n+\n+// BlockReplica contains the replicas for a single m3db block\n+type BlockReplica struct {\n+\tStart     time.Time\n+\tBlockSize time.Duration\n+\tReplicas  []encoding.MultiReaderIterator\n+}\n+\n+// ConvertM3DBSeriesIterators takes in series iterators from m3db and returns\n+// coordinator SeriesBlocks which are used to construct Blocks for query processing.\n+func ConvertM3DBSeriesIterators(iterators encoding.SeriesIterators, iterAlloc encoding.ReaderIteratorAllocate) ([]SeriesBlocks, error) {\n+\tdefer iterators.Close()\n+\tmultiSeriesBlocks := make([]SeriesBlocks, iterators.Len())\n+\n+\tfor i, seriesIterator := range iterators.Iters() {\n+\t\tblockReplicas, err := blockReplicasFromSeriesIterator(seriesIterator, iterAlloc)\n+\t\tif err != nil {\n+\t\t\treturn nil, err\n+\t\t}\n+\n+\t\tseries, err := seriesBlocksFromBlockReplicas(blockReplicas, seriesIterator)\n+\t\tif err != nil {\n+\t\t\treturn nil, err\n+\t\t}\n+\n+\t\tmultiSeriesBlocks[i] = series\n+\t}\n+\n+\treturn multiSeriesBlocks, nil\n+}\n+\n+func blockReplicasFromSeriesIterator(seriesIterator encoding.SeriesIterator, iterAlloc encoding.ReaderIteratorAllocate) ([]BlockReplica, error) {\n+\tblockReplicas := make([]BlockReplica, 0, blockReplicaLen)\n+\tfor _, replica := range seriesIterator.Replicas() {\n+\t\tperBlockSliceReaders := replica.Readers()\n+\t\tfor next := true; next; next = perBlockSliceReaders.Next() {\n+\t\t\tl, start, bs := perBlockSliceReaders.CurrentReaders()\n+\t\t\treaders := make([]xio.SegmentReader, l)\n+\t\t\tfor i := 0; i < l; i++ {\n+\t\t\t\treader := perBlockSliceReaders.CurrentReaderAt(i)\n+\t\t\t\t// NB(braskin): important to clone the reader as we need its position reset before\n+\t\t\t\t// we use the contents of it again\n+\t\t\t\tclonedReader, err := reader.Clone()\n+\t\t\t\tif err != nil {\n+\t\t\t\t\treturn nil, err\n+\t\t\t\t}\n+\t\t\t\treaders[i] = clonedReader\n+\t\t\t}\n+\t\t\t// todo(braskin): pooling\n+\t\t\titer := encoding.NewMultiReaderIterator(iterAlloc, nil)\n+\t\t\titer.Reset(readers, start, bs)\n+\n+\t\t\tinserted := false\n+\t\t\tfor i := range blockReplicas {\n+\t\t\t\tif blockReplicas[i].Start.Equal(start) {\n+\t\t\t\t\tinserted = true\n+\t\t\t\t\tblockReplicas[i].Replicas = append(blockReplicas[i].Replicas, iter)\n+\t\t\t\t\tbreak\n+\t\t\t\t}\n+\t\t\t}\n+\t\t\tif !inserted {\n+\t\t\t\tblockReplicas = append(blockReplicas, BlockReplica{\n+\t\t\t\t\tStart:     start,\n+\t\t\t\t\tBlockSize: bs,\n+\t\t\t\t\tReplicas:  []encoding.MultiReaderIterator{iter},\n+\t\t\t\t})\n+\t\t\t}\n+\t\t}\n+\t}\n+\n+\treturn blockReplicas, nil\n+}\n+\n+func seriesBlocksFromBlockReplicas(blockReplicas []BlockReplica, seriesIterator encoding.SeriesIterator) (SeriesBlocks, error) {\n+\tvar (\n+\t\t// todo(braskin): use ident pool\n+\t\tclonedID        = ident.StringID(seriesIterator.ID().String())\n+\t\tclonedNamespace = ident.StringID(seriesIterator.Namespace().String())\n+\t)\n+\n+\tclonedTags, err := cloneTagIterator(seriesIterator.Tags())\n+\tif err != nil {\n+\t\treturn SeriesBlocks{}, err\n+\t}\n+\n+\tseries := SeriesBlocks{\n+\t\tID:        clonedID,\n+\t\tNamespace: clonedNamespace,\n+\t\tTags:      clonedTags,\n+\t}\n+\n+\tfor _, block := range blockReplicas {\n+\t\tfilterValuesStart := seriesIterator.Start()\n+\t\tif block.Start.After(filterValuesStart) {\n+\t\t\tfilterValuesStart = block.Start\n+\t\t}\n+\n+\t\tend := block.Start.Add(block.BlockSize)\n+\n+\t\tfilterValuesEnd := seriesIterator.End()\n+\t\tif end.Before(filterValuesEnd) {\n+\t\t\tfilterValuesEnd = end\n+\t\t}\n+\n+\t\t// todo(braskin): pooling\n+\t\tvaluesIter := encoding.NewSeriesIterator(clonedID, clonedNamespace,","path":"src/coordinator/ts/m3db/convert.go","position":140,"original_position":140,"commit_id":"5c688ec88ab393f32ab214528695cb51af77027b","original_commit_id":"5c688ec88ab393f32ab214528695cb51af77027b","user":{"login":"arnikola","id":14959893,"node_id":"MDQ6VXNlcjE0OTU5ODkz","avatar_url":"https://avatars0.githubusercontent.com/u/14959893?v=4","gravatar_id":"","url":"https://api.github.com/users/arnikola","html_url":"https://github.com/arnikola","followers_url":"https://api.github.com/users/arnikola/followers","following_url":"https://api.github.com/users/arnikola/following{/other_user}","gists_url":"https://api.github.com/users/arnikola/gists{/gist_id}","starred_url":"https://api.github.com/users/arnikola/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/arnikola/subscriptions","organizations_url":"https://api.github.com/users/arnikola/orgs","repos_url":"https://api.github.com/users/arnikola/repos","events_url":"https://api.github.com/users/arnikola/events{/privacy}","received_events_url":"https://api.github.com/users/arnikola/received_events","type":"User","site_admin":false},"body":"We *may* run into some difficulty down the line if we're using the id/namespace/tags form the series directly rather than from the SeriesBlock, since `.Close()` on any iterator will free the bytes used by the rest as well, which is unexpected behaviour\r\n\r\nIf we only use the values from the SeriesBlock itself we should be safe, but if there's a chance we'd be using the seriesIterators directly, it's safer to clone each of these.\r\n\r\nEither way should put a comment noting that we should be really careful using this if anything is shared","created_at":"2018-06-04T19:28:56Z","updated_at":"2018-06-04T19:28:57Z","html_url":"https://github.com/m3db/m3db/pull/726#discussion_r192854494","pull_request_url":"https://api.github.com/repos/m3db/m3db/pulls/726","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/m3db/m3db/pulls/comments/192854494"},"html":{"href":"https://github.com/m3db/m3db/pull/726#discussion_r192854494"},"pull_request":{"href":"https://api.github.com/repos/m3db/m3db/pulls/726"}}},"pull_request":{"url":"https://api.github.com/repos/m3db/m3db/pulls/726","id":191152860,"node_id":"MDExOlB1bGxSZXF1ZXN0MTkxMTUyODYw","html_url":"https://github.com/m3db/m3db/pull/726","diff_url":"https://github.com/m3db/m3db/pull/726.diff","patch_url":"https://github.com/m3db/m3db/pull/726.patch","issue_url":"https://api.github.com/repos/m3db/m3db/issues/726","number":726,"state":"open","locked":false,"title":"Convert m3db blocks","user":{"login":"benraskin92","id":4688976,"node_id":"MDQ6VXNlcjQ2ODg5NzY=","avatar_url":"https://avatars0.githubusercontent.com/u/4688976?v=4","gravatar_id":"","url":"https://api.github.com/users/benraskin92","html_url":"https://github.com/benraskin92","followers_url":"https://api.github.com/users/benraskin92/followers","following_url":"https://api.github.com/users/benraskin92/following{/other_user}","gists_url":"https://api.github.com/users/benraskin92/gists{/gist_id}","starred_url":"https://api.github.com/users/benraskin92/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benraskin92/subscriptions","organizations_url":"https://api.github.com/users/benraskin92/orgs","repos_url":"https://api.github.com/users/benraskin92/repos","events_url":"https://api.github.com/users/benraskin92/events{/privacy}","received_events_url":"https://api.github.com/users/benraskin92/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-05-29T13:48:57Z","updated_at":"2018-06-04T19:28:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"008ca3af8032b42236aae2c685621283f0894cd5","assignee":null,"assignees":[],"requested_reviewers":[{"login":"nikunjgit","id":1733496,"node_id":"MDQ6VXNlcjE3MzM0OTY=","avatar_url":"https://avatars3.githubusercontent.com/u/1733496?v=4","gravatar_id":"","url":"https://api.github.com/users/nikunjgit","html_url":"https://github.com/nikunjgit","followers_url":"https://api.github.com/users/nikunjgit/followers","following_url":"https://api.github.com/users/nikunjgit/following{/other_user}","gists_url":"https://api.github.com/users/nikunjgit/gists{/gist_id}","starred_url":"https://api.github.com/users/nikunjgit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nikunjgit/subscriptions","organizations_url":"https://api.github.com/users/nikunjgit/orgs","repos_url":"https://api.github.com/users/nikunjgit/repos","events_url":"https://api.github.com/users/nikunjgit/events{/privacy}","received_events_url":"https://api.github.com/users/nikunjgit/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/m3db/m3db/pulls/726/commits","review_comments_url":"https://api.github.com/repos/m3db/m3db/pulls/726/comments","review_comment_url":"https://api.github.com/repos/m3db/m3db/pulls/comments{/number}","comments_url":"https://api.github.com/repos/m3db/m3db/issues/726/comments","statuses_url":"https://api.github.com/repos/m3db/m3db/statuses/5c688ec88ab393f32ab214528695cb51af77027b","head":{"label":"m3db:braskin/convert_m3db_blocks","ref":"braskin/convert_m3db_blocks","sha":"5c688ec88ab393f32ab214528695cb51af77027b","user":{"login":"m3db","id":19937171,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTM3MTcx","avatar_url":"https://avatars0.githubusercontent.com/u/19937171?v=4","gravatar_id":"","url":"https://api.github.com/users/m3db","html_url":"https://github.com/m3db","followers_url":"https://api.github.com/users/m3db/followers","following_url":"https://api.github.com/users/m3db/following{/other_user}","gists_url":"https://api.github.com/users/m3db/gists{/gist_id}","starred_url":"https://api.github.com/users/m3db/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m3db/subscriptions","organizations_url":"https://api.github.com/users/m3db/orgs","repos_url":"https://api.github.com/users/m3db/repos","events_url":"https://api.github.com/users/m3db/events{/privacy}","received_events_url":"https://api.github.com/users/m3db/received_events","type":"Organization","site_admin":false},"repo":{"id":61153677,"node_id":"MDEwOlJlcG9zaXRvcnk2MTE1MzY3Nw==","name":"m3db","full_name":"m3db/m3db","owner":{"login":"m3db","id":19937171,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTM3MTcx","avatar_url":"https://avatars0.githubusercontent.com/u/19937171?v=4","gravatar_id":"","url":"https://api.github.com/users/m3db","html_url":"https://github.com/m3db","followers_url":"https://api.github.com/users/m3db/followers","following_url":"https://api.github.com/users/m3db/following{/other_user}","gists_url":"https://api.github.com/users/m3db/gists{/gist_id}","starred_url":"https://api.github.com/users/m3db/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m3db/subscriptions","organizations_url":"https://api.github.com/users/m3db/orgs","repos_url":"https://api.github.com/users/m3db/repos","events_url":"https://api.github.com/users/m3db/events{/privacy}","received_events_url":"https://api.github.com/users/m3db/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/m3db/m3db","description":"A distributed time series database using M3TSZ float64 compression ","fork":false,"url":"https://api.github.com/repos/m3db/m3db","forks_url":"https://api.github.com/repos/m3db/m3db/forks","keys_url":"https://api.github.com/repos/m3db/m3db/keys{/key_id}","collaborators_url":"https://api.github.com/repos/m3db/m3db/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/m3db/m3db/teams","hooks_url":"https://api.github.com/repos/m3db/m3db/hooks","issue_events_url":"https://api.github.com/repos/m3db/m3db/issues/events{/number}","events_url":"https://api.github.com/repos/m3db/m3db/events","assignees_url":"https://api.github.com/repos/m3db/m3db/assignees{/user}","branches_url":"https://api.github.com/repos/m3db/m3db/branches{/branch}","tags_url":"https://api.github.com/repos/m3db/m3db/tags","blobs_url":"https://api.github.com/repos/m3db/m3db/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/m3db/m3db/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/m3db/m3db/git/refs{/sha}","trees_url":"https://api.github.com/repos/m3db/m3db/git/trees{/sha}","statuses_url":"https://api.github.com/repos/m3db/m3db/statuses/{sha}","languages_url":"https://api.github.com/repos/m3db/m3db/languages","stargazers_url":"https://api.github.com/repos/m3db/m3db/stargazers","contributors_url":"https://api.github.com/repos/m3db/m3db/contributors","subscribers_url":"https://api.github.com/repos/m3db/m3db/subscribers","subscription_url":"https://api.github.com/repos/m3db/m3db/subscription","commits_url":"https://api.github.com/repos/m3db/m3db/commits{/sha}","git_commits_url":"https://api.github.com/repos/m3db/m3db/git/commits{/sha}","comments_url":"https://api.github.com/repos/m3db/m3db/comments{/number}","issue_comment_url":"https://api.github.com/repos/m3db/m3db/issues/comments{/number}","contents_url":"https://api.github.com/repos/m3db/m3db/contents/{+path}","compare_url":"https://api.github.com/repos/m3db/m3db/compare/{base}...{head}","merges_url":"https://api.github.com/repos/m3db/m3db/merges","archive_url":"https://api.github.com/repos/m3db/m3db/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/m3db/m3db/downloads","issues_url":"https://api.github.com/repos/m3db/m3db/issues{/number}","pulls_url":"https://api.github.com/repos/m3db/m3db/pulls{/number}","milestones_url":"https://api.github.com/repos/m3db/m3db/milestones{/number}","notifications_url":"https://api.github.com/repos/m3db/m3db/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/m3db/m3db/labels{/name}","releases_url":"https://api.github.com/repos/m3db/m3db/releases{/id}","deployments_url":"https://api.github.com/repos/m3db/m3db/deployments","created_at":"2016-06-14T20:29:45Z","updated_at":"2018-06-04T18:06:06Z","pushed_at":"2018-06-04T19:19:44Z","git_url":"git://github.com/m3db/m3db.git","ssh_url":"git@github.com:m3db/m3db.git","clone_url":"https://github.com/m3db/m3db.git","svn_url":"https://github.com/m3db/m3db","homepage":"https://m3db.github.io/m3db/","size":10274,"stargazers_count":155,"watchers_count":155,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":12,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":12,"open_issues":110,"watchers":155,"default_branch":"master"}},"base":{"label":"m3db:master","ref":"master","sha":"080cc42939eb0e7c6f7af95b2a5c44fe7f168073","user":{"login":"m3db","id":19937171,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTM3MTcx","avatar_url":"https://avatars0.githubusercontent.com/u/19937171?v=4","gravatar_id":"","url":"https://api.github.com/users/m3db","html_url":"https://github.com/m3db","followers_url":"https://api.github.com/users/m3db/followers","following_url":"https://api.github.com/users/m3db/following{/other_user}","gists_url":"https://api.github.com/users/m3db/gists{/gist_id}","starred_url":"https://api.github.com/users/m3db/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m3db/subscriptions","organizations_url":"https://api.github.com/users/m3db/orgs","repos_url":"https://api.github.com/users/m3db/repos","events_url":"https://api.github.com/users/m3db/events{/privacy}","received_events_url":"https://api.github.com/users/m3db/received_events","type":"Organization","site_admin":false},"repo":{"id":61153677,"node_id":"MDEwOlJlcG9zaXRvcnk2MTE1MzY3Nw==","name":"m3db","full_name":"m3db/m3db","owner":{"login":"m3db","id":19937171,"node_id":"MDEyOk9yZ2FuaXphdGlvbjE5OTM3MTcx","avatar_url":"https://avatars0.githubusercontent.com/u/19937171?v=4","gravatar_id":"","url":"https://api.github.com/users/m3db","html_url":"https://github.com/m3db","followers_url":"https://api.github.com/users/m3db/followers","following_url":"https://api.github.com/users/m3db/following{/other_user}","gists_url":"https://api.github.com/users/m3db/gists{/gist_id}","starred_url":"https://api.github.com/users/m3db/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/m3db/subscriptions","organizations_url":"https://api.github.com/users/m3db/orgs","repos_url":"https://api.github.com/users/m3db/repos","events_url":"https://api.github.com/users/m3db/events{/privacy}","received_events_url":"https://api.github.com/users/m3db/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/m3db/m3db","description":"A distributed time series database using M3TSZ float64 compression ","fork":false,"url":"https://api.github.com/repos/m3db/m3db","forks_url":"https://api.github.com/repos/m3db/m3db/forks","keys_url":"https://api.github.com/repos/m3db/m3db/keys{/key_id}","collaborators_url":"https://api.github.com/repos/m3db/m3db/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/m3db/m3db/teams","hooks_url":"https://api.github.com/repos/m3db/m3db/hooks","issue_events_url":"https://api.github.com/repos/m3db/m3db/issues/events{/number}","events_url":"https://api.github.com/repos/m3db/m3db/events","assignees_url":"https://api.github.com/repos/m3db/m3db/assignees{/user}","branches_url":"https://api.github.com/repos/m3db/m3db/branches{/branch}","tags_url":"https://api.github.com/repos/m3db/m3db/tags","blobs_url":"https://api.github.com/repos/m3db/m3db/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/m3db/m3db/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/m3db/m3db/git/refs{/sha}","trees_url":"https://api.github.com/repos/m3db/m3db/git/trees{/sha}","statuses_url":"https://api.github.com/repos/m3db/m3db/statuses/{sha}","languages_url":"https://api.github.com/repos/m3db/m3db/languages","stargazers_url":"https://api.github.com/repos/m3db/m3db/stargazers","contributors_url":"https://api.github.com/repos/m3db/m3db/contributors","subscribers_url":"https://api.github.com/repos/m3db/m3db/subscribers","subscription_url":"https://api.github.com/repos/m3db/m3db/subscription","commits_url":"https://api.github.com/repos/m3db/m3db/commits{/sha}","git_commits_url":"https://api.github.com/repos/m3db/m3db/git/commits{/sha}","comments_url":"https://api.github.com/repos/m3db/m3db/comments{/number}","issue_comment_url":"https://api.github.com/repos/m3db/m3db/issues/comments{/number}","contents_url":"https://api.github.com/repos/m3db/m3db/contents/{+path}","compare_url":"https://api.github.com/repos/m3db/m3db/compare/{base}...{head}","merges_url":"https://api.github.com/repos/m3db/m3db/merges","archive_url":"https://api.github.com/repos/m3db/m3db/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/m3db/m3db/downloads","issues_url":"https://api.github.com/repos/m3db/m3db/issues{/number}","pulls_url":"https://api.github.com/repos/m3db/m3db/pulls{/number}","milestones_url":"https://api.github.com/repos/m3db/m3db/milestones{/number}","notifications_url":"https://api.github.com/repos/m3db/m3db/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/m3db/m3db/labels{/name}","releases_url":"https://api.github.com/repos/m3db/m3db/releases{/id}","deployments_url":"https://api.github.com/repos/m3db/m3db/deployments","created_at":"2016-06-14T20:29:45Z","updated_at":"2018-06-04T18:06:06Z","pushed_at":"2018-06-04T19:19:44Z","git_url":"git://github.com/m3db/m3db.git","ssh_url":"git@github.com:m3db/m3db.git","clone_url":"https://github.com/m3db/m3db.git","svn_url":"https://github.com/m3db/m3db","homepage":"https://m3db.github.io/m3db/","size":10274,"stargazers_count":155,"watchers_count":155,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":12,"mirror_url":null,"archived":false,"open_issues_count":110,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":12,"open_issues":110,"watchers":155,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/m3db/m3db/pulls/726"},"html":{"href":"https://github.com/m3db/m3db/pull/726"},"issue":{"href":"https://api.github.com/repos/m3db/m3db/issues/726"},"comments":{"href":"https://api.github.com/repos/m3db/m3db/issues/726/comments"},"review_comments":{"href":"https://api.github.com/repos/m3db/m3db/pulls/726/comments"},"review_comment":{"href":"https://api.github.com/repos/m3db/m3db/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/m3db/m3db/pulls/726/commits"},"statuses":{"href":"https://api.github.com/repos/m3db/m3db/statuses/5c688ec88ab393f32ab214528695cb51af77027b"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"arnikola"}}