自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

Master-TJ的个人博客

https://github.com/Tjcug

  • 博客(39)
  • 资源 (1)
  • 收藏
  • 关注

原创 深入浅出全面解析RDMA

RDMA(RemoteDirect Memory Access)技术全称远程直接内存访问,就是为了解决网络传输中客户端与服务器端数据处理的延迟而产生的。它将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络把资料直接传入计算机的内存中,将数据从一个系统快速移动到远程系统内存中,而不对操...

2018-06-04 11:36:54 79476 14

原创 JVM内存模型:运行时栈帧结构

         栈帧(Stack Frame)是用于支持虚拟机进行方法调用和方法执行的数据结构,它是虚拟机运行时数据区的虚拟机栈(Virtual Machine Stack)的栈元素。栈帧存储了方法的局部变量表,操作数栈,动态连接和方法返回地址等信息。第一个方法从调用开始到执行完成,就对应着一个栈帧在虚拟机栈中从入栈到出栈的过程。        每一个栈帧都包括了局部变量表,操作数栈,动态...

2018-06-30 17:59:11 819

原创 Java高并发编程(二):Java并发机制的底层实现机制

        Java代码在编译后会变成Java字节码,字节码在之后被类加载机制加载到JVM中,JVM执行字节码,最终需要转换为汇编指令在CPU上执行,Java中所使用的并发机制依赖于JVM的实现和CPU的指令。1 深入理解 Volatile关键字        volatile是轻量级的synchronized,它在处理器开发中保证了共享变量的“可见性”。可见性的意思就是当一个线程修改一个共享...

2018-06-28 22:26:48 1935 1

原创 Java高并发编程:总线锁定和缓存一致性的问题

        随着多核时代的到来,并发操作已经成了很正常的现象,操作系统必须要有一些机制和原语,以保证某些基本操作的原子性,比如处理器需要保证读一个字节或写一个字节是原子的,那么它是如何实现的呢?有两种机制:总线锁定和缓存一致性。        我们知道,CPU和物理内存之间的通信速度远慢于CPU的处理速度,所以CPU有自己的内部缓存,根据一些规则将内存中的数据读取到内部缓存中来,以加快频繁读取...

2018-06-28 20:57:42 2089 1

原创 Java高并发编程(一):并发编程的挑战

1.简介        并发编程的目的是为了让程序运行的更快,但是,并不是启动更多的线程就能让程序最大限度地运行,在并发编程的时候还需要面对一些众多的挑战。在进行并发编程的时候,如果希望通过多线程执行任务让程序运行得更快、会面临非常多的挑战。比如上下文的切换的问题、死锁的问题、以及所限制与硬件和软件环境的问题。1.1 上下文切换        即使是单核处理器也支持多线程执行代码,CPU通过给每个...

2018-06-28 19:39:02 655

原创 实时流处理系统容错机制(二):Apache Flink 基于State的异步容错机制

1. Introduce        Apache Flink 提供了可以恢复数据流应用到一致状态的容错机制。确保在发生故障时,程序的每条记录只会作用于状态一次(exactly-once),当然也可以降级为至少一次(at-least-once)。        容错机制通过持续创建分布式数据流的快照来实现。对于状态占用空间小的流应用,这些快照非常轻量,可以高频率创建而对性能影响很小。流计...

2018-06-27 16:32:42 1488 2

原创 一周一论文(翻译 总结)—— [NSDI 17] TUX2: Distributed Graph Computation for Machine Learning 面向机器学习的分布式图处理系统

1. Introduce        在图形引擎(如GraphLab [29])上的早期工作是基于机器学习的动机,基于观察到许多机器学习问题可以用图形自然而有效地建模,并通过迭代收敛算法解决。        问题:然而,大多数后续的图形引擎工作都采用简单的图计算模型,由PageRank等基本图形基准测试驱动。 由此产生的图形引擎缺乏高效分布式机器学习的灵活性和其他关键功能。 Heterogene...

2018-06-27 16:20:01 1373

原创 实时流处理系统容错机制(一):综述

        实时流处理系统的最主要的特点就是数据是持续不断地到来的,这样的数据源通常都是无边界的。对于这种数据持续不断地,实时流处理系统必须被持续地部署到集群中去,并且持续地占用集群资源。但是在分布式环境下,Failure是随时都会发送的。比如说集群机器宕机,网络拥塞,数据丢失每时每刻都可能发生,并且这种Failure是不可避免的。实时流处理系统对于这种Failure必须采取一定的措施进行Fa...

