sencha gridpanel checkbox 复选框的勾选 以及和单机行冲突

gridpanel显示checkbox:

添加SelectionModel为Checkbox Selection Model

{

                    xtype: ‘gridpanel’,

                    id: ‘Grid1’,

                    header: false,

                    title: ‘长条线列表’,

                    deferRowRender: false,

                    forceFit: true,

                    store: ‘NewTiaoXianStore’,

                    columns: [

                        {

                            xtype: ‘gridcolumn’,                       
   

                            dataIndex: ‘Id’,

                            text: ‘Id’

                        },

                        {

                            xtype: ‘gridcolumn’,

                            dataIndex: ‘Name’,

                            text: ‘漫长线名称’

                        },

                        {

                            xtype: ‘gridcolumn’,

                            dataIndex: ‘Description’,

                            text: ‘修线描述’

                        }

                    ],

                    selModel: Ext.create(‘Ext.selection.CheckboxModel’,
{

           checkOnly: true
//防止单击行的早晚,其他入选的checkbox被撤除选中

                    })

                }

 

 图片 1

前文分析了 NameNode,本文进一步分析 DataNode 的宏图和兑现中心。

复选框的勾选

以load回调中因字段checked值判断是否勾选

var store=Ext.getStore(“Store”);

store.proxy.extraParams={method:”GetList”};

store.load({

    callback:function(records, options, success){

        for(var i in records)

            {

                if(records[i].data.checked)

                    {                   

                       
Ext.getCmp(“Grid1”).getSelectionModel().select(records[i],true);
//勾选该记录

                    }

            }

}});

 

 

//grid根据行号(从0开始)选中

//第一个参数可以是行号或者records合集,第二单参数true表示保持前勾选的(追加)

Ext.getCmp(“Grid1”).getSelectionModel().select(rowIndex,true); 

 

From:http://www.cnblogs.com/xuejianxiyang/p/5220397.html

文件存储

DataNode 正使其名是当储存文件数量的节点。HDFS
中文件的贮存方是用文件按块(block)切分,默认一个 block
64MB(该大小可安排)。若文件大小超过一个 block 的容量可能会见于切分为多只
block,并储存在不同的 DataNode 上。若文件大小小于一个 block
的容量,则文件只发生一个
block,实际占有的贮存空间吧文件大小容量增长一点额他的校验数据。也足以如此说一个文件至少由一个要么多单
block 组成,而一个 block 仅属于一个文本。

block 是一个逻辑概念对象,由 DataNode 基于本地文件系统来贯彻。每个 block
在地头文件系统中由于片只文本组成,第一只公文包含文件数量本身,第二独文件则记录
block 的老大信息(metadata)如:数据校验和(checksum)。所以每一个 block
对象实际物理对许少独文件,但 DataNode
不会见将文件创建在跟一个索引下。因为本机文件系统可能未可知迅速之支撑单目录下之大量文件,DataNode
会使用启发式方法决定单个目录下存放多少文件合适并以适用时候创建子目录。

文本数量存储的可靠性依赖多副本保障,对于单一 DataNode
节点而言只是待确保自己储存的 block 是完整且无坏的。DataNode
会主动周期性的运转一个 block 扫描器(scanner)通过比较对 checksum 来检查
block 是否损坏。另外还有一样种消极之自我批评方式,就是当读取时检查。

文件操作

HDFS 支持之公文操作包括写入(新增、追加)、读取和去。HDFS 定义了一致栽
multi-reader, single-writer
的文本访问语义。而顾标准还参照大家耳熟能详的因 POSIX(Portable
Operating System Interface)为单机文件系统定义的 API。

  • Open 打开文件
  • Read/Write 读写文件
  • Close 关闭文件

脚我们独家讲述文件操作的计划实现中心。

写文件

图片 2

描绘文件流程如图示,在分布式环境下,Client 请求 NameNode
获得一个针对性指定文件之租约(lease,本质上是如出一辙种植分布式锁,详细请自行维基百科下)。只有拥有该租约的
Client 可以往该公文写入,以这种机制来担保写文件的 single-writer
的语义。获得写入租约后 NameNode 向 Client 分配一组用于存放文件数量的
DataNodes,若配置的合乎本数为 3,则会回到 3 只 DataNode。这无异组 DataNodes
被整合一条流水线来形容副,有效提升写副性能降低写副延迟。Client
将文件组织成一个个 packet 发送给流水线上第一独 DataNode,第一个 DataNode
存储下该 packet 后又倒车让老二只 DataNode,依此类推。然后 DataNodes
再按照流程反方向发回确认 packet 给 Client。当所有文件 block
写副好后,DataNodes 会向 NameNode 报告文本之 block 接收了,NameNode
相应去改变文件首先数据的状态。

