segment

HashMap和ConcurrentHashMap

大城市里の小女人 提交于 2020-03-01 09:36:03
目录 HashMap Java7中HashMap(数组+单向链表) ​ Java8中的HashMap(数组+链表+红黑树) ConcurrentHashMap Java7中的ConcurrentHashMap Java8中的ConcurrentHashMap(引入红黑树) HashMap HashMap 根据键的 hashCode 值存储数据 ,大多数情况下可以直接定位到它的值,因而具有很快 的访问速度,但遍历顺序却是不确定的。 HashMap 最多只允许一条记录的键为 null ,允许多条记 录的值为 null。 HashMap 非线程安全 ,即任一时刻可以有多个线程同时写 HashMap,可能会导 致数据的不一致。 如果需要满足线程安全, 可以用 Collections 的 synchronizedMap 方法使 HashMap 具有线程安全的能力 ,或者 使用 ConcurrentHashMap 。 Java7中HashMap(数组+单向链表) 大方向上, HashMap 里面是一个 数组 ,然后数组中每个元素是一个 单向链表 。上图中,每个绿色 的实体是嵌套类 Entry 的实例, Entry 包含四个属性: key, value, hash 值和用于单向链表的 next 。 1. capacity:当前数组容量,始终保持 2^n,可以扩容,扩容后数组大小为当前的 2 倍。

GreenPlum简单性能测试与分析

你。 提交于 2020-02-29 22:36:10
版权声明:本文由黄辉原创文章,转载请注明出处: 文章原文链接: https://www.qcloud.com/community/article/195 来源:腾云阁 https://www.qcloud.com/community 如今,多样的交易模式以及大众消费观念的改变使得数据库应用领域不断扩大,现代的大型分布式应用系统的数据膨胀也对数据库的海量数据处理能力和并行处理能力提出了更高的要求,如何在数据呈现海量扩张的同时提高处理速度和应用系统的可用性,使客户能同时得到更高的处理速度、更高的数据可用性和更大的数据集,是数据库系统面临的一个挑战。 通过TPC-H基准测试,可获得数据库单位时间内的性能处理能力,为评估数据库系统的现有性能服务水平提供有效依据,通过横向对比促进数据库系统的整体质量提升,能更好地在重大信息化工程中实现推广。 一.TPC-H原理简介 TPC-H是由TPC(Transaction Processing Performance Council)事务处理性能委员会公布的一套针对数据库决策支持能力的测试基准,通过模拟数据库中与业务相关的复杂查询和并行的数据修改操作考察数据库的综合处理能力,获取数据库操作的响应时间和每小时执行的查询数指标(QphH@Size)。 TPC-H基准模型中定义了一个数据库模型,容量可以在1GB~10000GB的8个级别中进行选择

汇编语言(王爽)实验五

爱⌒轻易说出口 提交于 2020-02-29 16:44:03
实验五 1、将下面的程序编译、连接,用Debug加载、跟踪,然后回答问题 assume cs:code, ds:data, ss:stack data segment dw 0123H, 0456H, 0789H, 0abcH, 0defH, 0fedH, 0cbaH, 0987H data ends stack segment dw 0,0,0,0,0,0,0,0 stack ends code segment start: mov ax,stack mov ss,ax mov sp,16 mov ax,data mov ds,ax push ds:[0] push ds:[2] pop ds:[2] pop ds:[0] mov ax, 4c00H int 21H code ends end start CPU执行程序,程序返回前,data段中的数据为多少? 不变 CPU执行程序,程序返回前,cs=076C、ss=076B、ds=076A 程序刚加载时,ds=075A,因为psp的存在,data段段地址为076A,赋值以后ds=076A,而data段占16个字节076A:10=076B:0,cs段同理,虽然在物理地址上这三个段是连续的,但由于被分为三个段,那么段地址必定要不同 设程序加载后,code段的段地址为X,则data段的段地址为X-2,stack段的段地址为X-1 2

Kafka原理及Kafka群集部署

