当前位置:  编程技术>综合
本页文章导读:
    ▪解读Google分布式锁服务      背景介绍 在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文。 在此之前,Google的索引更新,采用的的批处理的方式(map/reduce),也.........
    ▪变量和常量(C#)                程序的开发离不开变量和常量的应用。我们在学习vb的时候,也对变量和常量有了一定的了解,其实非常简单,变量就是本身被用于存储特定类型的数据.........
    ▪人力资源之选人方法学习笔记1_建立科学的人才观           从单位人力专员上学到的一句话:优先招聘德行好并且技术好的;再招德行好但是技术不太好的;再招德行不太好但是技术好的;德行与技术都不太好的不建议招聘。   .........

[1]解读Google分布式锁服务
    来源: 互联网  发布时间: 2013-11-07
背景介绍

在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文。

在此之前,Google的索引更新,采用的的批处理的方式(map/reduce),也就是当增量数据达到一定规模之后,把增量数据和全量索引库Join,得到最新的索引数据。采用新的索引更新系统之后,数据的生命周期缩短了50%,所谓的数据生命周期是指,数据从网页上爬下来,到展现在搜索结果中这段时间间隔,但是正如Google所强调的,这一系统仅仅是为增量更新所建立的,并没有取代map/reduce的批量作业处理模式。

架构Overview

Google的新一代增量索引更新 – Percolator,是建立在Bigtable之上,提供的API也尽量接近Bigtable的方式,所以整个架构大致是如下的样子:

事务(Transaction)和锁(Lock)有区别吗?

在关系数据库领域,二者还是有很大区别的,但是对Percolator而言,Transaction = Lock,所以我们这里讨论的分布式锁,也可以说是分布式事务,所以下面提到的锁或者事务,指的都是同一件事。

Percolator利用Bigtable原有的行锁,再加上自己的一些巧妙的做法,实现了分布式锁服务,这就意味着,Google可以实时的更新PB级别的索引库。最近我们发现Google的搜索结果时效性很好,刚写好的文章,几分钟之后,Google就可以检索到,原因就在Google的Crawler在抓到新的网页之后,不用再等待一定的时间批量更新索引,而是实时的更新,数据生命周期大大缩短。

Percolator支持跨行,跨表的事务,充分利用了Bigtable本身已经有的行事务、备份机制。

简单的示例

在分析Percolator的细节之前,先看一个简单的例子,对Percolator有一个大概的认识,有利于后面的理解。

下面的这个例子是把UserA的人气分减掉10,加到UserB的人气分上,key表示每一行的key,data,lock,write是列名字,data存储数据,lock存储锁状态,write表示事务提交后的数据位置引用.

初始状态:UserA有100个人气分,UserB有50个人气分

最终状态:UserA有90个人气分,UserB有60个人气分

Step0(初始状态)

Key Data Lock Write UserA 100:t1     UserB 50:t2    

Step1(从UserA中拿出10个人气分)

Key Data Lock Write UserA 90:t2100:t1 Primary Lock:t2 t2 UserB 50:t2    

Step2(把UserB的人气分加10)

Key Data Lock Write UserA 90:t2100:t1 primary_lock:t2 t2 UserB 60:t350:t2 Primary_lock:UserA@data t3

Step3(事务提交)

A:先提交primary(移除锁,写入新的timestamp,在write列写入新数据的位置引用)

Key Data Lock
    
[2]变量和常量(C#)
    来源: 互联网  发布时间: 2013-11-07

         程序的开发离不开变量和常量的应用。我们在学习vb的时候,也对变量和常量有了一定的了解,其实非常简单,变量就是本身被用于存储特定类型的数据,而常量则存储不变的数据值。

一、变量

   1.基本概念:

        变量本身被用于存储特定类型的数据,可以根据需要随时改变变量中所存储的数据值。变量具有名称、类型和值。和类相同,使用变量之前也必须声明变量,即指定变量的类型和名称。

   2.变量类型:

        C#中变量类型根据定义可以分为两种:一种是值类型,另一种是引用类型。两者的差异在于数据的存储方式。值类型的变量本身直接存储数据,而引用类型则存储实际数据的引用,程序通过此引用找到真正的数据。

     (1)值类型

              值类型主要包含整数类型、浮点类型以及布尔类型等。值类型变量在堆栈中进行分配,所有效率很高。

          A.整数类型:

          在这里说明了每个数据类型的范围,是为了我们可以根据数值的大小选择合适的数据类型,否则可能会导致运算溢出的处理。

          例如:声明一个byte类型的变量Android并初始化为255,并输出。代码如下:

static voidMain(string[] args)       

        {

            byte android =255;                               //声明一个byte类型的变量Android

            Console.WriteLine("android={0}",android  );      //输出byte类型变量Android

            Console.ReadLine();

        }

         结果显示:

              

       当byte类型的初始值换为256时,见代码:

 static void Main(string[] args)       

        {

            byte android =256;                               //声明一个byte类型的变量Android

            Console.WriteLine("android={0}",android  );      //输出byte类型变量Android

            Console.ReadLine();

        }

          则会出现以下错误:

       这么两个简单的例子,就非常形象的说明了数据类型范围的重要性。

 

       B.浮点类型:

      主要处理含有小数的数值类型,主要包含float和double两种类型。

        没有特别指定的情况数值默认是double类型,如果需要使用float类型变量时,必须在数值的后面跟随f或F,对其进行强制转换。例如:

float theMySum = 9.27f;    //使用f强制指定为float类型

float theMySum = 9.27F;    //使用F强制指定为float类型

            将float类型转换为double类型也是类似,只要将float写成double,将f或F写成d或D就可以了。

     C.布尔类型:

      主要用来表示true/false值,大多数被应用在流程控制语句,例如循环语句或if语句等中。

(补充:在定义全局变量时,如果没有指定,整数类型和浮点类型的默认初始值为0,布尔类型为false。)

  (2)引用类型

         所有被称为“类”的都是引用类型,主要包括类、接口、数组和委托。

         下面是使用引用类型变量的一个应用程序:

    class Program

    {

        class C                                     //创建一个类C

        {

            public int Value =0;                    //声明一个公共int类型的变量value

        }

        static void Main(string[]args)                    

        {

            int v1 = 0;                            //声明一个公共int类型的变量v1,并初始化为0       

            int v2 = v1;                             //声明一个公共int类型的变量v2,并将V1赋值给v2

            v2 = 927;                                //重新将变量v2赋值为927

 

            C  r1=new C();                           //使用new关键字创建引用对象

            C  r2=r1 ;                               //使r1等于r2

            r2.Value=112;                            //设置变量r2的value值

            Console.WriteLine("values:{0},{1}",v1,v2);  //输出变量v1和v2

            Console.WriteLine("Refs:{0},{1}",r1.Value ,r2.Value ); //输出引用类型对象的value值

            Console .ReadLine ();

 

        }

          运行结果为:

 

二、常量

       常量就是固定不变的量,而且常量的值在编译时就已经确定了。在C#中,使用关键字const来创建常量,并且在创建常量时必须设置它的初始值,同时,一经设置,不允许修改。

       例如:

const  doublePI=3.1415926;          //正确的声明方式

const  int MyInt;                   //错误:定义常量时没有初始化


         此博为大家详细的介绍了变量和常量,对于变量的两种类型:值类型和引用类型,我会在此后的博客中通过一个示例,帮助大家更好的理解值类型和引用类型的区别,敬请期待~

 

 

作者:sunliduan 发表于2013-1-6 20:38:32 原文链接
阅读:38 评论:0 查看评论

    
[3]人力资源之选人方法学习笔记1_建立科学的人才观
    来源: 互联网  发布时间: 2013-11-07

    从单位人力专员上学到的一句话:优先招聘德行好并且技术好的;再招德行好但是技术不太好的;再招德行不太好但是技术好的;德行与技术都不太好的不建议招聘。

    项目管理者的一项重要技能就是招聘,特此花了几天时间学习了下企业招人的课程,特将学习笔记分享如下:

选人用人过程有哪些陷阱

1.没有科学的选人思想和标准

简单地通过一件事情而确定任用某个人,是不可取的。

 

2.没有全面的考察人才

 

3.没有建立和运用职位胜任素质的模型

 

4.缺乏对应聘者的职业人格、道德品质和个人需求进行测试的意识和方法

一个人来公司的核心动机、个人需求和目的,在招聘面试过程中没有很好地解读出来。

 

5.没有严密的招聘流程,或者没有严格遵循招聘流程

初级与中级可以才能高于德行,但是高级人才一定要德行高于才能(高级人才要做背景调查) 

 

6.缺乏相应的人才测评技术和测试方法

招聘的定义和目的

 

 

(一)招聘的定义

招聘是在合适的时间为合适的岗位寻找到合适的人。

 

 

(二)招聘的目的

招聘工作的任务或目的,是要寻找具备最适合的技能,而且具有劳动愿望,能够在企业相对稳定地工作,与企业志同道合的雇员。

也就是说,找的人要和企业的价值观相匹配。

招聘选人的职责

 

招聘的工作包括哪些职责呢?总结如下:

1.招聘宣传活动的策划组织;

2.招聘渠道的拓展与维护;

3.招聘甄选技术的开发与使用;

4.招聘流程的策划与把控;

5.科学的选人策略能为企业增值;

Æ提高成本的效率;

Æ吸引合适人选进入合适岗位;

Æ降低流失率;

Æ帮助企业创建一支高效能的组织。

6.选人等于理念、技术、流程加上策略,最终实现适才适岗;

7.符合现代企业招聘工作的发展趋势;

Æ人力资源招聘工作由战术层次转向了战略层次发展,每一个高层管理者都应当成为一个出色的人力资源规划师;

Æ招聘工作越来越下放到企业各个职能和专业部门,每一个部门经理首先要是一个出色的招聘经理;

Æ人力资源部已经一改过去提供的从头到尾一条龙的服务,转变成向各个部门提供支持,使他们合理有效地实施人力资源相应的招聘计划。

8.建立科学的选人观。

胜任素质模型

 

在招聘、选人过程中,胜任素质模型的建立和应用、行为面试方法是最重要的和最关键的技术性方法,胜任素质模型是选人的基点、规范和标准,行为面试是有效的选人方法。

冰山模型和素质

在北冰洋、南极洲上,都有很多冰山,人们看到的只是冰山的一角,水面下还有巨大的体积来支撑着它。这个模型被应用到人力资源行为原因的分层模型,冰山一角是人员的技能(会做、能做)与知识(知道这么做最合适),水面下面的是:价值观(很重要);自我定位(我该做什么);需求动机(想做什么);人格特质(生来具有)。


作者:lu_yongchao 发表于2013-1-6 20:37:25 原文链接
阅读:40 评论:0 查看评论

    
最新技术文章:
▪error while loading shared libraries的解決方法    ▪版本控制的极佳实践    ▪安装多个jdk,多个tomcat版本的冲突问题
▪简单选择排序算法    ▪国外 Android资源大集合 和个人学习android收藏    ▪.NET MVC 给loading数据加 ajax 等待loading效果
▪http代理工作原理(3)    ▪关注细节-TWaver Android    ▪Spring怎样把Bean实例暴露出来?
▪java写入excel2007的操作    ▪http代理工作原理(1)    ▪浅谈三层架构
▪http代理工作原理(2)    ▪解析三层架构……如何分层?    ▪linux PS命令
▪secureMRT Linux命令汉字出现乱码    ▪把C++类成员方法直接作为线程回调函数    ▪weak-and算法原理演示(wand)
▪53个要点提高PHP编程效率    ▪linux僵尸进程    ▪java 序列化到mysql数据库中
▪利用ndk编译ffmpeg    ▪活用CSS巧妙解决超长文本内容显示问题    ▪通过DBMS_RANDOM得到随机
▪CodeSmith 使用教程(8): CodeTemplate对象    ▪android4.0 进程回收机制    ▪仿天猫首页-产品分类
▪从Samples中入门IOS开发(四)------ 基于socket的...    ▪工作趣事 之 重装服务器后的网站不能正常访...    ▪java序列化学习笔记
▪Office 2010下VBA Addressof的应用    ▪一起来学ASP.NET Ajax(二)之初识ASP.NET Ajax    ▪更改CentOS yum 源为163的源
▪ORACLE 常用表达式    ▪记录一下,AS3反射功能的实现方法    ▪u盘文件系统问题
▪java设计模式-观察者模式初探    ▪MANIFEST.MF格式总结    ▪Android 4.2 Wifi Display核心分析 (一)
▪Perl 正则表达式 记忆方法    ▪.NET MVC 给loading数据加 ajax 等待laoding效果    ▪java 类之访问权限
▪extjs在myeclipse提示    ▪xml不提示问题    ▪Android应用程序运行的性能设计
▪sharepoint 2010 自定义列表启用版本记录控制 如...    ▪解决UIScrollView截获touch事件的一个极其简单有...    ▪Chain of Responsibility -- 责任链模式
▪运行skyeye缺少libbfd-2.18.50.0.2.20071001.so问题    ▪sharepoint 2010 使用sharepoint脚本STSNavigate方法实...    ▪让javascript显原型!
▪kohana基本安装配置    ▪MVVM开发模式实例解析    ▪sharepoint 2010 设置pdf文件在浏览器中访问
▪spring+hibernate+事务    ▪MyEclipse中文乱码,编码格式设置,文件编码格...    ▪struts+spring+hibernate用jquery实现数据分页异步加...
▪windows平台c++开发"麻烦"总结    ▪Android Wifi几点    ▪Myeclipse中JDBC连接池的配置
▪优化后的冒泡排序算法    ▪elasticsearch RESTful搜索引擎-(java jest 使用[入门])...    ▪MyEclipse下安装SVN插件SubEclipse的方法
▪100个windows平台C++开发错误之七编程    ▪串口转以太网模块WIZ140SR/WIZ145SR 数据手册(版...    ▪初识XML(三)Schema
▪Deep Copy VS Shallow Copy    ▪iphone游戏开发之cocos2d (七) 自定义精灵类,实...    ▪100个windows平台C++开发错误之八编程
▪C++程序的内存布局    ▪将不确定变为确定系列~Linq的批量操作靠的住...    ▪DIV始终保持在浏览器中央,兼容各浏览器版本
▪Activity生命周期管理之三——Stopping或者Restarti...    ▪《C语言参悟之旅》-读书笔记(八)    ▪C++函数参数小结
▪android Content Provider详解九    ▪简单的图片无缝滚动效果    ▪required artifact is missing.
▪c++编程风格----读书笔记(1)    ▪codeforces round 160    ▪【Visual C++】游戏开发笔记四十 浅墨DirectX教程...
▪【D3D11游戏编程】学习笔记十八:模板缓冲区...    ▪codeforces 70D 动态凸包    ▪c++编程风格----读书笔记(2)
▪Android窗口管理服务WindowManagerService计算Activity...    ▪keytool 错误: java.io.FileNotFoundException: MyAndroidKey....    ▪《HTTP权威指南》读书笔记---缓存
▪markdown    ▪[设计模式]总结    ▪网站用户行为分析在用户市场领域的应用
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3