描绘文件之中心流程如上所述,如果经过遭到一切正常那么多简单美好。但实质上于分布式环境下,写文件过程涉及
Client、NameNode 和同组
DataNodes,这之中任何一个环还生或发生异常。按照分布式设计首先原则:Design
for
failure,我们用考试之流程中之持有参与者都来或出现破产异常的状况。这里先提出此问题,考虑每种失败异常的情景下,软件设计实现而怎么去处理?本文先不在此地展开论述,后面会特意做深入解析。

读文件

图片 3

念文件流程如图示,Client 首先请 NameNode 定位文件 block 所于的
DataNodes。然后按梯次请求对应的 DataNodes 读博其达到囤积的
block。关于读取顺序,HDFS 有一个邻近读取的优化策略,DataNodes
的读取排序会仍她离 Client
的离开来规定。距离的定义主要分以下几种植状况:

  • 相距 0,表示以跟一个节点上
  • 离开 2,表示和一个机架下之不等节点
  • 去 4,表示和一个多少主导的差机架下
  • 相差 8,表示不同的多少基本

删文件

文本去的拍卖首先以文件重命名后加大上 /trash 目录。文件会在 /trash
目录中存放一段时间(可安排),在时空到后更自动清理。所以其实文件去操作特别轻量级,仅仅是
NameNode 的内存数据结构的变动,真正的大体删除在继承之自发性清理时才开。

可见性

在文件写副过程被,HDFS 不保险文件对另 Client Reader 可见。只有文件的
block 已经勾勒副 DataNode,并告给了 NameNode 更新到正确的状态才对其它
Reader 可见。简单说,如果一个文本发出多个 block,写副总是发生在最终一个
block 上,那么前面的 block 对任何 Reader 是可见的,但最终一个 block
则不可见,这关系 block
的状态变化,这里先不进行,后面会特别做深入解析。

生命周期

DataNode 启动后第一连接到 NameNode 完成握手,握手的目的是认证 DataNode
的软件版本与 namespace ID。namespace ID 是浑 HDFS 集群的绝无仅有标识,如果
DataNode namespace ID 或 软件版本和 NameNode 不配合,DataNode
将无法加入集群并自行关闭。若是一个新的 DataNode 启动时从没 namespace
ID,则于拉手时由于 NameNode 分配并加入集群。此外,NameNode
还会见分配一个集群全局唯一的 storage ID 给 DataNode
用于唯一标记,之后不再改变。

完成握手后,DataNode 会立刻向 NameNode 发送 block report 信息,block
report 就是 DataNode 上囤积了安文件 block 的列表。之后会定期(默认 1
小时)向 NameNode 报告。此外,DataNode 将定时向 NameNode 发送心跳(默认
3 秒)来报告自己之存活性。一段时间(默认 10 分钟)收不至 DataNode
最近的心里跳,NameNode 会认定其去世,并无见面再也将 I/O
请求转发到那达成。心跳除了用于 DataNode 报告其存活性,NameNode
也由此心跳恢复来带走带控制命令要求 DataNode 执行,因为 NameNode
设计达到不直调用 DataNode
其控制命令还是通过心跳恢复来推行,所以心跳的默认间隔比较少。

除外 DataNode 的尴尬死亡外,DataNode
还好正常退休,可以透过管理端标记一个 DataNode
进入退休中(decommissioning)状态。处于退休中状态的 DataNode
不再服务被写请求(包括由 Client 写副或打其它 DataNode
复制),但它们可持续服务读请求。进入退休中状态的 DataNode
将吃布置将其上囤积的具有 block 复制到另外节点,完成这个进程后 NameNode
将那个标志为已经离休(decommissioned)状态,然后便可以安全底线了。

总结

本文重点描述了,DataNode 生命周期对 HDFS
集群整体的熏陶及文件访问操作的流水线。对于大处理局部从没详尽展开叙述,这个系列的持续文章还会见越加深入解析。

参考

[1] Hadoop Documentation. HDFS
Architecture.
[2] Robert Chansler, Hairong Kuang, Sanjay Radia, Konstantin Shvachko,
and Suresh Srinivas. The Hadoop Distributed File
System
[3] Tom White. Hadoop: The Definitive
Guide. O’Reilly
Media(2012-05), pp 94-96


脚是自要好开始之一个微信公众号
[瞬息之间],除了写技术的篇章、还有产品的、行业以及人生之想想,希望能及再多倒在马上长长的路上同行者交流,有趣味而关注一下,谢谢。
图片 4

版权声明:本文也博主原创文章,未经博主允许不得转载。

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注