2018-06-27 15:35:06 1610

原创 Apache Storm 实时流处理系统ACK机制以及源码分析

1.ACK机制简介        Storm的可靠性是指Storm会告知用户每一个消息单元是否在一个指定的时间(timeout)内被完全处理。完全处理的意思是该MessageId绑定的源Tuple以及由该源Tuple衍生的所有Tuple都经过了Topology中每一个应该到达的Bolt的处理。注: timetout 可以通过Config.TOPOLOGY_MESSAGE_TIMEOUT_SECS ...

2018-06-26 09:53:04 1757

原创 Apache Storm 实时流处理系统通信机制源码分析

        我们今天就来仔细研究一下Apache Storm的通信机制。下面我将从大致思想以及源码分析,然后我们细致分析实时流处理系统中源码通信机制研究。1. 简介        Worker间的通信经常需要通过网络跨节点进行,Storm使用ZeroMQ或Netty(0.9以后默认使用)作为进程间通信的消息框架。Worker进程内部通信:不同worker的thread通信使用LMAX Disr...

2018-06-25 17:54:38 1102

原创 分布式图处理系统同步异步执行模式

        分布式图处理系统(GraphLab、PowerGraph以及同步BSP模型的Pregel)主要有两种执行模式。一种是同步执行模式,还有一种是异步执行模式。同步模式即相邻两步迭代之间存在同步控制,所有任务均完成该步的工作之后,才可以启动下一次迭代计算,发往第k次迭代的消息仅在第k次迭代时对顶点可见。异步模式即相邻两步迭代之间不存在同步控制,各任务独立进行迭代计算,不存在相互等待。在迭...

2018-06-19 21:28:20 3216 3

原创 图处理系统综述

1.BackGround        现有的图数据可以分为以下三个方面。分别是社交媒体图,广告图和Web图。社交媒体图主要包括微博、Twitter、FaceBook。人与人之间的关系也是一种图结构,微博点赞也是一种图结构。然后就是广告图以及Web图结构。        随着时间的推移,图结构数据成几何的指数增长,目前的图结构已经达到TB级别的数据量。这么大的数据量,如何对这么巨大的图数据进行高效...

2018-06-19 21:05:35 1461

原创 [ATC 17] StreamBox: 面向多核机器上的针对Records的无序到达的实时流处理系统

        今天要讲的文章ATC 2017年的一篇文章,StreamBox: Modern Stream Processing on a Multicore Machine。本文主要想解决的问题就是:高速大量的实时流数据主要是由IOT、Data Centers、Humans产生,它需要快速实时流处理系统。然而由于数据的到达是无序的,因为这些记录通过不同的网络路径传播,并且records上的计算...

2018-06-19 14:45:00 927

转载 [转] 学习,思维三部曲:WHAT、HOW、WHY(通过现象看本质)

文章目录★第一步:WHAT★第二步:HOW★第三步:WHY先声明一下,本帖子讨论的三部曲是指你已经选定了某个技术方向之后,该如何学习;至于如何选定技术方向,则属于另一个话题,不在今天的讨论之列。我把学习归类为三个步骤:What、How、Why。经过我对周围同事和朋友的观察,大部分感觉自己技术没有提高的人,都仅仅停留在What阶段。下面我把这三个步骤解释一下。★第一步:WHAT“WHAT”也就是“W...

2018-06-16 17:29:10 15435

原创 [NSDI 17] TuX2: 面向机器学习的分布式图计算系统 学习总结

        今天要讲的文章NSDI 2017年的一篇文章,TUX2: Distributed Graph Computation for Machine Learning。本文主要想解决的问题就是:在图形引擎(如GraphLab [29])上的早期工作是基于机器学习的动机,基于观察到许多机器学习问题可以用图形自然而有效地建模,并通过迭代收敛算法解决。 然而,大多数后续的图形引擎工作都采用简单的...

2018-06-16 17:05:05 2173

