- 博客(38)
- 资源 (4)
- 收藏
- 关注
翻译 Postgresql技术内幕系列-第二章 进程与内存架构
本章主要介绍pg的进程架构和内存架构,如果您对此已经非常熟悉,可跳过本章阅读后续章节。2.1 进程架构PostgreSQL是一个C/S架构的关系型数据库管理系统,在一个服务器中采用了多进程架构。'PostgreSQL server'指的是用以一组数据库后台进程的集合,用于管理一个数据库集合。pg server包括以下主要后台进程:...
2019-08-20 00:26:47
919
翻译 Postgresql技术内幕系列-第一章数据库集合、数据库、表的逻辑设计与物理设计
第一章数据库集合、数据库、表1.1数据库集合(database cluster)逻辑结构1.2数据库集合(database cluster)的物理结构1.2.1. 数据库集合(database cluster)的布局1.2.2. database的物理布局设计1.2.3. 表和索引的物理布局设计1.2.4. Tablespaces1.3. 堆表文件(heap table...
2019-08-15 01:49:03
954
转载 pthread_detach()与pthread_join的区别?
转自 https://www.cnblogs.com/mcy0808/p/7466614.html简单来说:pthread_detach()即主线程与子线程分离,子线程结束后,资源自动回收。pthread_join()即是子线程合入主线程,主线程阻塞等待子线程结束,然后回收子线程资源。【转】在任何一个时间点上,线程是可结合的(joinable)或者是分离的(detached)。一个可结合...
2019-06-04 17:45:39
452
转载 在Linux中使用线程
转自https://www.cnblogs.com/jiu0821/p/6707912.html在Linux中使用线程目录3.1 绑定属性 3.2 分离属性 3.3 调度属性 3.4 堆栈大小属性 3.5 满栈警戒区属性 5.1 互斥锁 5.2 条件变量我并不假定你会使用Linux的线程,所以在这里就简单的介绍一下。如果你之前有过多线程方面的编程经验,...
2019-06-03 08:26:15
326
原创 socket 通信示例
client.c#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <arpa/inet.h>#include <netdb.h>#include <stdio.h>#include <errno.h&g...
2019-05-27 09:07:10
243
转载 理解数据库中的undo日志、redo日志、检查点
数据库存放数据的文件,本文称其为data file。数据库的内容在内存里是有缓存的,这里命名为db buffer。某次操作,我们取了数据库某表格中的数据,这个数据会在内存中缓存一些时间。对这个数据的修改在开始时候也只是修改在内存中的内容。当db buffer已满或者遇到其他的情况,这些数据会写入data file。undo,redo日志在内存里也是有缓存的,这里将其叫做log buf...
2019-05-25 01:07:54
574
原创 进程间通信-消息对列
原理说明:消息队列是内核地址空间中的内部链表,通过linux内核在各个进程之间传递内容,消息顺序地发送到消息队列中,并且以几种不同的方式从队列中获取,每个消息队列可以用IPC标识符唯一的进行标识,内核中的消息队列是通过IPC的标识符来区别的,不同的消息队列之间是相互独立的,每个消息队列中的消息又构成一个独立的链表.消息队列中的数据结构1、消息缓冲结构向消息队列发送消息...
2019-05-24 10:59:51
226
转载 转载 进程间通信之-共享内存Shared Memory
转自https://www.cnblogs.com/blfbuaa/p/7145946.html共享内存共享内存是进程间通信中最简单的方式之中的一个。共享内存是系统出于多个进程之间通讯的考虑,而预留的的一块内存区。共享内存同意两个或很多其他进程訪问同一块内存,就如同 malloc() 函数向不同进程返回了指向同一个物理内存区域的指针。当一个进程改变了这块地址中的内容的时候,其他...
2019-05-23 09:03:13
238
转载 c实现hash
#include <stdio.h>#define HASH_SIZE 10typedef struct Node{ char key[50]; char value[50]; struct Node *next;} NODE;typedef unsigned int uint;NODE *node[HASH_SIZE];/*init ha...
2019-05-17 11:29:37
2834
转载 linux内核学习之信号量操作
转自http://blog.sina.com.cn/s/blog_803527e70100vd4f.html转自https://www.cnblogs.com/guochuanrui/p/5677570.html信号量的操作——semop函数信号量的值与相应资源的使用情况有关,当它的值大于 0 时,表示当前可用的资源数的数量;当它的值小于 0 时,其绝对值表示等待使用该资源的...
2019-04-19 06:21:48
904
转载 Linux 2.6内核锁机制--RCU
转自https://www.ibm.com/developerworks/cn/linux/l-rcu/一、 引言众所周知,为了保护共享数据,需要一些同步机制,如自旋锁(spinlock),读写锁(rwlock),它们使用起来非常简单,而且是一种很有效的同步机制,在UNIX系统和Linux系统中得到了广泛的使用。但是随着计算机硬件的快速发展,获得这种锁的开销相对于CPU的速度在成倍地增加,...
2019-04-18 05:33:52
650
转载 strcpy、strncpy与memcpy的区别与使用方法
转自https://www.cnblogs.com/houjun/p/4913216.htmlstrcpy、strncpy、memcpy这三个C语言函数我们在主机代码编写中会很频繁的使用到,但是三个函数的区别、使用时该注意什么还是有必要说下的。本文参考《C标准库》编写。一、函数说明1、memcpy函数void*memcpy(void *s1, const void *s...
2019-04-18 03:51:42
274
转载 linux内存映射图文说明+c语言demo
转自:http://blog.youkuaiyun.com/yusiguyuan/article/details/23388771内存映射,简而言之就是将用户空间的一段内存区域映射到内核空间,映射成功后,用户对这段内存区域的修改可以直接反映到内核空间,同样,内核空间对这段区域的修改也直接反映用户空间。那么对于内核空间<---->用户空间两者之间需要大量数据传输等操作的话效率是非常高的。...
2019-04-16 06:32:35
726
转载 Linux内存描述符mm_struct实例详解(含图文说明)
转自:https://www.jb51.net/article/123056.htmLinux对于内存的管理涉及到非常多的方面,这篇文章首先从对进程虚拟地址空间的管理说起。(所依据的代码是2.6.32.60)无论是内核线程还是用户进程,对于内核来说,无非都是task_struct这个数据结构的一个实例而已,task_struct被称为进程描述符(process descriptor),因为...
2019-04-15 06:15:20
2149
原创 进程虚拟内存入门好文推荐(图文并茂)
1.共享内存与存储映射(mmap)本文有助于理解共享库(so)与进程虚拟内存映射关系https://www.cnblogs.com/huangfuyuan/p/9476951.html2.Linux进程地址空间 && 进程内存布局本文有助于理解进程内存布局,即进程地址空间的结构和职责,并通过c语言demo形象化说明地址空间。https://blog.csdn.n...
2019-04-15 05:45:15
382
原创 Linux内存管理之SLAB好文推荐(图文并茂)
正在学习linux slab机制,从搜索的大量博文中,筛选出几篇较好的入门文章,如下:Linux内存管理中的slab分配器:https://www.cnblogs.com/pengdonglin137/p/3878552.htmlLinux内存管理之SLAB原理浅析:https://blog.youkuaiyun.com/rockrockwu/article/details/79976833[L...
2019-04-14 08:41:17
1440
转载 Linux Cache 机制探究
本文内容遵从CC版权协议, 可以随意转载, 但必须以超链接形式标明文章原始出处和作者信息及版权声明网址: http://www.penglixun.com/tech/system/linux_cache_discovery.html经过研究了下Linux相关代码,把对Linux Cache实现的方式做一些总结。相关源码主要在:./fs/fscache/cache.c Cache实现...
2019-04-14 08:03:39
361
转载 linux内核伙伴算法图文说明
转自https://www.cnblogs.com/cherishui/p/4246133.html算法作用 它要解决的问题是频繁地请求和释放不同大小的一组连续页框,必然导致在已分配页框的块内分散了许多小块的空闲页面,由此带来的问题是,即使有足够的空闲页框可以满足请求,但要分配一个大块的连续页框可能无法满足请求。 伙伴算法(Buddy system)把所有的空闲页框分...
2019-04-13 18:53:50
407
原创 排序(冒泡、插入、选择、希尔)之c语言完成实现(编译-运行-查看结果)
排序原理及算法复杂度计算见“经典排序算法及时间复杂度计算-c语言-动画演示”,链接:https://blog.youkuaiyun.com/yq272393925/article/details/89132353。以下内容为c语言实现干货,在linux平台下编译运行并查看结果。0.编译及运行脚本(build.sh)执行 sh build.sh ,输入排序数据数量,即可运行查看结果#!/bin/...
2019-04-12 18:23:32
387
原创 线程安全介绍及保障方法
线程安全就是为了在单位时间内某个线程操作的是同样的数据,用以解决在并发写情况下数据的一致性问题。举例说明:比如一个 ArrayList 类,在添加一个元素的时候,它可能会有两步来完成:1. 在 Items[Size] 的位置存放此元素;2. 增大 Size 的值。在单线程运行的情况下,如果 Size = 0,添加一个元素后,此元素在位置 0,而且 Size=1;而如果是在多线...
2019-04-11 10:34:56
369
原创 c语言精妙之宏(do while)
在linux内核中经常包括以下种类的宏:drivers/block/ataflop.c#define FDC_WRITE(reg,val) \ do { ...
2019-04-10 22:19:13
1252
1
转载 PostgreSQL 开启“审计日志、时间记录”带来的性能影响有多少?
转自https://yq.aliyun.com/articles/640708开启审计日志,或者开启数据库的SQL耗时记录,会给数据库带来多大的性能开销?1、审计日志通过log_statement设置,可以设置为all, ddl, mod, none,分别表示审计所有SQL,DDL SQL,DML SQL,不审计。开启审计时,在执行SQL的时候(提交SQL请求时),数据库日志中打印类似...
2019-04-10 21:49:35
2359
转载 pg审计-含源码说明
PostgreSQL 9.5 new feature - pg_audit module转自http://ju.outofmemory.cn/entry/144473newPostgreSQLfeaturemodule以前写过一些PostgreSQL审计相关的文章,有些是通过系统自带的参数来配置审计功能的,还有是通过扩展模块来配置审计的,还有通过事件触发器,或者触发器来实现跟踪和...
2019-04-10 21:47:48
869
转载 pg审计
pg-数据库审计转自https://my.oschina.net/yafeishi/blog/742313审计的意义 审计的范围 审计操作的要求 审计的工具 log中记录操作 设置 log_statement=‘all’ 注意事项 限制 表上触发器&&hstore 测试 限制 event trigger 介绍 ...
2019-04-10 21:45:58
413
转载 aes算法图文介绍
AES算法简介一、AES的结构转自https://www.cnblogs.com/OneFri/p/5924605.html1、总体结构明文分组的长度为128位即16字节,密钥长度可以为16,24或者32字节(128,192,256位)。根据密钥的长度,算法被称为AES-128,AES-192或者AE-256。2、明文密钥组织方式3、一些相关的的术语定...
2019-04-10 21:43:43
940
转载 ICU 进阶 使用 ICU 中的 Resource Bundle 技术
转自:https://www.ibm.com/developerworks/cn/opensource/os-icu4c3/index.htmlICU 进阶使用 ICU 中的 Resource Bundle 技术李荣 施2006 年 2 月 16 日发布WeiboGoogle+用电子邮件发送本页面0系列内容:此内容是该系列的一部分:ICU 进阶什么是...
2019-04-10 10:56:57
1227
转载 Shell中语句if -z至-d含义
[ -a FILE ] 如果 FILE 存在则为真。[ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真。[ -c FILE ] 如果 FILE 存在且是一个字特殊文件则为真。[ -d FILE ] 如果 FILE 存在且是一个目录则为真。[ -e FILE ] 如果 FILE 存在则为真。[ -f FILE ] 如果 FILE 存在且是一个普通文件则为真。...
2019-04-09 15:41:03
8352
转载 《2017-2018数据库安全应用指南》重磅发布,聚焦企业数据安全建设
《2017-2018数据库安全应用指南》重磅发布,聚焦企业数据安全建设为什么发布《2017-2018数据库安全应用指南》这样一个报告?对此,安全牛与安华金和表示,希望能够切实帮助广大组织、企业在进行数据库安全建设实践中有可供借鉴的技术工具、产品选型、落地方法、建设思路、案例参考等等。作者:dumj来源:51CTO|2018-11-23 11:36收藏分享【51CTO.co...
2019-04-09 15:36:51
411
转载 oracle数据库审计架构
架构概述审计始终关注问责制,进行审计通常是为了保护数据库中存储的信息的隐私。随着数据库在企业中和互联网上的普遍使用,对隐私政策和做法的担忧也在持续增加。Oracle Database 提供了深度审计,让系统管理员能够实施增强的保护措施,及时发现可疑活动,做出精心优化的安全应对。有条件的统一审计Oracle Database 12c 统一审计功能利用策略和条件在 Oracle 数据库...
2019-04-09 15:17:47
554
转载 通过 oncheck 理解 Informix 索引结构
引言在 Informix 中,可以通过索引来快速定位“需要使用的数据行”。那么一般的 Informix 索引是通过什么结构来实现“快速定位数据行”的目的呢?本文将通过 oncheck 命令来展示实际的 Informix 索引结构,为您揭晓这个问题的答案。Informix 索引简介在 Informix 中,一个数据表里可能有很多数据行(row)。例如某连锁超市的“客户基本信息”数据表里有...
2019-04-09 15:16:23
2801
转载 Informix审计功能管理
https://wenku.baidu.com/view/2ce868488e9951e79b8927dc.html
2019-04-09 15:14:43
403
转载 如何实现对Informix进行日志审计
这篇文章转载自:http://www.chinaunix.net/jh/20/15586.html什么是安全审计 安全审计可以创建用户在数据库中活动的事件记录,通过这些记录可检查不平常或可疑的数据库活动。可以记录的事件有:成功或者失败的操作。你可以只记录成功的操作,或者只记录失败的操作,或者两种都记录。online系统的连接。你可以记录与online系统建立连接的情况,包括是谁建立了...
2019-04-09 15:13:52
1152
原创 算法时间复杂度计算方式
【对于一个给定的算法,通常要评估其正确性和运行效率的高低。算法的正确性评估不在本文范围之内,本文主要讨论从算法的时间复杂度特性去评估算法的优劣。】如何衡量一个算法的好坏呢?显然,选用的算法应该是正确的(算法的正确性不在此论述)。除此之外,通常有三个方面的考虑:(1)算法在执行过程中所消耗的时间;(2)算法在执行过程中所占资源的大小,例如,占用内存空间的大小;(3)算法的易理解性...
2019-04-09 14:53:00
30141
原创 Informix 数据库内部用户使用原理
Informix 数据库内部用户使用原理1. 概述Informix数据库支持两种用户访问方式,数据库内部用户和操作系统用户。数据库内部用户是指使用create user命令创建的用户,通过映射配置,新建用户可以映射至操作系统用户。这种方法使系统可以通过映射系统中已存在的除 Informix 和 root 外的其他用户,来访问数据库。这种机制将会减少为了使用数据库而创建的大量系统用户。...
2019-04-09 13:23:35
3149
转载 经典排序算法及时间复杂度计算-c语言-动画演示
0、排序算法说明0.1排序的定义对一序列对象根据某个关键字进行排序。0.2 术语说明稳定:如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定:如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序:所有排序操作都在内存中完成; 外排序:由于数据太大,因此把数据放在磁盘中,而排序通过磁盘和内存的数据传输才能进行; 时间复杂度:一个算法执行所耗费...
2019-04-09 08:45:17
2946
2
转载 ANSI C 和 POSIX介绍
标准 (ANSI C, POSIX, SVID, XPG, ...)ANSI C:这一标准是 ANSI(美国国家标准局)于 1989 年制定的 C 语言标准。 后来被 ISO(国际标准化组织)接受为标准,因此也称为 ISO C。 ANSI C 的目标是为各种操作系统上的 C 程序提供可移植性保证,而不仅仅限于 UNIX。 该标准不仅定义了 C 编程语言的语发和语义,而且还定义了一个标准库。这...
2018-02-01 06:36:15
983
原创 进程时间说明
进程时间也称CPU时间,用以度量进程使用的中央处理器资源。进程时间以时钟滴嗒计算,通常使用三个进程时间值,即实际时间(Real)、用户CPU时间(User)和系统CPU时间(Sys)。实际时间指实际流逝的时间;用户时间和系统时间指特定进程使用的CPU时间。具体区别如下:Real是从进程开始执行到完成所经历的挂钟(wall clock)时间,包括其他进程使用的时间片(time s
2018-01-31 06:26:17
2315
转载 ICU4C 介绍 C/C++ 平台强大的国际化应用开发组件
软件国际化软件国际化(I18N)是指开发不经过系统性的改变,就能直接支持指定的多个地区文化的软件的软件开发过程。软件国际化对编码和设计都要求严格,代码和设计都必须考虑到各种国家和地区文化差别,软件国际化的目标是开发的软件能适合所有指定人群的使用。由于软件开发者常常会做一些他们自己地区习惯的假设,而这些假设都可能导致发布的软件不能对某一地区文化正确支持,成功的软件国际化开发过程关键在于在设计和编...
2018-01-14 06:29:35
5112
C# 将一个Treeview的树形结构保存成文件并可以实现将文件内容导入Treeview中
2010-08-02
Oracle® Solaris 管理:安全服务
2019-04-09
在 Oracle® Solaris 11.2 中管理计算机安全性、系统完整性、访问控制、病毒扫描服务
2019-04-09
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