witchiman的博客

吟风拔弄上弦月,卧雪酣眠连天云。


  • 首页

  • 关于

  • 标签

  • 归档

分布式应用中的一致性协议

发表于 2018-11-10

在一个分布式系统中,需要一个规定来保证数据的一致性、各节点服务的容错性等等,这个规定就是一致性协议。常见的分布式协议有2PC、3PC、Paxos和raft等。

阅读全文 »

hbase memstore 的flush

发表于 2018-10-13

region server的内存用于读写缓存主要有memstore和blockcache,其中memstore是写缓存。region server收的到写请求,实际上访问的是该server的region。每个region包含多个store,一个store对应着一个列族。每个store中又包含一个memstore和多个Hfile文件。memstore位于region server的主内存中,而HFiles被持久化到HDFS中。当region server处理写请求的时候,数据首先写入到memstore中去,然后当到达一定的阀值的时候,memstore中的数据会被flush到HFile中,此时的数据才完成持久化。

阅读全文 »

hbase的一些优化

发表于 2018-06-13

Hbase部署的环境千差万别,因此默认的配置并不能很好地满足实际生产环境的应用,对于不同的应用场景需要进行一定的调优。这里记述一下,工作过程中调整过的一些参数。

阅读全文 »

常见的I/O模型

发表于 2017-12-05

服务器所使用的架构往往要和I/O模型相结合,才能应用到某种具体的场景上。处理客户端发送过来的请求,可以采用多进程或多线程。对于纯粹的多进程或多线程,接收到一个连接就开启一个进程或线程,阻塞直到有读写发生。在高并发的情况下,不断地开启进程和占用大量内存,还有线程上下文切换等都会对系统资源造成极大的浪费。为了减少系统的开销,非常有必要采取手段降低并发的进程或线程的数量,如I/O多路复用(I/O multiplexing)就很好地解决了这个问题,通过这种技术一个线程就可以管理多个I/O数据流的读写操作。

阅读全文 »

【转】Java并发编程:CountDownLatch、CyclicBarrier和Semaphore

发表于 2017-09-15

在Java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法。

阅读全文 »

Docker:资源隔离和资源限制

发表于 2017-08-14

Docker通过利用Linux 内核中的namespace机制和cgroups机制分别实现了资源隔离和资源限制,同时通过写时复制(COW,copy-on-write)实现了高效的文件操作。下面主要介绍下namespace和cgroup的相关知识点。

阅读全文 »

常见的查找算法(下)哈希查找

发表于 2017-07-09

哈希查找也称为散列查找,它是通过计算数据元素的存储地址进行查找的一种方法。

阅读全文 »

常见的查找算法(中)树表查找

发表于 2017-07-09

树表查找是对树型存储结构所做的查找。树型存储结构是一种多链表,该表中的每个结点包含有一个数据域和多个指针域,每个指针域指向一个后继结点。

阅读全文 »

常见的查找算法(上)

发表于 2017-07-09

现代计算机和网络使我们能够访问海量的信息。查找是在大量的信息中寻找一个特定的信息元素。高效地检索这些信息的能力是处理它们的重要前提。本文简单概括性的介绍了常见的七种查找算法,说是七种,其实二分查找、插值查找以及斐波那契查找都可以归为一类——插值查找。插值查找和斐波那契查找是在二分查找的基础上的优化查找算法。

阅读全文 »

常见的加密算法

发表于 2017-06-20

在项目开发过程中,当我们利用数据库存储一些关于用户的隐私信息,诸如密码、帐户密钥等数据时,需要加密后才向数据库写入。这时,我们需要一些高效地、简单易用的加密算法,当我们向数据库写数据时加密数据,然后把加密后的数据存入数据库;当需要读取数据时,从数据库把加密后的数据取出来,再通过算法解密。

常用的加密算法有Base64、MD5、AES和DES。

阅读全文 »
12…5
witchiman

witchiman

码农界的吟游诗人

45 日志
27 标签
GitHub Weibo
© 2018 witchiman
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.2