原创 [PPOPP 15] PoweSwitch: 基于同步异步切换的分布式大规模图处理系统 学习总结

     今天要讲的文章PPOPP 2015年的一篇文章,SYNC or ASYNC Time to Fuse for Distributed Graph-Parallel Computation。本文主要想解决的问题就是:作者仔细分析了同步模式和异步模式的优势和劣势。同步模式批量发送消息,大大提高网络利用率。由于消息被批量发送,同步模式更加适合于消息通信量大的算法(IO敏感型),并且每个顶点上的...

2018-06-14 10:05:28 1042

原创 [OSDI 12] PoweGraph: 分布式图并行计算框架 学习总结

        今天要讲的文章是OSDI 2012年的一篇文章,PowerLyra:Distributed Graph-Parallel Computation on Natural Graphs。本文主要想解决的问题就是:现有的图数据,如社交网络、Web网页等都是一种Power-law幂律图的特征。所谓Power-law幂律图就是指在图数据中顶点的度数分配不均匀。有的图顶点的度数很高,有的顶点度...

2018-06-13 16:09:10 3309

原创 [PVLDB 12] GraphLab : 分布式机器学习大规模图处理系统 学习总结

        今天要讲的文章是PVLDB 2012年的一篇文章,Distributed GraphLab: A Framework for Machine Learning and Data Mining in the Cloud。本文主要解决的问题是:指数增长的机器学习和数据挖掘(MLDM,即Machine Learning and Data Mining)问题和日益成熟的MLDM技术,越来越...

2018-06-13 15:17:58 2344

翻译 一周一论文(翻译)—— [PVLDB 12] Distributed GraphLab A Framework for Machine Learning 分布式机器学习图计算框架

摘要        虽然高级别数据并行框架,像MapReduce,简化了大规模数据处理的设计和实现的系统,他们没有自然或有效地支持许多重要数据挖掘和机器学习算法并且导致学习系统效率低下。为了帮助填补这一重要空白,我们介绍了GraphLab框架,它自然表达异步的, 动态的,并行图计算,同时在共享内存设置上确保数据一致性和实现高度的并行性能。在本文中,我们扩展GraphLab框架到更具挑战性的分布式环...

2018-06-13 12:54:33 2152

原创 [SOSP 17] Wukong+S : 不断演化的RDF数据的亚毫秒级别的状态流查询

        今天要讲的文章是SOSP 2017年的一篇文章,Wukong+S :Sub-millisecond Stateful Stream Querying over Fast-evolving Linked Data。本文主要解决的问题是:随着流数据和存储数据量的不断增加,及时查询有用的信息十分重要。对于公共数据集合数据流,可能有大量的用户不同的数据流查询请求,因此需要支持高并发的查询。...

2018-06-12 21:30:11 1298

原创 [OSDI 16] Wukong : 基于RDMA的高并发、快速的分布式RDF Graph Query系统

        今天要讲的文章是OSDI 2016年的一篇文章,Fast and Concurrent RDF Queries with RDMA-based Distributed Graph Exploration。RDF全称是资源描述框架,RDF将现实生活中的关系描述成实体与实体之间的关系。这种实体与实体之间的关系可以用图来描述。实体可以用顶点来描述,实体与实体之间的关系可以用边来描述。RD...

2018-06-12 19:52:14 2142

原创 [EuroSys 15] PowerLyra基于基于混合切分策略的大图处理系统 学习总结

    今天要讲的文章是EuroSys 2015年的一篇文章,PowerLyra:Differentiated Graph Computation and Partitioning on Skewed Graphs。本文主要想解决的问题就是:现有的图数据,如社交网络、Web网页等都是一种Power-law幂律图的特征。所谓Power-law幂律图就是指在图数据中顶点的度数分配不均匀。有的图顶点的度...

2018-06-12 19:15:55 2358

原创 [OSDI 14] GraphX 基于Spark-Core下的分布式大图处理系统 学习总结

    今天要讲的文章是OSDI 2010年的一篇文章,GraphX:  Graph Processing in a Distributed Dataflow Framework。本文主要想解决的问题就是:先有的专用图系统能够实现广泛的系统优化,但也是有代价的。 图只是较大的分析过程的一部分,通常将非结构化的图数据和表格式数据组合在一起。 因此,分析dataflow被迫组成多个系统,这增加了复杂性...

2018-06-12 16:32:28 1516 4

