Netty 是怎么做内存管理--PoolChunk

Netty 是怎么做内存管理–PoolChunk部分。


庖丁解牛-多服务器并发场景下乐观锁的实际应用

庖丁解牛-多服务器并发场景下乐观锁的实际应用

笔者面临的一个业务场景为:项目中多条业务线的实现都需要创建一个实例ID(instanceID),实例ID的值为系统当前的实例ID最大值+1。这样就会面临着在同一时间下有多个用户更新实例ID,造成并发冲突的问题。

笔者首先想到的解决方法是使用关键字synchronized来解决。但是组内同事提出光有synchronized是不够的,因为synchronized只能解决单台机器的JVM多线程并发问题,无法解决线上多台服务器分布式导致的并发问题。


Elastic Search学习笔记-4 (常见搜索类型实践)

查询分类


Elastic Search 学习笔记-3 (深入了解ES搜索原理)

We will not venture into Lucene’s implementation details, but rather stick to how the inverted index
is used and built. That is what influences how we can search and index.


Elastic Search 学习笔记-2 (搜索相关)

整理自ES.cn,并加入个人理解

Search API

一种是 “轻量的” 查询字符串版本 ,要求在查询字符串中传递所有的 参数。但是查询字符串参数需要URL编码

另一种是更完整的 请求体版本 ,要求使用 JSON 格式和更丰富的查询表达式作为搜索语言。(ES提供了DSL即领域特定语言)


ElasticSearch系列学习-1

今天是一个要上班的愚人节

整理自ES.cn,并加入个人理解

What is Elastic Search exactly?

ElasticSearch 是一个建立在全文搜索引擎Apache Lucene基础上的 实时分布式搜索引擎,而Lucene 是当今最先进,最高效的全功能开源搜索引擎框架。ElasticSearch降低了Lucene的学习和使用难度,用户可以使用ES统一的API即可进行全文检索,而不需了解Lucene背后原理。


指令重排序

Background

Intel 从8086系列芯片起到目前的Core i系列芯片,每一次提速与架构升级都会引入一些新的技术.指令重排序(instruction reordering)的概念大约出现在Pentium Pro系列上。在说明这项技术之前,先简单看一下CPU内部的组件与指令流水线等相关概念。


Hive Driver源码执行流程分析

引言

接着上一篇来说[执行入口的分析][1],CliDriver最终将用户指令command提交给了Driverrun方法(针对常用查询语句而言),在这里用户的command将会被编译,优化并生成MapReduce任务进行执行。所以Driver也是Hive的核心,他扮演了一个将用户查询和MapReduce Task转换并执行的角色,下面我们就看看Hive是如何一步一步操作的。


Hive 源码解析之 Hive 基本框架和执行入口

Hive简介

在介绍Hive的框架和执行流程之前,这里首先对Hive进行简要的介绍。

Hive 是建立在 Hadoop 上的数据仓库基础构架。它提供了一系列的工具,可以用来进行数据抽取,转化,加载(ETL),这是一种可以存储、查询和分析存储在 Hadoop 中的大规模数据的机制。Hive 定义了简单的类 SQL 查询语言,称为Hive QL,它允许熟悉 SQL 的用户查询数据。同时,这个语言也允许熟悉 MapReduce 开发者的开发自定义的 mapper 和 reducer 来处理内建的 mapper 和 reducer 无法完成的复杂的分析工作。


JVM以及垃圾回收器的工作原理

Java 虚拟机(Java virtual machine,JVM)是运行 Java 程序必不可少的机制。

JVM实现了Java语言最重要的特征:即平台无关性。这是因为:编译后的 Java 程序指令并不直接在硬件系统的 CPU 上执行,而是由 JVM 执行。JVM屏蔽了与具体平台相关的信息,使Java语言编译程序只需要生成在JVM上运行的目标字节码(.class),就可以在多种平台上不加修改地运行。Java 虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。因此实现java平台无关性。它是 Java 程序能在多平台间进行无缝移植的可靠保证,同时也是 Java 程序的安全检验引擎(还进行安全检查)。


Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×