
Linux
文章平均质量分 65
肝帝三脚猫
这个作者很懒,什么都没留下…
展开
-
gpfdist不落盘导入数据
Linux中一切皆可以看作是文件,通过把gpfdist外部表中的文件替换成管道,可以实现不落盘导入数据。创建管道通过mkfifo命令创建命名管道,作为写入和读取的文件,下图示例中第一个字符p表示该文件是管道文件。开启gpfdist服务建立外部表外部表中需要指定文件的location,把location中的文件写成刚才创建的管道。开启生产者与消费者线程往该管道中写数据可以看作是生产者、数据库中读取数据可以看作是消费者。在实际代码实现中可以考虑使用双线程/进程来实现,二者在对方线程未触发前会原创 2022-01-25 14:12:22 · 475 阅读 · 0 评论 -
postgresql数据库信号量问题排查
信号量本质上是一个计数器(不设置全局变量是因为进程间是相互独立的,而这不一定能看到,看到也不能保证++引用计数为原子操作),用于多进程对共享数据对象的读取,它和管道有所不同,它不以传送数据为主要目的,它主要是用来保护共享资源(信号量也属于临界资源),使得资源在一个时刻只有一个进程独享,以保证它们能够正确、合理的使用公共资源。Semaphore就像可以容纳N人的房间,如果人不满就可以进去,如果人满了,就要等待有人出来,有时被称为信号灯。linux系统信号量设置与etc/sysctl.conf中的kernel原创 2022-01-19 11:54:20 · 449 阅读 · 0 评论 -
Greenplum UDP连接问题排查与解决
近日遇到Greenplum数据库执行部份SQL会卡住,最终报向某个节点发包失败的错误,此处记录一下排查过程和解决方法。1. 故障现象数据库状态正常,使用gpstate命令查看状态没有任何异常,可以正常进入数据库并查询任意表的数据,但是业务端反馈查询时一直卡住,没有数据。数据库错误如下:2. SQL分析获取实际执行的SQL后进行分解 ,最终定位到在在执行group by操作时会执行失败,取消group by则可以执行成功。对这两个SQL进行explain,分析查询计划,发现二者最大的区别在于加入了g原创 2021-09-13 10:02:36 · 3711 阅读 · 0 评论