原创 [SIGMOD 10] Pregel 基于BSP的大规模图处理系统 学习总结

    今天要讲的文章是SIGMOD 2010年的一篇文章,Pregel: A System for Large- Scale Graph Processing。本文主要想解决的问题就是:随着如今技术的发展,图数据规模是不断地增长的。现有的图处理系统采用单机处理大图数据,但是单机处理大图数据存在很差的可扩展性,因为单机机器内存是由限制的。然而使用MapReduce处理大图数据,效率又很差。因为每个...

2018-06-12 15:53:25 1433

原创 进程间通信的方式(四):信号量

        信号量(semaphore)是一种用于提供不同进程之间或者一个给定的不同线程间同步手段的原语。信号量多用于进程间的同步与互斥,简单的说一下同步和互斥的意思:同步:处理竞争就是同步,安排进程执行的先后顺序就是同步,每个进程都有一定的先后执行顺序。互斥:互斥访问不可共享的临界资源,同时会引发两个新的控制问题(互斥可以说是特殊的同步)。竞争:当并发进程竞争使用同一个资源的时候...

2018-06-09 18:22:42 3021 2

原创 进程间通信的方式(三):消息队列

         消息队列是在两个不相关进程间传递数据的一种简单、高效方式,她独立于发送进程、接受进程而存在。消息队列提供了一种从一个进程向另一个进程发送一个数据块的方法。每个数据块都被认为是一个管道,接收进程可以独立地接收含有不同管道的数据结构。我们可以通过发送消息来避免命名管道的同步和阻塞问题。消息队列与命名管道一样,每个数据块都有一个最大长度的限制。我们可以将每个数据块当作是一种消息类型(频...

2018-06-09 16:49:55 1774

原创 进程间的通信方式(二):管道Pipe和命令管道FIFO

1.概述        管道是最初的Unix IPC通信,可追溯到1973年的Unix第三版。尽管对于许多操作来说很有用,但它们的根本局限于没有名字,只能由亲缘关系的进程使用。这一点随着FIFO的加入System III Unix中得以改正。FIFO有时候称为命令管道(named pipe)。管道和FIFO都是使用通常的read和write函数访问的。        从技术上讲,自从可以在进程间传...

2018-06-09 16:03:24 1315

原创 进程间的通信方式:简介

1.概述        IPC就是进程间通信(interprocess communication)的简称。传统上该术语描述的是运行在某个操作系统之上的不同进程间的消息传递(message passing)的方式。        在Unix操作系统过去30年的演变史中,消息传递经历了如下几个发展阶段。管道:是第一个广泛使用的IPC形式,既可以在程序中使用,也可以在shell中使用。管道...

2018-06-08 23:17:40 854

原创 进程间的通信方式(一):共享内存

         共享内存指 (shared memory)在多处理器的计算机系统中,可以被不同中央处理器(CPU)访问的大容量内存。由于多个CPU需要快速访问存储器,这样就要对存储器进行缓存(Cache)。任何一个缓存的数据被更新后,由于其他处理器也可能要存取,共享内存就需要立即更新,否则不同的处理器可能用到不同的数据。共享内存是 Unix下的多进程之间的通信方法 ,这种方法通常用于一个程序的多...

2018-06-07 15:22:37 6793 1

原创 图论:连通分量和强连通分量

1.连通图1.1 顶点的连通性在无向图G中,若从顶点vi到顶点vj有路径(当然从vj到vi也一定有路径),则称vi和vj是连通的。1.2 连通图在无向图G中,若V(G)中任意两个不同的顶点vi和vj都连通(即有路径),则称G为连通图(Con-nected Graph)。【例】图G2,和G3是连通图。在有向图G中,如果两个顶点vi,vj间(vi>vj)有一条从vi到vj的有向路径,同时还有一条...

2018-06-07 10:19:24 24816

原创 计算机缓存Cache以及Cache Line详解

1.计算机存储体系简介 存储器是分层次的,离CPU越近的存储器,速度越快,每字节的成本越高,同时容量也因此越小。寄存器速度最快,离CPU最近,成本最高,所以个数容量有限,其次是高速缓存(缓存也是分级,有L1,L2等缓存),再次是主存(普通内存),再次是本地磁盘。寄存器的速度最快,可以在一个时钟周期内访问,其次是高速缓存,可以在几个时钟周期内访问,普通内存可以在几十个或几百个时钟周...

2018-06-06 10:56:36 84786 26

原创 大数据技术:Zookeeper分布式协调服务

1   Zookeeper概念简介Zookeeper是一个分布式协调服务,就是为用户的分布式应用程序提供协调服务A、  zookeeper是为别的分布式程序进行服务的B、 zookeeper本身就是一个分布式应用程序(只有半数以上的节点存活2,zk就能正服务)C、 Zookeeper所提供的服务涵盖:主从协调、服务器节点状态上下线、统一配置管理、分布式共享锁、同一名称服务………..D、  虽然说可...

2018-06-05 18:00:28 1375

原创 大数据技术:分布式系统和分布式事务

1.    分布式系统1.1  分布式的特点分布性:       分布式系统中的多台计算机都会在空间上随意分布,同时,机器的分布情况也会随时改变。对等性:       分布式系统中的计算机没有主从之分,既没有控制整个系统的主机,也灭有被控制的从机,组成分布式系统的所有计算机节点都对等的的。并发性:       在一个计算机网络中,程序运行过程中的并发性操作也是非常常见的行为。1.2  分布式环境中...

2018-06-05 17:49:47 1755

原创 Twitter Heron 实时流处理系统简介

        Twitter Heron是Twitter公司开源的一个实时的、容错的、分布式的流数据处理系统。Heron是Apache Storm的直接继承者。它继承了Apache Storm的实时性、容错、低延迟的特性。并且它保留了Apache Storm的Topology API,使用者可以直接将Apache Storm上构建的Topology项目,直接转移到Apache Storm中运行而...

2018-06-05 17:35:57 1126

原创 大数据采集技术综述

        近年来,以大数据、物联网、人工智能、5G为核心特征的数字化浪潮正席卷全球。随着网络和信息技术的不断普及,人类产生的数据量正在呈指数级增长。大约每两年翻一番,这意味着人类在最近两年产生的数据量相当于之前产生的全部数据量。世界上每时每刻都在产生的大量的数据,包括物联网传 感器数据、社交网络数据、商品交易数据等等。 面对如此巨大的数据,与之相关的采集、存储、分析等等环节产生了一系列的问题...

2018-06-05 17:31:09 31528

原创 Apache SparkStreaming 简介和编程模型

1. 简介图5.22 SparkStreaming[16]    Spark Streaming是Spark API核心扩展,提供对实时数据流进行流式处理,具备可扩展、高吞吐和容错等特性。Spark Streaming支持从多种数据源中提取数据,例如Twitter、Kafka、Flume、ZeroMQ和TCP套接字,并提供了一些高级的API来表示复杂处理算法,如map、reduce、join、wi...

2018-06-05 15:28:13 1600

原创 Apache Flink 简介和编程模型

Apache Flink是一个同时支持分布式数据流处理和数据批处理的大数据处理系统。 Flink可以表达和执行许多类别的数据处理应用程序,包括实时数据分析,连续数据管道,历史数据处理(批处理)和迭代算法(机器学习,图表分析)以及容错的数据流。1. 简介实时流处理系统(Stream Processing System)和历史数据处理(Batch Processing System)传统上被认为是两个...

2018-06-05 15:18:22 7757

原创 内存映射IO (MMIO) 简介

MMIO(Memory mapping I/O)即内存映射I/O,它是PCI规范的一部分,I/O设备被放置在内存空间而不是I/O空间。从处理器的角度看,内存映射I/O后系统设备访问起来和内存一样。这样访问AGP/PCI-E显卡上的帧缓存,BIOS,PCI设备就可以使用读写内存一样的汇编指令完成,简化了程序设计的难度和接口的复杂性。基本概念MMIO(Memory mapping I/O)即内存映射I...

2018-06-05 14:59:57 12663

原创 全面解析虚拟内存概念

一个系统中的进程是与其他进程共享CPU和主存资源的。随着对CPU需求的增长,进程以某种合理的平滑的方式慢了下来。但是如果太多的进程需要太多的内存,那么它们中的一些就根本无法运行。当一个程序中没有空间可以用时,那就是它运气不好了。内存还容易被破坏。如果某个进程不小心写了另一个进程使用的内存,它就可能以某种完全和程序逻辑无关的令人迷惑的方式失败。    为了更加有效的管理内存并且少出错,现代系统提供了...

2018-06-04 17:45:48 2357 2

公司工资管理系统

公司工资管理系统

2015-05-22

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除