五迷三道 提交于 2020-02-29 00:48:27
博文大纲: 一、Kafka概述 1)消息队列 2)为什么要使用消息队列? 3)什么是Kafka? 4)Kafka的特性 5)Kafka架构 6)Topic和Partition的区别 7)kafka流程图 8)Kafka的文件存储机制 9)数据的可靠性和持久性保证 10)leader选举 二、部署单机Kafka 1)部署Kafka 2)测试Kafka 三、部署Kafka群集 1)环境准备 2)部署zookeeper群集 3)部署Kafka群集 一、Kafka概述 1)消息队列 1)点对点模式 (一对一,消费者主动拉取数据,消息收到后消息清除) 点对点模型通常是一个基于拉取或者轮询的消息传送模型,这种模型从队列中请求信息,而不是将消息推送到客户端。这个模型的特点是发送到队列的消息被一个且只有一个接收者接收处理,即使有多个消息监听者也是如此; 2)发布/订阅模式 (一对多,数据生产后,推送给所有订阅者) 发布订阅模型则是一个基于推送的消息传送模型。发布订阅模型可以有多种不同的订阅者,临时订阅者只在主动监听主题时才接收消息,而持久订阅者则监听主题的所有消息,即使当前订阅者不可用,处于离线状态。 2)为什么要使用消息队列? 1)解耦 允许你独立的扩展或修改两边的处理过程,只要确保它们遵守同样的接口约束。 2)冗余 消息队列把数据进行持久化直到它们已经被完全处理,通过这一方式规避了数据丢失风险

Greenplum架构和核心引擎

人盡茶涼 提交于 2020-02-28 23:34:59
Greenplum 架构和核心引擎 Greenplum 架构和核心引擎 1 学习地址 2 1 Greenplum 架构概述 2 1.1 概述简介 2 1.2 MPP无共享静态拓扑 3 1.3 集群内数据分两类 3 1.4 对用户透明 4 1.5 用户数据表 4 1.6 系统表/数据字典 5 1.7 数据分布:并行化处理的根基 5 1.8 多态储存:根据数据温度选择最佳的储存方式 6 1.8.1 行储存 6 1.8.2 列储存 6 1.8.3 外部表 6 2 Greenplum SQL的执行过程 7 2.1 系统空闲状态 7 2.2 客户端建立会话链接 7 2.3 Master fork一个进程处理客户端请求 8 2.4 QD建立和Segment的链接 8 2.5 segment fork 一个子进程处理QD的链接请求 9 2.6 客户端发送查询请求给QD 10 2.7 QD发送任务给QE 10 2.8 QD与QEs建立数据通信通道 11 2.9 QE各司其职 11 2.10 QE状态管理 12 2.11 QD返回查询结果给客户端 12 3 Greenplum 主要设计思考 13 3.1 继承自 PostgreSQL 的设计 13 3.2 主从架构 13 3.3 数据储存 14 3.4 数据通信 14 3.5 三级并行计算 15 3.6 流水线执行 15 3.7 网络 16 3.8

2020年,Kafka入门看这一篇就够了!

佐手、 提交于 2020-02-26 04:50:20
Kafka 创建背景 Kafka 是一个消息系统,原本开发自 LinkedIn,用作 LinkedIn 的活动流(Activity Stream)和运营数据处理管道(Pipeline)的基础。现在它已被多家不同类型的公司 作为多种类型的数据管道和消息系统使用。 活动流数据是几乎所有站点在对其网站使用情况做报表时都要用到的数据中最常规的部分。活动数据包括页面访问量(Page View)、被查看内容方面的信息以及搜索情况等内容。这种数据通常的处理方式是先把各种活动以日志的形式写入某种文件,然后周期性地对这些文件进行统计分析。运营数据指的是服务器的性能数据(CPU、IO 使用率、请求时间、服务日志等等数据)。运营数据的统计方法种类繁多。 近年来,活动和运营数据处理已经成为了网站软件产品特性中一个至关重要的组成部分,这就需要一套稍微更加复杂的基础设施对其提供支持。 Kafka 简介 Kafka 是一种分布式的,基于发布 / 订阅的消息系统。 主要设计目标如下: 以时间复杂度为 O(1) 的方式提供消息持久化能力,即使对 TB 级以上数据也能保证常数时间复杂度的访问性能。 高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒 100K 条以上消息的传输。 支持 Kafka Server 间的消息分区,及分布式消费,同时保证每个 Partition 内的消息顺序传输。

大数据:Kafka重要概念

