`
文章列表
大型分布式网站的核心思想是采用大量廉价的PC,构建一个低成本、高可用、高可扩展、高吞吐的集群系统,以支撑海量的用户访问和数据存储,理论上具备无限的扩展能力。分布式系统的设计是一门复杂的学习,它涉及通信协议,远程调用,服务治理,系统安全,存储,搜索,监控,稳定性保障,性能优化,数据分析,数据挖掘等各个领域。                                             分布式服务化大型网站架构               1,架构模式:     分层:企业应用中最常见的一种架构模式,将系统在横向维度上切分成几个部分,第个部分负责一部分相对单一的职责,然后通过 ...
并发级别:     阻塞:悲观控制策略,试图进入临界区前,获取锁,得不到,线程挂起。     无饥饿:锁是公平的,满足先来后到,进行排队。     无障碍:乐观控制策略,线程在操作前,先读取并保存一个“一致性标记”,在操作完成后,再次读取,检查这个标记是否被更改过,如果两者一致,说明资源没有冲突,如果不一致,说明资源可能在操作过程与其他写线程冲突,需要重试操作,而任何对资源有修改操作的线程,在修改数据前,都需要更新这个一致标记,表示数据不再安全。     无锁:无锁的并行都是无障碍的,在无锁的情况下,所有的线程都能尝试对临界区进行访问,但不同的是,无锁的并发保证必然有一个线程能够在有限步内完 ...
Linux线程接口也称为pthread或POSIX线程,Linux2.6以后,采用Native POSIX线程库的新线程实现。 1, 互斥量     头文件<pthread.h> pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;     静态分配:     pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;     int pthread_mutex_init(pthread_mutex_t *mutex, const pthread_mutexattr_t *attr)   ...
    现代Linux系统中存在大量的并发来源,导致可能的竞态,竞态通常作为对资源的共享访问结果而产生。访问管理的常见技术称为“锁定”或者“互斥”——确保一次只有一个执行单元可操作共享资源。在Linux内核中,主要的 ...
                                                    一, AOF(Append Only File)持久化 1.原理        AOF是通过保存发送到服务器端的命令来保存数据库状态,类似关系数据库的redo log。Redis Client SDK,比如Jedis,与Redis Server通信的协议是 RESP (REdis Serialization Protocol), AOF本质就是把RESP的内容直接以Append的方式保存到文件里。以SET KEY VALUE命令为例,追加到AOF文件的内容是:          ...
yum install kernel-headers-$(uname -r) kernel-devel-$( uname -r) -y cat > env.sh <<EOF export GOROOT=/usr/local/go export GOPATH=/root/GoSpace export GOBIN=/root/GoSpace/bin export PAHT=$PATH:$GOROOT/bin:$GOBIN EOF
1,下载JDK8 eclipse-cpp-neon-3-win32-x86_64 2, 3 go.exe get -u github.com/nsf/gocode    go.exebuild github.com/nsf/gocode 4 go.exe get -u github.com/rogpeppe/godef    go.exe build github.com/rogpeppe/godef 5 go.exe get -u golang.org/x/tools/cmd/guru    go.exe build golang.org/x/tools/cmd/guru ...
    应用程序利用read,write系统调用对设备进行读写操作时,由于设备在实际的操作中响应速度各不相同,因此数据并不总是在任何时候都可用:对读操作来说,请求的数据还没有到达设备缓冲区,对于写操作,应用传递过来的数据也许不能一下子全部放进设备狭小的缓冲区,此时内核要么返回一个错误码给上层,要么让发起读写操作的进程进入等待状态。 1,struct file_operations:Linux设备驱动的编写,基本上是围绕如何实现该结构体的函数指针成员,应用程序的read(),write()等,最终被转接到该结构体中对应的函数指针的具体实现上。     struct file_operati ...
1,微服务架构:没有明确的定义,它采用一组服务的方式来构建一个应用,服务独立部署在不同的进程中,不同服务通过一些轻量级交互机制来通信,如RPC,HTTP等,服务可独立扩展伸缩,每个服务定义了明确的边界,不同的服 ...
    在物理内容定义方面Linux引入了内存结节(node), 内存区(zone), 内存页page的概念。对物理内存的管理分两部分:最底层实现的页面级内存管理伙伴系统,基于伙伴系统实现的内核对象缓存和通用缓存Slab内存管理。 2,伙伴系统(Buddy System)         节点:内核以struct pglist_data数据结构统一表示UMA系统和NUMA系统的内存结点,UMA只有一个内存节点,NUMA以链表的形式把内存节点串联起来。     typedef struct pglist_data {         struct zone node_zones[MAX_ ...
1,进程的概念     进程就是处于执行期的程序,包括代码段,打开的文件,挂起的信号,内核内部数据,处理器状态,内存地址空间,一个或多个执行线程,数据段等。Linux内核对进程和线程并不做特殊的区分。     内核把进程也叫做任务,进程描述符的数据结构类型为task_struct,在32位机器上有1.7KB。     struct task_struct {         volatile long state; /* -1 unrunnable, 0 runnable, >0 stopped */          struct thread_info *thread_inf ...
[Desktop Entry]Name=eclipseName[zh_CN]=eclipseComment=eclipse ClientExec=/home/db/eclipse/eclipseIcon=/home/db/eclipse/icon.xpmTerminal=falseType=ApplicationCategories=Application;Encoding=UTF-8StartupNotify=true
Global site tag (gtag.js) - Google Analytics