{"action":"created","issue":{"url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/16","labels_url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/16/labels{/name}","comments_url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/16/comments","events_url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/16/events","html_url":"https://github.com/GiraffaFS/giraffa/issues/16","id":69232873,"number":16,"title":"\"The Bootstrap Algorithm\"","user":{"login":"shvachko","id":11998604,"avatar_url":"https://avatars.githubusercontent.com/u/11998604?v=3","gravatar_id":"","url":"https://api.github.com/users/shvachko","html_url":"https://github.com/shvachko","followers_url":"https://api.github.com/users/shvachko/followers","following_url":"https://api.github.com/users/shvachko/following{/other_user}","gists_url":"https://api.github.com/users/shvachko/gists{/gist_id}","starred_url":"https://api.github.com/users/shvachko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shvachko/subscriptions","organizations_url":"https://api.github.com/users/shvachko/orgs","repos_url":"https://api.github.com/users/shvachko/repos","events_url":"https://api.github.com/users/shvachko/events{/privacy}","received_events_url":"https://api.github.com/users/shvachko/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/GiraffaFS/giraffa/labels/Priority-Low","name":"Priority-Low","color":"ededed"},{"url":"https://api.github.com/repos/GiraffaFS/giraffa/labels/Type-Defect","name":"Type-Defect","color":"ededed"}],"state":"open","locked":false,"assignee":{"login":"shvachko","id":11998604,"avatar_url":"https://avatars.githubusercontent.com/u/11998604?v=3","gravatar_id":"","url":"https://api.github.com/users/shvachko","html_url":"https://github.com/shvachko","followers_url":"https://api.github.com/users/shvachko/followers","following_url":"https://api.github.com/users/shvachko/following{/other_user}","gists_url":"https://api.github.com/users/shvachko/gists{/gist_id}","starred_url":"https://api.github.com/users/shvachko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shvachko/subscriptions","organizations_url":"https://api.github.com/users/shvachko/orgs","repos_url":"https://api.github.com/users/shvachko/repos","events_url":"https://api.github.com/users/shvachko/events{/privacy}","received_events_url":"https://api.github.com/users/shvachko/received_events","type":"User","site_admin":false},"milestone":null,"comments":1,"created_at":"2015-04-17T22:43:22Z","updated_at":"2015-06-26T01:22:30Z","closed_at":null,"body":"Original [issue 16](https://code.google.com/p/giraffa/issues/detail?id=16) created by shvachko on 2012-08-17T06:11:01.000Z:\n\nWe need to implement a start-up process for HBase so that it does not rely on a Namenode to go into HDFS.\r\n\r\nThis will be fairly complicated but once in place (and BlockManagementAgent does not rely on DFS) we will be rid of the traditional NameNode altogether."},"comment":{"url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/comments/115451928","html_url":"https://github.com/GiraffaFS/giraffa/issues/16#issuecomment-115451928","issue_url":"https://api.github.com/repos/GiraffaFS/giraffa/issues/16","id":115451928,"user":{"login":"shvachko","id":11998604,"avatar_url":"https://avatars.githubusercontent.com/u/11998604?v=3","gravatar_id":"","url":"https://api.github.com/users/shvachko","html_url":"https://github.com/shvachko","followers_url":"https://api.github.com/users/shvachko/followers","following_url":"https://api.github.com/users/shvachko/following{/other_user}","gists_url":"https://api.github.com/users/shvachko/gists{/gist_id}","starred_url":"https://api.github.com/users/shvachko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shvachko/subscriptions","organizations_url":"https://api.github.com/users/shvachko/orgs","repos_url":"https://api.github.com/users/shvachko/repos","events_url":"https://api.github.com/users/shvachko/events{/privacy}","received_events_url":"https://api.github.com/users/shvachko/received_events","type":"User","site_admin":false},"created_at":"2015-06-26T01:22:30Z","updated_at":"2015-06-26T01:22:30Z","body":"The high level idea here is to short-circuit HBase into Giraffa, so that HBase files were stored in Giraffa instead of HDFS.\r\nAs the first step I introduced ``BootstrapFileSystem``. It extends GiraffaFileSystem and has ``isBootStrapped``. While in bootstrap mode it holds all files in an in-memory map. The map maps\r\n``file-path -> {FileStatus, data}``\r\nIt represents the smallest subset of the HBase files needed to bootstrap it, which include HBase version, cluster id, and ``hbase:meta``. The rest should go into Giraffa.\r\n``BootstrapFileSystem`` saves the map into a Giraffa block, called *super block*. When ``BootstrapFileSystem`` instantiated it reads data from the super block, which should bring up ``hbase:meta``, from which we should be able to restore other tables."}}