人走茶凉 提交于 2020-02-18 12:35:39
1kafka 的iSR,AR代表什么 kafka需要所有的iSR全部同步完成,则表示同步成功 AR:分区的所有副本 1、 AR 在Kafka中维护了一个AR列表,包括所有的分区的副本。AR又分为ISR和OSR。 AR = ISR + OSR。 AR、ISR、OSR、LEO、HW这些信息都被保存在Zookeeper中。 1. ISR ISR中的副本都要同步leader中的数据,只有都同步完成了数据才认为是成功提交了,成功提交之后才能供外界访问。 在这个同步的过程中,数据即使已经写入也不能被外界访问,这个过程是通过LEO-HW机制来实现的。 2. OSR OSR内的副本是否同步了leader的数据,不影响数据的提交,OSR内的follower尽力的去同步leader,可能数据版本会落后。 最开始所有的副本都在ISR中,在kafka工作的过程中,如果某个副本同步速度慢于replica.lag.time.max.ms指定的阈值,则被踢出ISR存入OSR,如果后续速度恢复可以回到ISR中。 3. LEO LogEndOffset:分区的最新的数据的offset,当数据写入leader后,LEO就立即执行该最新数据。相当于最新数据标识位。 4. HW HighWatermark:只有写入的数据被同步到所有的ISR中的副本后,数据才认为已提交,HW更新到该位置,HW之前的数据才可以被消费者访问

(转)再过半小时,你就能明白kafka的工作原理了

戏子无情 提交于 2020-02-16 09:52:19
为什么需要消息队列   周末无聊刷着手机,某宝网APP突然蹦出来一条消息“为了回馈老客户,女朋友买一送一,活动仅限今天!”。买一送一还有这种好事,那我可不能错过!忍不住立马点了去。于是选了两个最新款,下单、支付一气呵成!满足的躺在床上,想着马上有女朋友了,竟然幸福的失眠了……   第二天正常上着班,突然接到快递小哥的电话:   小哥:“你是xx吗?你的女朋友到了,我现在在你楼下,你来拿一下吧!”。   我:“这……我在上班呢,可以晚上送过来吗?“。   小哥:“晚上可不行哦,晚上我也下班了呢!”。   于是两个人僵持了很久……   最后小哥说,要不我帮你放到楼下小芳便利店吧,你晚上下班了过来拿,尴尬的局面这才得以缓解!   回到正题,如果没有小芳便利店,那快递小哥和我的交互图就应该如下:         会出现什么情况呢?   1、为了这个女朋友,我请假回去拿(老板不批)。   2、小哥一直在你楼下等(小哥还有其他的快递要送)。   3、周末再送(显然等不及)。   4、这个女朋友我不要了(绝对不可能)!   小芳便利店出现后,交互图就应如下:         在上面例子中,“快递小哥”和“买女朋友的我”就是需要交互的两个系统,小芳便利店就是我们本文要讲的-“消息中间件”。总结下来小芳便利店(消息中间件)出现后有如下好处:    1、 解耦   快递小哥手上有很多快递需要送

shmget: Invalid argument error

对着背影说爱祢 提交于 2020-02-13 15:27:36
EINVAL A new segment was to be created and size < SHMMIN or size > SHMMAX, or no new segment was to be created, a segment with given key existed, but size is greater than the size of that segment. You should check whether you still have an segment for this key using ipcs and remove it with ipcrm. ipcs -m 查看共享内存 ipcs -p 查看共享内存的所有进程ID ipcrm -m shmid 删除共享内存ID 来源: CSDN 作者: Mrknowledge 链接: https://blog.csdn.net/Mrknowledge/article/details/104295104

Java回顾--集合

回眸只為那壹抹淺笑 提交于 2020-02-11 14:15:41
1、Collection接口和Collections包装类:    Collection概念: 是一个集合接口,提供了对集合对象进行基本操作的通用接口方法。   有以下结构:     |--List     |  |--LinkedList     |  |--ArrayList     |  |--Vector     |    |--stack     |--Set    Collections: 包含各种有关集合操作的静态多态方法,且该类无法实例化,相当于一个工具类。 2、HashMap、HashTable和ConcurrentHashMap:    HashMap的特点 :线程不安全,允许传入 null值,不能保存映射的顺序。由数组(默认长度为16)+链表组成,jdk1.8后,若其链表长度大于8,就会转变成红黑树。     ps:HashMap线程不安全,是因为多个对象同时对同一HashMap进行操作时,会导致脏读、数据丢失的发生。   详细参考:https://www.cnblogs.com/aspirant/p/8908399.html    HashTable: 可以理解为线程安全的HashMap,为什么是线程安全的,因为它的put、remove、get方法都被synchronized修饰,使其同步,自然是线程安全的了。    ConcurrentHashMap: