摘要: 注:如果能够接受使用mysql-proxy,sharding-jdbc/sphere,mycat等分库分表方案,那么基于citus的分布式postgresql一定是更好的方案,更稳定、强大的数据库,更稳定的半内核原生实现,不二的选择。 为什么需要分布式数据库 有很多原因数据库需要扩展性。1、请求需要 阅读全文
posted @ 2021-12-15 13:53 zhjh256 阅读(3723) 评论(0) 推荐(0) 编辑
摘要: JDK 8的CompletionService相对于之前版本的Future而言,其优势是能够尽可能快的得到执行完成的任务。例如有4个并发任务要执行,正常情况下通过Future.get()获取,通常只能按照提交的顺序获得结果,如果最后提交的最先完成的话,总执行时间会长很多。而通过CompletionS 阅读全文
posted @ 2020-01-29 13:02 zhjh256 阅读(3900) 评论(1) 推荐(1) 编辑
摘要: 各gc的行为(包括各种gc在哪个节点花费的时间最多)及适用场景,应先理解这些前提,分析gc日志才会事半功倍,核心参数解析参见java垃圾回收及gc全面解析(全面覆盖cms、g1、zgc、openj9) 开启gc日志选项:-XX:+PrintGC -XX:+PrintGCApplicationStop 阅读全文
posted @ 2020-01-29 12:05 zhjh256 阅读(4542) 评论(1) 推荐(1) 编辑
摘要: 一般来说,gc的停顿时间和活跃对象的堆大小成比例,视gc线程的数量,每1GB可能会停顿1-3秒,且cpu数量通常和gc呈现阿姆达尔定律(Amdahl’s Law),而非我们直观计算的线性变化。如下: 体现在gc中的时候,不同cpu数量下的gc成本如下: 使用不同类型的gc将会在停顿和吞吐量之间发生很 阅读全文
posted @ 2019-12-21 15:45 zhjh256 阅读(4577) 评论(0) 推荐(1) 编辑
摘要: mybatis插件(准确的说应该是around拦截器,因为接口名是interceptor,而且invocation.proceed要自己调用,配置中叫插件)功能非常强大,可以让我们无侵入式的对SQL的执行进行干涉,从SQL语句重写、参数注入、结果集返回等每个主要环节,典型的包括权限控制检查与注入、只 阅读全文
posted @ 2019-09-14 19:18 zhjh256 阅读(8559) 评论(1) 推荐(0) 编辑
摘要: 最近开发一cdc框架,为了测试极端情况,需要kafka传递100万条数据过去,1个G左右,由于其他环节限制,不便进行拆包(注:测下来,大包走kafka不一定性能更好,甚至可能更低)。 测试百万以上的变更数据时,报消息超过kafka broker允许的最大值,因此需要修改如下参数,保证包能够正常发送: 阅读全文
posted @ 2019-08-17 16:31 zhjh256 阅读(8993) 评论(0) 推荐(0) 编辑
摘要: 现在AOP的场景越来越多,所以我们有必要理解下和AOP相关的一些概念和机制。基础知识和原理类大家搜索spring aop/aspectj,有大量现成的可以参考,基本上只要理解了jdk动态代理、cglib字节码动态生成代理就足够了,而且必须知道这个代理类是spring托管的(如果是自己创建的代理类,是 阅读全文
posted @ 2019-04-19 09:05 zhjh256 阅读(47767) 评论(3) 推荐(4) 编辑
摘要: [root@iZ23nn1p4mjZ zookeeper-3.4.10]# bin/zkCli.sh -server localhost:2181,localhost:2182,localhost:2183 Connecting to localhost:2181,localhost:2182,lo 阅读全文
posted @ 2018-10-09 11:43 zhjh256 阅读(31579) 评论(0) 推荐(0) 编辑
摘要: 版本介绍 目前最新版本为2.3(20190808更新)。demo搭建可参见https://www.orchome.com/6,收发消息测试可见https://www.cnblogs.com/yoyo1216/p/14024427.html。 从使用上来看,以0.9为分界线,0.9开始不再区分高级(相 阅读全文
posted @ 2018-09-20 10:58 zhjh256 阅读(9129) 评论(2) 推荐(2) 编辑
摘要: 目前我们使用的是主从+分库分表的系统架构,主库有N个分库,从库为多个slave做负载均衡,所以数据库端的架构是下面这样的: 因为差不多有一年半没有专门搞技术为主了,顺带回顾下。 这就涉及到多个主库数据同步到不分库分表的从库共查询和管理类系统使用。在mysql 5.6以及之前的版本中,没有原生的解决方 阅读全文
posted @ 2018-07-03 20:51 zhjh256 阅读(5407) 评论(0) 推荐(1) 编辑
摘要: 基于3.1.0配置spring boot可参考sharding jdbc(sphere) 3.1.0 spring boot配置。 选择开源核心组件的一个非常重要的考虑通常是社区活跃性,一旦项目团队无法进行自己后续维护和扩展的情况下更是如此。 至于为什么选择sharding-jdbc而不是Mycat 阅读全文
posted @ 2018-06-25 13:30 zhjh256 阅读(22821) 评论(1) 推荐(3) 编辑
摘要: 原先使用jedis的时候,处理手段是在从连接池获取连接时捕获JedisConnectionException异常,在异常处理部分重新获取连接,但是spring dame redis似乎不会,如下所示: org.springframework.dame.redis.RedisConnectionFai 阅读全文
posted @ 2018-06-14 17:00 zhjh256 阅读(19823) 评论(4) 推荐(2) 编辑
摘要: mybatis 3.x源码深度解析与最佳实践 html版离线文件可从https://files.cnblogs.com/files/zhjh256/mybatis3.x%E6%BA%90%E7%A0%81%E6%B7%B1%E5%BA%A6%E8%A7%A3%E6%9E%90%E4%B8%8E%E6 阅读全文
posted @ 2018-03-06 09:11 zhjh256 阅读(57953) 评论(14) 推荐(7) 编辑
摘要: 虽然我们在内部rpc通信中使用的是基于认证和报文头加密的方式实现安全性,但是有些时候仍然需要使用SSL加密,可能是因为对接的三方系统需要,也可能是由于open的考虑。中午特地测了下netty下集成ssl的功能,关于ssl的握手过程以及java安全框架中的相关组件说明,请参考如下链接: http:// 阅读全文
posted @ 2017-03-02 07:51 zhjh256 阅读(19528) 评论(2) 推荐(0) 编辑
摘要: 最近在看pthread方面的书,看到条件变量一节的时候,回忆了下java中条件变量的使用方式。 java中条件变量都实现了java.util.concurrent.locks.Condition接口,条件变量的实例化是通过一个Lock对象上调用newCondition()方法来获取的,这样,条件就和 阅读全文
posted @ 2017-02-11 17:16 zhjh256 阅读(14823) 评论(1) 推荐(1) 编辑
摘要: 之所以sockjs会存在,说得不好听点,就是因为微软是个流氓,现在使用windows 7的系统仍然有近半,而windows 7默认自带的是ie 8,有些会自动更新到ie 9,但是大部分非IT用户其实都不愿意或者不会升级(通常我们做IT的认为很简单的事情,在其他行业的人来看,那就是天书,不要觉得不可能 阅读全文
posted @ 2016-11-10 19:10 zhjh256 阅读(24729) 评论(3) 推荐(2) 编辑
摘要: 原博客地址http://blog.chinaunix.net/uid/20656672.html不再维护(数百篇oracle/teradata性能优化、故障处理原创文章) 阅读全文
posted @ 2016-05-16 13:31 zhjh256 阅读(682) 评论(0) 推荐(0) 编辑
摘要: 如下: /usr/bin/ld: postgres.lto.o:(.note.stapsdt+0x24): undefined reference to `postgresql_statement__status_semaphore' /usr/bin/ld: postgres.lto.o:(.no 阅读全文
posted @ 2024-04-04 11:44 zhjh256 阅读(3) 评论(0) 推荐(0) 编辑
摘要: 看issue https://github.com/citusdata/citus/discussions/7206应该是网络不通,但是连接本地节点,那唯一的可能应该就是被kill或者工作节点挂了。模拟参见:https://blog.csdn.net/fm0517/article/details/7 阅读全文
posted @ 2024-04-04 11:19 zhjh256 阅读(1) 评论(0) 推荐(0) 编辑
摘要: 近日,一19c oracle rac测试环境,初始反馈是sys用户查询很快,cdb用户如c##any查询系统表如all_tables很慢,至少相差几十倍、有时候直接半天超时还没执行完,经查一开始发现在等待gc cr multi block mixed事件,该事件据官方解释,该事件时提升性能用的,如下 阅读全文
posted @ 2024-03-06 09:57 zhjh256 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 1、总体可以参考https://blog.csdn.net/mengxiangfeiyang/article/details/129034747 创建用户、目录、依赖rpm、权限、内核参数、环境。下面重点说明几个容易出错的地方,或者该文章没有标记或者不必要的地方。 2、内存,最好8GB,4GB是非常 阅读全文
posted @ 2024-01-30 20:12 zhjh256 阅读(46) 评论(0) 推荐(0) 编辑
摘要: 1、参考https://blog.csdn.net/AllanHwang/article/details/127782317为主体 2、asm磁盘创建参考 https://blog.csdn.net/applmanwx/article/details/120389476,udev配置nvme不生效 阅读全文
posted @ 2024-01-29 09:49 zhjh256 阅读(33) 评论(0) 推荐(0) 编辑
摘要: 在oracle 11g中,SCAN IP还用的很少。到oracle 12.2或者19c,用户已经基本上清一色的切换到了SCAN IP。所以很有必要理解oracle的SCAN IP运行机制和配置。 先回顾下VIP。 RAC的每个节点都需要有一个虚拟IP,这就是VIP。VIP需要和PUBLIC IP同一 阅读全文
posted @ 2024-01-27 23:45 zhjh256 阅读(209) 评论(0) 推荐(0) 编辑
摘要: 最近研究PG源码时,遇到行构造器的特性。官方文档https://www.postgresql.org/docs/current/functions-comparisons.html#ROW-WISE-COMPARISON并未给出ROW构造器的示例。 ROW()对应的实现是RowExpr(里面解析后会 阅读全文
posted @ 2024-01-15 10:36 zhjh256 阅读(40) 评论(0) 推荐(1) 编辑
摘要: Maven 作为一个优秀的项目管理工具,其插件机制为其功能扩展提供了非常大的便捷性,本身它所有的功能都是插件完成的,maven自身只是一个框架。虽然说大多数情况下,我们可能不太会自己去编写 Maven 插件,但不排除在某些特殊的情况下,我们需要去完成一个自己的插件,来协助我们处理某些比较通用的事情, 阅读全文
posted @ 2024-01-14 23:16 zhjh256 阅读(67) 评论(0) 推荐(0) 编辑
摘要: 0、和java一样,go也是跨平台,天生支持Unicode。但是go直接生成可执行文件,性能更高,内存占用少。但是又和java一样,go打出来的二进制包能够扫描到依赖的库,如果库有漏洞,安全扫描会被扫出来。 1、安装、环境配置及术语 从https://golang.google.cn/下载对应的版本 阅读全文
posted @ 2024-01-14 22:55 zhjh256 阅读(30) 评论(0) 推荐(0) 编辑
摘要: 依赖包 jdk 8或11都行,不要到jdk 17 jdk 17第一个问题是jdk内部类默认不允许反射,很多配置要改。 scala 2.13 scala 2.13版本是为scala 3.0版本准备的,改进挺多。可通过scala编程(第四版)学习。 hadoop 3.2.1 因为windows hado 阅读全文
posted @ 2024-01-13 21:18 zhjh256 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 一级缓存的特性是: 1,一级缓存模式是开启状态(可通过localCacheScope属性控制,默认为SESSION,开启)2,一级缓存作用域在于SqlSession(大家可以关闭SqlSession,然后创建一个新的,再获取对象,观察实验结果),缓存随着会话(SqlSession)的创建而产生,随着 阅读全文
posted @ 2024-01-12 16:01 zhjh256 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 除了我们熟知的distinct外,postgresql还支持distinct on,它的用途跟mysql没有启用ONLY_FULL_GROUP_BY SQL选项是一样的,针对声明的字段做分组,分组外的字段返回随机一行。如下: lightdb@oradb=# create table t_distin 阅读全文
posted @ 2024-01-10 09:56 zhjh256 阅读(40) 评论(0) 推荐(0) 编辑
摘要: PostgreSQL 在2009年发布的8.4版本中开始支持window语法,直到2017-10-5发布了pg 11才完全支持sql:2011中所有的子句(所以具体厂商实现通常要三五年甚至更长才能完成对标准规范的支持)。 窗口函数的语法定义如下: function_name ([expression 阅读全文
posted @ 2024-01-10 09:31 zhjh256 阅读(5) 评论(0) 推荐(0) 编辑
摘要: rhel 7的主要新特性参见https://www.cnblogs.com/zhjh256/p/6675315.html。 8和7比又有不少新特性和废弃的特性。如下: /etc/inittab废弃 查看防火墙 systemctl status firewalld.service nftables代替 阅读全文
posted @ 2024-01-07 20:33 zhjh256 阅读(8) 评论(0) 推荐(0) 编辑
摘要: CMU 15-445/15-645中在索引一节有提到“Pointer Swizzling”,意思是内存地址和物理地址之间的转换。但它的翻译当前没有很能表达意思的术语,理解即可,有时候就是不好翻译不如不翻译。 https://stackoverflow.com/questions/21218304/w 阅读全文
posted @ 2024-01-05 20:43 zhjh256 阅读(29) 评论(0) 推荐(0) 编辑
摘要: 回文子串基本是动态规划里面的应用示例之一。虽然在实际中或者网上,我没有找到回文子串的使用案例。 #include <stddef.h> #include <stdio.h> #include <string.h> void longestPalindrome(char str[100],size_t 阅读全文
posted @ 2024-01-03 09:48 zhjh256 阅读(4) 评论(0) 推荐(0) 编辑
摘要: 一、WinCC WinCC是西门子公司推出的一款上位机组态软件,是工业自动化领域中非常常用的一款软件,被广泛应用于自动化控制、监控等方面。WinCC具有丰富的图形化界面,可灵活地配置、监控、控制和维护工业生产流程,支持多语言、分布式、网络化的特点。 二、LabVIEW LabVIEW是美国国家仪器公 阅读全文
posted @ 2024-01-03 09:39 zhjh256 阅读(53) 评论(0) 推荐(0) 编辑
摘要: 主要用于避免遍历的时候做无用功。 // 用于处理不相交集合的合并问题。 // 经典应用有: // –连通子图 // –最小生成树Kruskal算法 // –最近公共祖先 // O(n) #include <bits/stdc++.h> // 万能库,测试可用,生产不可用 using namespac 阅读全文
posted @ 2024-01-02 22:05 zhjh256 阅读(5) 评论(0) 推荐(0) 编辑
摘要: java.lang.RuntimeException: org.codehaus.plexus.component.repository.exception.ComponentLookupException: com.google.inject.ProvisionException: Unable 阅读全文
posted @ 2024-01-02 10:01 zhjh256 阅读(228) 评论(0) 推荐(0) 编辑
摘要: 创建无向图的邻接表和邻接矩阵 ALGraph.h #pragma once #define MAXVEX 100 typedef char VertexType; //顶点类型 typedef int EdgeType; //边上的权值类型 struct EdgeNode //边表结点 { int 阅读全文
posted @ 2024-01-01 23:36 zhjh256 阅读(8) 评论(0) 推荐(0) 编辑
摘要: c/c++编译、构建工具链(包括4部分 编译工具,构建工具,sdk,运行时库)。https://zhuanlan.zhihu.com/p/655701220虽然cmake已经很成熟了,但是make和Ninja(pg 16采用Ninja而不是cmake)仍然广泛在使用中,并且相比cmake,make更 阅读全文
posted @ 2024-01-01 11:13 zhjh256 阅读(24) 评论(0) 推荐(0) 编辑
摘要: #include <stdio.h> #include <malloc.h> struct TreeHeap { int v; }; typedef struct TreeHeap TreeHeap; static void print_bp(int bp[],int len); void crea 阅读全文
posted @ 2023-12-31 10:37 zhjh256 阅读(21) 评论(0) 推荐(0) 编辑
摘要: PG_PROC PG_OPERATOR pg_opclass用于定义索引上的相关操作符,一般来说是同一类数据类型。pg_opfamiliy定义了相互兼容的数据类型的操作符,关系见https://www.postgresql.org/docs/9.1/catalog-pg-opclass.html。p 阅读全文
posted @ 2023-12-28 08:36 zhjh256 阅读(40) 评论(0) 推荐(0) 编辑
摘要: 在linux源码中经常遇到__asm__函数。它其实是函数asm的宏定义 #define __asm__ asm,asm函数让系统执行汇编语句。 __asm__常常与__volatile__一起出现。__volatile__限制编译器不能对下面的汇编语句进行优化处理。 现代cpu通常具有多级缓存,寄 阅读全文
posted @ 2023-12-27 23:37 zhjh256 阅读(37) 评论(0) 推荐(0) 编辑
摘要: 有些软件依赖于c++ 14甚至c++ 17的特性,比如libpqxx 6.4.8版本就需要4.9以上版本,4.8.5不可以,会下列错误, invalid initialization of non-const reference of type ‘pqxx::connection_base&’ fr 阅读全文
posted @ 2023-12-27 22:16 zhjh256 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 起源,intel网卡中的SFP+是啥? SFP+是光纤模块,是一种可热插拔的,独立于通信协议的光学收发器。SFP+光纤模块是SFP的升级。SFP+光纤模块在以太网和1G、2G、4G光纤通道上SFP已经得到了广泛应用。SFP+为了适应更高的数据速率,设计了比SFP增强的电磁屏蔽与信号保护特性。 int 阅读全文
posted @ 2023-12-27 22:14 zhjh256 阅读(85) 评论(0) 推荐(0) 编辑
摘要: 如: typedef struct { int timelineId; size_t len; WalRecord *walrec; } WalData; 相当于只希望一个应用只有一个单例。对应于设计模式中常说的单例模式。 https://blog.csdn.net/weixin_40283460/ 阅读全文
posted @ 2023-12-27 22:13 zhjh256 阅读(10) 评论(0) 推荐(0) 编辑
摘要: 如下所示: { n = secure_raw_read(port, ptr, len); // pg的socket读是非阻塞读,所以返回-1不影响,后面等到socket可读之后继续读。见下文socket返回值解释 waitfor = WL_SOCKET_READABLE; } /* In block 阅读全文
posted @ 2023-12-27 11:20 zhjh256 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 高可用集群的构架层次: 1. 后端主机层: 这一层主要是正在运行在物理主机上的服务。 2. Message layer: 信息传递层,主要传递心跳信息 2. Cluster Resources Manager(CRM): 集群资源管理器层,这一层是心跳信息传递层管理器。用于管理信条信息的传递和收集 阅读全文
posted @ 2023-11-24 11:51 zhjh256 阅读(35) 评论(0) 推荐(1) 编辑
摘要: 继postgresql 15新特性后,pg16已经发布,这个版本的主要特性如下: 1、逻辑复制支持级联,不一定要从primary开始; 2、逻辑复制支持订阅自己,也就是真正的双主可以通过逻辑复制内置订阅实现了,不需要依赖三方,如pglogical 3、copy性能提升明显,某些场景下300% 4、S 阅读全文
posted @ 2023-11-19 16:01 zhjh256 阅读(415) 评论(0) 推荐(0) 编辑
摘要: [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 database system will be owned b 阅读全文
posted @ 2023-10-30 23:45 zhjh256 阅读(50) 评论(0) 推荐(0) 编辑
摘要: 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. lightdb 新特性E.1.5. ltjdbc 增强 版本发布日期:. 阅读全文
posted @ 2023-10-02 22:16 zhjh256 阅读(26) 评论(0) 推荐(0) 编辑
摘要: 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_0/ ./bootstrap.shsudo ./b2 in 阅读全文
posted @ 2023-10-01 23:34 zhjh256 阅读(134) 评论(0) 推荐(0) 编辑
摘要: c/c++标准库中没有自带的uuid工具函数/类,可以使用三方库libuuid,boost,或者手工实现,如下: [zjh@hs-10-20-xxx lib]$ sudo yum install libuuid-devel [sudo] password for zjh: Loaded plugin 阅读全文
posted @ 2023-10-01 22:34 zhjh256 阅读(145) 评论(0) 推荐(0) 编辑
摘要: https://www.loc.gov/standards/datetime/iso-tc154-wg5_n0039_iso_wd_8601-2_2016-02-16.pdf https://www.ionos.com/digitalguide/websites/web-development/is 阅读全文
posted @ 2023-09-09 22:51 zhjh256 阅读(44) 评论(0) 推荐(0) 编辑
摘要: pl/sql developer和navicat是好用的pl/sql过程debug工具。虽然要购买licesne。 原因:navicat内置自带11.2的oci,版本过低和服务器不兼容。 解决方法:下载oracle instant client 12.1,navicat指向其中的oci.dll,重启 阅读全文
posted @ 2023-09-07 14:19 zhjh256 阅读(113) 评论(0) 推荐(0) 编辑
摘要: 理论基础与研究 向量数据库用于非结构化文本、图片、音频、视频搜索、推荐,将他们转换为数字向量表示来进行相似性(ANN)搜索。存储和搜索高维向量是其特征之一,通常采用高级索引技术和算法如HNSW, Annoy, 或Faiss来实现。不同于SQL数据库,向量数据库更像nosql,用户接受使用sdk/AP 阅读全文
posted @ 2023-09-02 21:46 zhjh256 阅读(753) 评论(0) 推荐(0) 编辑
摘要: lightdb对oracle package的兼容性还是不错的,大部分都已经支持。如下: -- 创建oracle模式数据库 zjh@postgres=# create database ora_db3 lightdb_syntax_compatible_typE=oracle; NOTICE: au 阅读全文
posted @ 2023-08-15 19:49 zhjh256 阅读(35) 评论(0) 推荐(0) 编辑
摘要: 前言 虽然这篇文章的标题写的是正确看待Java以及何时应该升级到JDK 17,但是实际上可以认为是我对技术选型和系统性软件工程的一些总结,其中包含了一些可以用于其它技术的参考性讨论。做了很多年的Java之后,这几年笔者在做lightdb数据库内核开发中以c/c++为主,所以可维护性和是否有显而易见的 阅读全文
posted @ 2023-08-12 20:36 zhjh256 阅读(271) 评论(0) 推荐(0) 编辑
摘要: JVM标准的性能测试工具是SPECjbb 2015, SPECjbb2015是SPEC组织的一个用于评估服务器端Java应用性能的基准测试程序,其官方主页为 https://www.spec.org/jbb2015 。在其之前还有SPECjbb2013、SPECjbb2005等版本。该基准测试主要测 阅读全文
posted @ 2023-07-23 19:55 zhjh256 阅读(364) 评论(0) 推荐(0) 编辑