原创 makefile詳解-實例版 四個特殊符號的意義@、$@、$^、$< makefile編譯子目錄 makefile中 rm、@rm 和 -rm的區別

雖然cmake已經很成熟了,但是make和Ninja(pg 16採用Ninja而不是cmake)仍然廣泛在使用中,並且相比cmake,make更加的透明。可以說掌握makefile是linux下開發從入門到進階第一步。#---------

原创 手寫topN算法-c語言

#include <stdio.h> #include <malloc.h> struct TreeHeap { int v; }; typedef struct TreeHeap TreeHeap; static void

原创 intel網卡系列及RDMA支持

起源,intel網卡中的SFP+是啥? SFP+是光纖模塊,是一種可熱插拔的,獨立於通信協議的光學收發器。SFP+光纖模塊是SFP的升級。SFP+光纖模塊在以太網和1G、2G、4G光纖通道上SFP已經得到了廣泛應用。SFP+爲了適應更高的

原创 c語言struct結構體不帶類型名定義變量

如: typedef struct {   int timelineId;   size_t len;   WalRecord *walrec; } WalData; 相當於只希望一個應用只有一個單例。對應於設計模式中常說的單例模式。 ht

原创 一文真正掌握內存屏障memory_barrier及其用途

  在linux源碼中經常遇到__asm__函數。它其實是函數asm的宏定義   #define __asm__ asm,asm函數讓系統執行彙編語句。   __asm__常常與__volatile__一起出現。__volatile__限制

原创 linux下gcc 4.8.5和7.5並存

  有些軟件依賴於c++ 14甚至c++ 17的特性,比如libpqxx 6.4.8版本就需要4.9以上版本,4.8.5不可以,會下列錯誤,   invalid initialization of non-const reference o

原创 lightdb/postgresql中plpgsql、函數與操作符、表達式及其內部實現

PG_PROC PG_OPERATOR pg_opclass用於定義索引上的相關操作符,一般來說是同一類數據類型。pg_opfamiliy定義了相互兼容的數據類型的操作符,關係見https://www.postgresql.org/docs

原创 postgresql socket讀數據返回-1

如下所示: { n = secure_raw_read(port, ptr, len); // pg的socket讀是非阻塞讀,所以返回-1不影響,後面等到socket可讀之後繼續讀。見下文socket返回值解

原创 高可用集羣基本概念與實現層次技術參考

    高可用集羣的構架層次:          1. 後端主機層: 這一層主要是正在運行在物理主機上的服務。          2. Message layer: 信息傳遞層,主要傳遞心跳信息         2. Cluster

原创 postgresql 16主要新特性 postgresql 15新特性

繼postgresql 15新特性後,pg16已經發布,這個版本的主要特性如下: 1、邏輯複製支持級聯,不一定要從primary開始; 2、邏輯複製支持訂閱自己,也就是真正的雙主可以通過邏輯複製內置訂閱實現了,不需要依賴三方,如pglogi

原创 kingbase初始化報錯

[zjh@hs-10-20-30-193 Server]$ rm -rf data[zjh@hs-10-20-30-193 Server]$ ./bin/initdb -D dataThe files belonging to this d

原创 lightdb 23.3新特性

lightdb 23.3已於2023年9月28日正式發佈。相關的特性如下: E.1. 版本發佈 13.8-23.3 E.1.1. Oracle 兼容E.1.2. plorasql 增強E.1.3. MySQL 兼容E.1.4.

原创 c/c++獲取uuid

c/c++標準庫中沒有自帶的uuid工具函數/類,可以使用三方庫libuuid,boost,或者手工實現,如下: [zjh@hs-10-20-xxx lib]$ sudo yum install libuuid-devel [sudo]

原创 c++ boost庫安裝與測試

1、從官網http://www.boost.org/users/download/下載最新版本的boost,如boost_1_65_0 2、解壓tar xzvf boost_1_65_0.tar.gz, 3、安裝 cd boost_1_65

原创 ISO 8601標準定義的日期、時間、間隔格式

https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_iso_wd_8601-2_2016-02-16.pdf https://www.ionos.com/digitalgui