本月博客排行
-
第1名
Xeden -
第2名
fantaxy025025 -
第3名
bosschen - paulwong
- johnsmith9th
年度博客排行
-
第1名
青否云后端云 -
第2名
宏天软件 -
第3名
gashero - gengyun12
- wy_19921005
- vipbooks
- e_e
- benladeng5225
- wallimn
- ranbuijj
- javashop
- jickcai
- fantaxy025025
- zw7534313
- qepwqnp
- robotmen
- 解宜然
- ssydxa219
- sam123456gz
- zysnba
- sichunli_030
- tanling8334
- arpenker
- gaojingsong
- xpenxpen
- kaizi1992
- wiseboyloves
- jh108020
- xyuma
- ganxueyun
- wangchen.ily
- xiangjie88
- Jameslyy
- luxurioust
- mengjichen
- lemonhandsome
- jbosscn
- nychen2000
- zxq_2017
- lzyfn123
- wjianwei666
- forestqqqq
- ajinn
- siemens800
- hanbaohong
- 狂盗一枝梅
- java-007
- zhanjia
- 喧嚣求静
- Xeden
最新文章列表
分布式内存文件系统:Tachyon
Tachyon是一个分布式内存文件系统,可以在集群里以访问内存的速度来访问存储在Tachyon里的文件。Tachyon是架构在最底层的分布式文件系统和上层的各种计算框架之间的一种中间件,其主要职责是将那些不需要落地到DFS里的文件,落地到分布式内存文件系统中,来达到共享内存,从而提高效率,减少内存冗余,减少GC时间等。
Tachyon架构
Tachyon的架构是传统的Mast ...
java实现共享内存操作
对UNIX系统来说,共享内存分为一般共享内存和映像文件共享内存两种,对windows实际上只有映像文件共享内存一种。所以java应用中也是只能创建映像文件共享内存。使用共享内存,有如下几个特点:
1、可以被多个进程打开访问。
2、读写操作的进程在执行读写操作时其他进程不能进行写操作。
3、多个进程可以交替对某一共享内存执行写操作。
4、一个进程执行了内存的写操作后,不影响其他 ...
SAP内存/ABAP内存/共享内存区别(深入浅出)
转:http://www.zhsap.com/?fromuid=5774(1)、读取和使用方法不同SAP内存使用SET/GET parameters方法:<!--StartFragment -->SET PARAMETER ID 'MAT' FIELD P_MATNR.GET PARAMETER ...
linux c学习笔记----共享内存(shmget,shmat,shmdt,shmctl)
shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值:成功返回共享存储的id,失败返回-1key_t key-------- ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号二十:shmem中初始化堆同步扫描、pg子进程相关结构
这一节
pg
初始化堆扫描同步支持用到的相关结构。
堆扫描同步是当多个进程在同一个表上做顺序扫描(
sequential scan
),
pg
尝试保持他们同步以减少整体
I/O
需求。这个目标是读每一个页到共享内存仅一次,且使所有参与扫描这个页的进程在这个页被替换出共享内存前处理这个页。
活 ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十八:shmem中初始化WalSender和WalRecv相关结构
1
先上个图,看一下函数调用过程梗概,中间略过部分细节
初始化
walsender
和
walreceiver
相关结构
方法调用流程图
2
初始化
xlog
相关结构
话说
main()->
…
->PostmasterMain()->
…
->reset_shared() ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十七:shmem中初始化AutoVacuum相关结构
这一节
pg
初始化
AutoVacuum
系统和进程用到的相关结构,通过
AutoVacuumShmemInit
例程实现
。主要是初始化了一个
AutoVacuumShmemStruct
结构和autovacuum_max_workers
个(默认3
个,可以根据GUC
参数设置)
结构组成的链表,以供
AutoVacuum
相关进程使用。
Aut ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十六:shmem中初始化BgWriter
这一节
pg
初始化后台写进程(
BgWriter
)用到的相关结构,通过
BgWriterShmemInit
例程实现
。主要是初始化了一个
BgWriterShmemStruct
结构,并使用了面向过程C
语言编程的一个技巧,把这个结构中的固定长度数组
BgWriterRequest requests[1]
扩充成
NBuffers
个(根据 ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十五:shmem中初始化ProcSignal
这一节
pg
初始化非
postmaster
进程间发送信号用到的相关结构,在共享内存里通过信号交互,通过
ProcSignalShmemInit
例程实现
。主要是初始化了
MaxBackends +
NUM_AUXPROCTYPES
=164
个
(默认是100+64
个,可以设置)
ProcSignalSlot
结构的数组,以供非
...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十四:shmem中初始化PMSignal
这一节
pg
初始化
postmaster
子进程给
postmaster
进程发送信号用到的相关结构,在共享内存里通过信号交互,通过
PMSignalShmemInit
例程实现
。主要是初始化了一个
PMSignalData
结构,并使用了面向过程编程的一个技巧,把这个结构中的固定长度数组
sig_automatic_t PMChildFlag ...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十二:shmem中初始化SharedBackendStatus
这一节
pg
初始化共享后台进程状态数组
SharedBackendStatus
和多个字符串缓存
,通过
CreateSharedBackendStatus
例程实现。
1
先上个图,看一下函数调用过程梗概,中间略过部分细节
初始化
SharedBackendStatus
方法调用流程图
...
PostgreSQL启动过程中的那些事七:初始化共享内存和信号十一:shmem中初始化SharedProcArray
这一节
pg
初始化进程表,通过
CreateSharedProcArray
例程实现,该例程中初始化的相关结构主要是为了支持维护一个所有活跃backend
进程的PGPROC
结构的未排序数组。
尽管多处用到此数组,但主要是作为确定当前运行进程的事务集合的一种方式。
1
先上个图,看一下函数调用过程梗概,中间略过部分细节
...
PostgreSQL的内存管理机制十二:共享内存/shmem分配
pg
的内存除了
AllocSet/MemoryContext
外,另一个主要部分就是共享内存(shared memory
)。这一节讨论共享内存(简写shmem
)的分配。
pg
在
reset_shared
()
这个函数里,
计算数据缓冲、xlog
、clog
、共享进程、子事务、并发控制、轻量级锁、backend
进程等需要的共享内存,
调用
shmg ...