{"action":"created","issue":{"url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/30","labels_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/30/labels{/name}","comments_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/30/comments","events_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/30/events","html_url":"https://github.com/stanford-futuredata/macrobase/pull/30","id":126802915,"number":30,"title":"Adding stress tester and fixing two bugs in StreamingFPGrowth. Should fix #25.","user":{"login":"pbailis","id":970191,"avatar_url":"https://avatars.githubusercontent.com/u/970191?v=3","gravatar_id":"","url":"https://api.github.com/users/pbailis","html_url":"https://github.com/pbailis","followers_url":"https://api.github.com/users/pbailis/followers","following_url":"https://api.github.com/users/pbailis/following{/other_user}","gists_url":"https://api.github.com/users/pbailis/gists{/gist_id}","starred_url":"https://api.github.com/users/pbailis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbailis/subscriptions","organizations_url":"https://api.github.com/users/pbailis/orgs","repos_url":"https://api.github.com/users/pbailis/repos","events_url":"https://api.github.com/users/pbailis/events{/privacy}","received_events_url":"https://api.github.com/users/pbailis/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"milestone":null,"comments":1,"created_at":"2016-01-15T03:50:36Z","updated_at":"2016-01-15T03:57:18Z","closed_at":"2016-01-15T03:50:56Z","pull_request":{"url":"https://api.github.com/repos/stanford-futuredata/macrobase/pulls/30","html_url":"https://github.com/stanford-futuredata/macrobase/pull/30","diff_url":"https://github.com/stanford-futuredata/macrobase/pull/30.diff","patch_url":"https://github.com/stanford-futuredata/macrobase/pull/30.patch"},"body":"I wrote a stress test for the StreamingFPTree and found two bugs, one of which should correspond to #25.\r\n\r\n*Bug one:* When we merge two nodes, and the receiving node doesn't have any children, it needs to be marked as a leaf node. Otherwise, the node is removed from the tree twice [L169](https://github.com/stanford-futuredata/macrobase/commit/928636ed92ccd6d9197bbf903ddea9cdc03e5a81#diff-17a5f28a45018f3282473cce06fb484fR169).\r\n\r\n*Bug two:* We should only remove a node from the tree when it no longer has children; this seems paradoxical but can be possible with low precision doubles (or if someone inserts a transaction with count zero) [L640](https://github.com/stanford-futuredata/macrobase/compare/master...fptree-fixes#diff-17a5f28a45018f3282473cce06fb484fR640). I believe this is actually a bug instead of just hiding another behavior; the stress test doesn't pass otherwise."},"comment":{"url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/comments/171866286","html_url":"https://github.com/stanford-futuredata/macrobase/pull/30#issuecomment-171866286","issue_url":"https://api.github.com/repos/stanford-futuredata/macrobase/issues/30","id":171866286,"user":{"login":"deepakn94","id":2724038,"avatar_url":"https://avatars.githubusercontent.com/u/2724038?v=3","gravatar_id":"","url":"https://api.github.com/users/deepakn94","html_url":"https://github.com/deepakn94","followers_url":"https://api.github.com/users/deepakn94/followers","following_url":"https://api.github.com/users/deepakn94/following{/other_user}","gists_url":"https://api.github.com/users/deepakn94/gists{/gist_id}","starred_url":"https://api.github.com/users/deepakn94/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/deepakn94/subscriptions","organizations_url":"https://api.github.com/users/deepakn94/orgs","repos_url":"https://api.github.com/users/deepakn94/repos","events_url":"https://api.github.com/users/deepakn94/events{/privacy}","received_events_url":"https://api.github.com/users/deepakn94/received_events","type":"User","site_admin":false},"created_at":"2016-01-15T03:57:18Z","updated_at":"2016-01-15T03:57:18Z","body":"I don't quite understand what \"this seems paradoxical but can be possible with low precision doubles\" means :)\r\nAlso, we allow inserting transactions with count 0?!?"}}