{"action":"created","issue":{"url":"https://api.github.com/repos/iotaledger/iri/issues/579","repository_url":"https://api.github.com/repos/iotaledger/iri","labels_url":"https://api.github.com/repos/iotaledger/iri/issues/579/labels{/name}","comments_url":"https://api.github.com/repos/iotaledger/iri/issues/579/comments","events_url":"https://api.github.com/repos/iotaledger/iri/issues/579/events","html_url":"https://github.com/iotaledger/iri/pull/579","id":305057922,"number":579,"title":"Complete overhaul of Networking, Reporting, Threading","user":{"login":"directorm","id":37165104,"avatar_url":"https://avatars3.githubusercontent.com/u/37165104?v=4","gravatar_id":"","url":"https://api.github.com/users/directorm","html_url":"https://github.com/directorm","followers_url":"https://api.github.com/users/directorm/followers","following_url":"https://api.github.com/users/directorm/following{/other_user}","gists_url":"https://api.github.com/users/directorm/gists{/gist_id}","starred_url":"https://api.github.com/users/directorm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/directorm/subscriptions","organizations_url":"https://api.github.com/users/directorm/orgs","repos_url":"https://api.github.com/users/directorm/repos","events_url":"https://api.github.com/users/directorm/events{/privacy}","received_events_url":"https://api.github.com/users/directorm/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-03-14T08:07:08Z","updated_at":"2018-03-14T10:11:04Z","closed_at":null,"author_association":"NONE","pull_request":{"url":"https://api.github.com/repos/iotaledger/iri/pulls/579","html_url":"https://github.com/iotaledger/iri/pull/579","diff_url":"https://github.com/iotaledger/iri/pull/579.diff","patch_url":"https://github.com/iotaledger/iri/pull/579.patch"},"body":"**Complete overhaul of Networking, Reporting, and Threading.**\r\n\r\nReduced running threads by almost a 100 threads.\r\n\r\n1. Made Non-Blocking incoming TCP replicator. The outgoing TCP is now push driven by Striped Executor tasks and properly connects/reconnects immediately handling typical errors.\r\n\r\n2. Revised outgoing TCP and UDP for better control flow and error handling/recovery.\r\n\r\n3. Moved a lot of threading (scheduled tasks etc.) into a Striped Executor for better control of thread allocation and purposes.\r\n\r\n4. Revised Node.java to use Striped Executor for all request/reply/processing/broadcast tasks as well as enhanced queue management.\r\n\r\n5. Created Non-blocking DNS Refresher - no more 30 second DNS refresh waits.\r\n\r\n6. Separated out Neighbor management functions into a dedicated class - NeighborManager.java.\r\n\r\n7. Made small changes wherever code was unclear.\r\n\r\n8. Merged fixed Hash class as per recent github issues.\r\n\r\n9. Introduced some locking in critical classes and cleaned up encapsulation.\r\n\r\n10. Created functional interfaces and some useful utility classes.\r\n\r\nLogging is a bit verbose - but left it in to show the new inner workings.\r\nAll tests passed.\r\nWorks very well. \r\n\r\nNew package dirs: exec, scheduledReports, scheduledTasks, funcinterfaces, textutils - are all new. All old networking code cleaned out."},"comment":{"url":"https://api.github.com/repos/iotaledger/iri/issues/comments/372968985","html_url":"https://github.com/iotaledger/iri/pull/579#issuecomment-372968985","issue_url":"https://api.github.com/repos/iotaledger/iri/issues/579","id":372968985,"user":{"login":"th0br0","id":30996,"avatar_url":"https://avatars0.githubusercontent.com/u/30996?v=4","gravatar_id":"","url":"https://api.github.com/users/th0br0","html_url":"https://github.com/th0br0","followers_url":"https://api.github.com/users/th0br0/followers","following_url":"https://api.github.com/users/th0br0/following{/other_user}","gists_url":"https://api.github.com/users/th0br0/gists{/gist_id}","starred_url":"https://api.github.com/users/th0br0/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/th0br0/subscriptions","organizations_url":"https://api.github.com/users/th0br0/orgs","repos_url":"https://api.github.com/users/th0br0/repos","events_url":"https://api.github.com/users/th0br0/events{/privacy}","received_events_url":"https://api.github.com/users/th0br0/received_events","type":"User","site_admin":false},"created_at":"2018-03-14T10:11:04Z","updated_at":"2018-03-14T10:11:04Z","author_association":"COLLABORATOR","body":"Hey! Thanks for your large PR. I agree that a rewrite of the networking is required.\r\n\r\nDo you perchance have a split-up version of your changes?\r\nAlso, what's your motivation for not using an established networking stack - e.g. netty?\r\n\r\nAt some point, I had time to start on rewriting everything using netty - but it's still missing some functionality: https://github.com/th0br0/iri/pull/1"}}
{"actor":{"display_login":"th0br0"}}