当前位置: 首页 > news >正文

做网站需要哪些步骤淘宝客wordpress引流

做网站需要哪些步骤,淘宝客wordpress引流,wordpress的标签页,wordpress首页等待画面ceph的存储是无主结构#xff0c;数据分布依赖client来计算#xff0c;有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设#xff1a; 第一#xff0c;pg的数量稳定#xff0c;可以认为保持不变#xff1b; 第二#xff0c; OSD的数量可以增减#xff0c;OSD的…ceph的存储是无主结构数据分布依赖client来计算有两个条主要路径。 1、数据到PG 2、PG 到OSD 有两个假设 第一pg的数量稳定可以认为保持不变 第二 OSD的数量可以增减OSD的存储空间权重不等 由于 PG的数量保持不变由数据来找PGID的环节可以简单处理对数据的key来取hash值再对pg的总数取模即可唯一确认pgidpgidhash(data_key)/pg_num。 难点在于从PG到OSD如果直接用 hash(pgid)/osd_num的模式则OSD有增减的时候数据就有无规律的迁移并且也无法体现OSD的不同权重。 Crush算法就是来解决这个问题的Crush目的是随机跳出一个OSD并且要满足权重越大的OSD挑中的概率越大。 每个OSD有不同的容量比如是4T还是12T的容量可以根据每个OSD的容量定义它的权重以T为单位 比如4T权重设为412T则设为12。 如何将PG映射到不同权重的OSD上面这里可以直接采用CRUSH里面的Straw抽签算法。 核心步骤 1计算HASH draw CRUSHHASH PGID OSDID r )其中把r当做一个常数将PGID OSDID一起作为输入得到一个HASH值。 2增加OSD权重 osdstraw draw 0xffff osdweight draw 0xffff 得到一个0-65535的数字再与OSD的权重相乘以这个作为每个OSD的签长 权重越大的数值越大。 3遍历选取最高的权重 high_draw Crush所计算出的随机数是通过HASH得出来可以保障相同的输入会得出同样的输出结果。 这里只是计算得出了一个OSD在Ceph集群中是会存在多个副本如何解决一个PG映射到多个OSD的问题 将常量r加1 再去计算一遍如果和之前的OSD编号不一样 那么就选取它如果一样的话那么再把r2再重新计算直到选出三个不一样的OSD编号。 如果样本容量足够大 随机数对选中的结果影响逐渐变小 起决定性的是OSD的权重OSD的权重越大 被挑选的概率也就越大。 样本容量足够大到底是多大 到底多大才能按照尽可能按照权重来分布当然是尽量小的样本才好。 样本容量主要由PG和OSD的数量多少来决定其中最关键的还是OSD数量如果OSD很少比如5块盘也能尽量按照权重分布才好。 PG的数量主要是根据数据预估和OSD的数量来定有个理论参考数PG数量 OSD数量* 100/副本数但是PG数量少影响后面的扩容太多又占用过多资源需要有一个平衡。 基于上述考虑写了一个很简单的程序来验证下数据分布平衡性。 假定OSD数量为5并且权重随机PG的数量为5000。 结果1: 1.随机生成5个OSDID和对应权重 OSDIDI0N6nt5pOhjY$g;权重32.0 OSDID.nIjl%3zs3aoE7K;权重16.0 OSDIDS5O9bSS4NMo%qDN;权重1.0 OSDIDt$lZF91ofuvOKcn;权重24.0 OSDID!E2Ia8XE^Jzb5Dz;权重12.0 2.在pg数量为5000的时候PG的分布结果 OSDID!E2Ia8XE^Jzb5Dz;权重12.0;拥有的PG数量625 OSDIDI0N6nt5pOhjY$g;权重32.0;拥有的PG数量2682 OSDIDt$lZF91ofuvOKcn;权重24.0;拥有的PG数量1554 OSDID.nIjl%3zs3aoE7K;权重16.0;拥有的PG数量139 结果2: 1.随机生成5个OSDID和对应权重 OSDIDC%EN$UM!e8nZy.R;权重1.0 OSDID1iTDBnZeeQ6^Uos;权重32.0 OSDID%EMc6a4V5cWi%7D;权重2.0 OSDIDM7WKDUjLrQaV42D;权重64.0 OSDID7OVTOl$XLE$OV$;权重8.0 2.在pg数量为5000的时候PG的分布结果 OSDID1iTDBnZeeQ6^Uos;权重32.0;拥有的PG数量1201 OSDID7OVTOl$XLE$OV$;权重8.0;拥有的PG数量18 OSDIDM7WKDUjLrQaV42D;权重64.0;拥有的PG数量3781 结果3: 1.随机生成5个OSDID和对应权重 OSDIDTSvabIIG#9IssWW;权重12.0 OSDIDXglajmN2q3f5qRI;权重0.8 OSDIDZEeeX^Wp9tHaxuA;权重0.5 OSDIDPSiiRAwddyc^ThW;权重32.0 OSDIDnPI^YbDr0ttVzGa;权重8.0 2.在pg数量为5000的时候PG的分布结果 OSDIDnPI^YbDr0ttVzGa;权重8.0;拥有的PG数量319 OSDIDPSiiRAwddyc^ThW;权重32.0;拥有的PG数量3816 OSDIDTSvabIIG#9IssWW;权重12.0;拥有的PG数量865 package com.test.zhangzk.crush;import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Random;public class TestCephCrush {static String str abcdefghijklmnopqrstuvwxyzABCDEDFGHIJKLMNOPQRSTUVWXYZ0123456789.!#$%^*;static Float[] factories new Float[] {0.25f,0.5F,0.8f,1f,2f,4f,8f,12f,16f,20f,24f,32f,64f};static int pgidCount 5000;static int osdCount 5;public static void main(String[] args) {ListString pgidList getRandomPgIdList(pgidCount);ListOSDBean osdList getRandomOSDIdList(osdCount);HashMapString,Integer keyCount new HashMapString,Integer();for(int i0;ipgidCount;i) {float maxStraw 0.0f;float osdFactor 0.0f;String osdId ;for( int j0;josdCount;j) {String key pgidList.get(i) osdList.get(j);int hashCode key.hashCode() 0xffff;float straw hashCode * osdList.get(j).getFactor();if( maxStraw straw) {maxStraw straw;osdFactor osdList.get(j).getFactor();osdId osdList.get(j).getId();}}String key OSDIDosdId ;权重 osdFactor;Integer v keyCount.get(key);if( v null ) {keyCount.put(key, 1);}else {keyCount.put(key, v1);} }System.out.println(2.在pg数量为 pgidCount 的时候PG的分布结果);for(String k:keyCount.keySet()){System.out.println(k ;拥有的PG数量 keyCount.get(k));}}private static ListString getRandomPgIdList(int pgidCount){// TODO Auto-generated method stubListString pgidList new ArrayListString();java.util.Random r new Random(System.currentTimeMillis());for( int i0;ipgidCount;i) {StringBuilder sb new StringBuilder();for( int j0;j10;j) {sb.append(str.charAt(r.nextInt(str.length()-1)));}pgidList.add(sb.toString());}return pgidList;}private static ListOSDBean getRandomOSDIdList(int osdCount){System.out.println(1.随机生成 osdCount 个OSDID和对应权重);// TODO Auto-generated method stubListOSDBean osdList new ArrayListOSDBean();java.util.Random r new Random(System.currentTimeMillis());for( int i0;iosdCount;i) {StringBuilder sb new StringBuilder();for( int j0;j15;j) {sb.append(str.charAt(r.nextInt(str.length()-1)));}OSDBean osd new OSDBean();osd.setId(sb.toString());osd.setFactor(factories[r.nextInt(factories.length)]);System.out.println( OSDID sb.toString() ;权重 osd.getFactor() );osdList.add(osd);}return osdList;} }class OSDBean {private String id;private float factor;public String getId() {return id;}public void setId(String id) {this.id id;}public float getFactor() {return factor;}public void setFactor(float factor) {this.factor factor;} }
http://wiki.neutronadmin.com/news/374059/

