Handle标识解析系统(技术篇)参考文档:rfc3650,3651,3652演讲人:Kevinkuo目录CONTENTS2134Handle就是一种简单的(K,V)类型的分布式的数据库系统粗糙的解释Handle是什么?01对标什么?DNS域名:(向权威机构注册)域名翻译:(配置管理,翻译)资源定位:其他……Handle是什么?01长什么样?Handle::=HandleNamingAuthority/HandleLocalName就这鸟样了10.1045/january99-bearmanHandle是什么?01Fuck?!还不懂?!细说一下这个字符串!!!Handle是什么?0110.1045.xxx/january99-bearman前缀后缀前后缀分割符根一级二级层级分割符这是个啥?UTF8字符串,不包括:”.”,”/”一串字符串它预示着什么?10.1045.xxx/january99-bearman*用“/”分隔出Handle前缀和后缀,难道是层级结构?!*用“.”给Handle前缀也分层了,前缀也有层级结构!*结合DNS的猜想,前缀和后缀拼起来应该是唯一的!*说好的(K,V)呢?Handle是什么?01用“/”分出的层级结构10.1045.xxx/january99-bearman引出两个概念:GHR:LHS:GlobalHandleRegistryLocalHandleServicesHandle是什么?01你猜的没错!GHRLHSLHSLHS…Handle是什么?01层级一层级二/10.1045.xxxjanuary99-bearman10.1045.xxxHandle是什么?01说说他的唯一性*EveryhandleisgloballyuniquewithintheHandleSystem.*Anylocalnamemustbeuniqueunderitslocalnamespace.*TheuniquenessofanamingauthorityandalocalnameunderthatauthorityensuresthatanyhandleisgloballyuniquewithinthecontextoftheHandleSystem.Handle是什么?01该说说(K,V)了也许你猜到了,(_____?)就是我们说的Key那Value有是啥呢?类比一下DNS什么是Value?Handle是什么?01index:索引4字节无符号整型type:数据类型,包括系统预定义:HS_ADMIN,HS_SITE,HS_NA_DELEGATE,HS_SERV,HS_ALIAS,HS_PRIMARY,HS_VLISTdata:数据,前4个字节表示长度,后面是数据的字节码TTL:4字节,用于缓存permission:8bit权限掩码包括:PUBLIC_WRITE,PUBLIC_READ,ADMIN_WRITE,ADMIN_READ,PUBLIC_EXECUTE,ADMIN_EXECUTEtimestamp:Value最后更新时间,精确到微秒reference:4字节引用数,Handle:Index列表Handle是什么?01请注意Value是一个集合哦!Value的基本结构HandleTMD到底是什么?!由你来回答?!Handle是什么?01Handle是一种简单的(K,V)类型的分布式的数据库系统用脚指头想一想……Handle能干什么?02那么你说他能干什么??能新增Key和对应的Value值能修改Key和对应的Value值能删除Key和对应的Value值能查询Key和对应的Value值增删改查我们在哪里见过?!Handle能干什么?02Handle是一种简单的(K,V)类型的分布式的数据库系统那么你说他能干什么??不会只有这些了吧?!这会你的脑袋可以用一用了……Handle能干什么?02据前文所述,1个Handle可以有N个值?!没错Handle系统没有限制!!!据前文所述,1个Handle还有一个HS_ADMIN的值?!没错Handle系统可以对每个Handle做细粒度的管理!!!还有Handle系统的分布式能力还有Handle系统的服务模式还有Handle系统的安全功能还有……Handle能干什么?02正儿八经的总结Handle能干→管理类的事情解析类的事情附带的能力K(Handle)部分管理V(Value)部分管理认证、增、删、改认证、增、删、改查询及查询响应给你一个Handle:Index或别的你给我值啊你!分布式能力服务模式安全能力Handle能干什么?02一个烧脑的话题!!!从何讲起呢?!前方高能物质过来,请带好您的大脑!!!Handle是怎么干的?03要解析(查询),得先有(Handle和Handle的值)才行吧???Step1.那么先来看看如何有这个东东(Handle和Handle的值)Handle是怎么干的?03Step1.创建1个Handle还记得吗?Handle::=HandleNamingAuthority/HandleLocalName10.1045/january99-bearman从何而来?Handle是怎么干的?03Handle架构(粗)提供注册10.1045提供解析定位10.1045对应的LHS提供创建和管理10.1045下的Handle提供解析10.1045下Handle的值10.1045/january99-bearmanHandle是怎么干的?03Site1LHS1svr1svr2ClientLHS查询定位查询Handle注册和同步GHRSite(1)Site(n)…svr1svr2svr1svr2Site2LHS1svr1svr2Site3LHS1svr1svr2…Step1.创建1个HandleHandle架构(Handle视图)GHR0.NA/0.NA(RootHandle)86.12.11/january99-bearmanLHSRootservice10.20.27.22.86....86.11.86.12.86.xx.Localservice86.12.11.86.12.12.86.12.13.LHS186.12.11/xxx-yyy86.12.12/xxx-yyyLHS286.12.13/xxx-yyyHandle1-ValuesHandle2-ValuesHandle3-Values……Handle1-ValuesHandle2-ValuesHandle3-Values……Handle1-ValuesHandle2-ValuesHandle3-Values……86.12.11/january99-bearman提供注册10.1045提供解析定位10.1045对应的LHSHS_SITE/HS_SERVOnlyone提供创建和管理10.1045下的Handle提供解析10.1045下Handle的值Handle是怎么干的?03Step1.创建1个HandleHandle架构(分布式视图)LocalHandleService(86.11.xxx/xxx-yyy)单Root服务多LHS服务Roothandleservice(0.NA/0.NA)Site1(主)Site2(从)server1server2server3……server1server2LocalHandleService(86.12.xxx/xxx-yyy)…复制Site2(从)Site1(主)server1server2server3……server1server2复制GHRRootserviceLHSLocalserviceHandle是怎么干的?03Step1.创建1个Handle……Site1(主)server1server2server3……复制86.11/myfirsthandle我X这个Handle到底怎么创建啊?!Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle1.访问这里:选择一级前缀或二级代理注册?3.填资料,交钱,部署服务……Handle是怎么干的?03Step1.创建1个HandleHandle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle填资料交钱部署服务……抽象来看填资料你审核资料GHR申请86.128.100批注注册GHR资料和钱都OK部署LHS你感知到你在哪里GHR更新SITE信息开工咯Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle注册了86.128.100,也有了自己的LHS,这下可以创建Handle了吧???Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle还有两个问题!!!纳尼?!1.要想在86.128.100下创建Handle,需要找到对应的LHS?2.用什么方式告诉LHS创建这个Handle?Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle1.要想在86.128.100下创建Handle,需要找到对应的LHS?Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle1.要想在86.128.100下创建Handle,需要找到对应的LHS?给你一段英文自己找重点!InordertocommunicatewiththeGHR,clientsoftwareneedstheGHRserviceinformationbeforehand.Theserviceinformationmaybedistributedinitiallywiththeclientsoftware,orobtainedfromsomeothersecuresources(e.g.,postalmail,securewebsite,etc.).ClientsoftwaremaykeeptheserviceinformationtocommunicatewiththeGHRuntiltheserviceinformationbecomesexpired(accordingtoitsTTL).Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandle那Client怎么找到GHR呢??1.要想在86.128.100下创建Handle,需要找到对应的LHS?GHRserviceinformationintermsofasetofHS_SITEvaluesSerialNumber:2字节,从0开始,步长1,同步C-S值版本PrimaryMsk:1字节,标识是否为主Site,多主Site,可感知架构HashOption:1字节,HASH_BY_HANDLE,HASH_BY_NA,HASH_BY_LOCALAttributeList:4字节标识(k,v)对数,接下来跟着(k,v)对NumOfServer:4字节,site下的服务器数目服务信息:ServerID:4字节PublicKeyRecord:4字节标识key长度,后面接key内容ServiceInterface:包含类型,传输协议,服务端口Handle是怎么干的?03Step1.创建1个Handle86.128.100/myfirsthandleHandle是怎么干的?03Step1.创建1个Handle2.用什么方式告诉LHS创建这个Handle?一般协议86.128.100/myfirsthandle服务端认证客户端一般认证协议客户端认证服务端2.