{"action":"created","issue":{"url":"https://api.github.com/repos/sisoputnfrba/foro/issues/868","repository_url":"https://api.github.com/repos/sisoputnfrba/foro","labels_url":"https://api.github.com/repos/sisoputnfrba/foro/issues/868/labels{/name}","comments_url":"https://api.github.com/repos/sisoputnfrba/foro/issues/868/comments","events_url":"https://api.github.com/repos/sisoputnfrba/foro/issues/868/events","html_url":"https://github.com/sisoputnfrba/foro/issues/868","id":259339381,"number":868,"title":"Consulta File system / Multiples datanodes","user":{"login":"Gruschka","id":11674324,"avatar_url":"https://avatars1.githubusercontent.com/u/11674324?v=4","gravatar_id":"","url":"https://api.github.com/users/Gruschka","html_url":"https://github.com/Gruschka","followers_url":"https://api.github.com/users/Gruschka/followers","following_url":"https://api.github.com/users/Gruschka/following{/other_user}","gists_url":"https://api.github.com/users/Gruschka/gists{/gist_id}","starred_url":"https://api.github.com/users/Gruschka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gruschka/subscriptions","organizations_url":"https://api.github.com/users/Gruschka/orgs","repos_url":"https://api.github.com/users/Gruschka/repos","events_url":"https://api.github.com/users/Gruschka/events{/privacy}","received_events_url":"https://api.github.com/users/Gruschka/received_events","type":"User","site_admin":false},"labels":[{"id":250745142,"url":"https://api.github.com/repos/sisoputnfrba/foro/labels/enunciado","name":"enunciado","color":"eb6420","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":1,"created_at":"2017-09-21T00:16:15Z","updated_at":"2017-09-23T22:37:10Z","closed_at":null,"author_association":"NONE","body":"Hola chicos!\r\n\r\nTengo una duda sobre como implementar el hecho de que al FS se le conecten muchos DataNodes y que pueda hacerle pedidos a cada uno de ellos cuando los necesite.\r\n\r\nClaramente el FS seria un servidor y los DataNodes clientes que se le van conectando, ahora bien, cual seria la mejor manera para manejar esas multiples conexiones? Por otra parte, no veo como hacer para pedirle algo a un nodo que se conecto hace un tiempo.\r\n\r\nEstoy evaluando dos alternativas pero no se que tan correctas sean:\r\n\r\n1. Por cada nodo que se conecte crear un hilo nuevo con cada conexion de un data node al file system (seria un child del hilo principal que ejecuto al levantar el FS que basicamente lo que hace esperar conexiones entrantes de data nodes). Osea que yo en mi hilo que escucha nuevas conexiones, debajo del accept llamo a pthread_create.\r\n2. Uso [select](http://man7.org/linux/man-pages/man2/select.2.html) que aparentemente permite monitorear muchos fd. \r\n\r\nNo estoy seguro de ninguna de estas maneras y en ambos casos mi duda persiste en cómo hago para pedirle a cada datanode informacion una vez que ya se conectaron.\r\n\r\nMuchas gracias!\r\n\r\nSlds"},"comment":{"url":"https://api.github.com/repos/sisoputnfrba/foro/issues/comments/331674233","html_url":"https://github.com/sisoputnfrba/foro/issues/868#issuecomment-331674233","issue_url":"https://api.github.com/repos/sisoputnfrba/foro/issues/868","id":331674233,"user":{"login":"Gruschka","id":11674324,"avatar_url":"https://avatars1.githubusercontent.com/u/11674324?v=4","gravatar_id":"","url":"https://api.github.com/users/Gruschka","html_url":"https://github.com/Gruschka","followers_url":"https://api.github.com/users/Gruschka/followers","following_url":"https://api.github.com/users/Gruschka/following{/other_user}","gists_url":"https://api.github.com/users/Gruschka/gists{/gist_id}","starred_url":"https://api.github.com/users/Gruschka/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Gruschka/subscriptions","organizations_url":"https://api.github.com/users/Gruschka/orgs","repos_url":"https://api.github.com/users/Gruschka/repos","events_url":"https://api.github.com/users/Gruschka/events{/privacy}","received_events_url":"https://api.github.com/users/Gruschka/received_events","type":"User","site_admin":false},"created_at":"2017-09-23T22:37:10Z","updated_at":"2017-09-23T22:37:10Z","author_association":"NONE","body":"Hola @tferraro !\r\n\r\nEstuve viendo esto por mi cuenta y hoy fui a la clase de consulta en campus.\r\n\r\nEntiendo que es una cuestion de diseño y que ambas vias son validas tecnicamente. Por un lado hacerlo con hilos me parecia lo mas 'modular' y sencillo de implementar, ya que se manejar hilos yo pero select nunca use. Ademas, se me ocurre que usar hilos para cada Data Node puede ser mas util si le saco provecho al paralelismo / concurrencia.\r\n\r\nEl problema que tengo ahora es que a nivel diseño no se como sacarle provecho al paralelismo de los hilos, por como tengo encarado el FS. Actualmente tengo el hilo main que corre lo que es el FS y dos hilos hijos del main: Uno que escucha conexiones entrantes que sean Data Nodes y otro que espera al YAMA que se dispara solo cuando el FS este estable. La idea es que del hilo que escucha conexiones de Data Nodes, salgan _n_ hilos hijos de dicho hilo siendo _n_ cada Data Node nuevo. Si mal no entendi en la consultas que hice hoy en campus, esto no me estaria permitiendo sacar provecho del paralelismo, puede ser? Estoy encarando mal el diseño del FS?\r\n\r\nGracias como siempre!"}}
{"actor":{"display_login":"Gruschka"}}