相关文章:

  • 南京学网站建设广州10大网站服务品牌
  • 短网址生成站长工具休闲旅游网站建设
  • wordpress设置网站导航电子商务网站的建设包含哪些流程
  • 什么是网站实施小程序云开发收费
  • 建邺网站建设正规app开发价格表
  • 网站开发翻译软文写作案例
  • 网站建设课程的感受福田欧辉校车
  • 做手机网站兼容wordpress文章推送公众号
  • 旅游网站的功能结构图怎么做国际网站
  • 网站安全维护包括什么建站公司网站论坛
  • 优秀国外网站设计赏析怎样才能创建网站
  • c 网站开发的优点wordpress无法进入仪表盘
  • 给我一个网站贴吧营销qq购买
  • 如何外贸网站推广电商网站零售客户
  • 网站建设和维护视频长沙公司网页设计
  • 做网站 需要工信部备案吗表格制作教程从零开始
  • 网站云主机自己做的网站被举报违反广告法
  • 北仑网站建设培训做企业网站设计价格是多少钱
  • 做网站软件图标是一个箭头的北京开网站建设公司
  • 云南住房建设厅网站高端猎头公司排名
  • WordPress养老院主题青岛seo网站关键词优化
  • 温州市永嘉上塘建设局网站seo优化网站查询
  • 株洲企业网站建设品牌wordpress注册插件中文版
  • 云南网站开发公司wordpress书籍主题
  • 郑州网站优化平台wordpress绿色框
  • 金融网站开发文档北京网站建设推广服
  • django网站开发逻辑设计网站网络营销公司
  • 红色旅游网站页面建设广州网站关键排名
  • 网站模板 北京公司手表网站制作模板
  • 盐城公司做网站备份wordpress网站