
工作学习
文章平均质量分 60
gao1738
这个作者很懒,什么都没留下…
展开
-
“万字长文教你如何做出ChatGPT“学习总结
“万字长文教你如何做出ChatGPT”学习总结,chatgpt的基本组成。原创 2023-02-18 19:07:29 · 6344 阅读 · 0 评论 -
GPLV2协议重点F&Q整理与总结
针对GPL软件二次开发人员的重点GPL F&Q整理总结。原创 2022-11-16 19:47:14 · 4210 阅读 · 0 评论 -
TDSQL-H LibraDB初步调研
TDSQL-H LibraDB初步调研,主要的亮点与同类产品差异。原创 2022-11-15 19:16:10 · 740 阅读 · 0 评论 -
用ssh连远程主机进行RPM打包时碰到…
前几天和同事一起在一个远程主机上进行RPM打包,本来很简单的一件事情,但却碰到了一个非常诡异的问题。问题描述如下:我和我同事用同一个账号ssh登入远程主机, 在同一个目录下,用同样的命令执行RPM打包。结果,我的成功了,他的却失败了。(我们不是同时执行,并且每次执行前工作目录都会重建)问题的原因:这个问题弄个很久也没搞明白怎么回事,为什么我机器ssh上去的就能执行成功,而他机器的就不原创 2015-01-18 20:15:00 · 509 阅读 · 0 评论 -
网络丢包问题处理
最近测试过程中发现数据库中间件程序会出现网络丢包。具体测试工具为mysqlslap。发现执行过程中当并发数达到一定程度时,有一定概率会出现mysqlslap一直hold住,无法返回。测试语句为:[root@db_slave1 cwinfocenter]# mysqlslap--concurrency=300,300,300,400,500 --number-of-queries=600原创 2015-01-18 20:19:03 · 887 阅读 · 0 评论 -
在centos/redhat6.5上编译Mariadb…
Mariadb支持tokudb的引擎,但官方下载的binarytar包中只有带有glibc_214的才带有tokudb引擎。顾名思义,带有“glibc_214”的安装包只有在带有glibc2.14版本的操作系统上才可以安装使用,而centos/redhat6.5上默认的版本是glibc 2.12 。。。。tokudb官方的提供的mariadb/mysql版本可以直接在centos/r原创 2015-01-18 20:19:48 · 1246 阅读 · 0 评论 -
写个支持多重名section和key的读取…
最近写了个读取ini配置文件的c++工具,它支持多重名section和key的读取读取的配置文件如下:# This is a comment[common]name = proxyport = 5588[default_server]check_user = rplcheck_password = 123master_backup = on[server]alisa =原创 2015-01-18 20:16:38 · 1199 阅读 · 0 评论 -
lex 和 yacc 学习…
笔记1中的实现是线程不可重入的,通过拜读《flex&bison》这本书学习并实践了线程可重入(reentrant)的实现(还是看正经的教科书来的靠谱)。这里记录下。1. flex的可重入实例程序如下: test.l---------------------------------------------------------------------------------新浪博原创 2015-01-18 20:17:04 · 762 阅读 · 0 评论 -
lex 和 yacc 学习…
之前给DBScale写的sql解析器并没有处理token的位置信息,这样在重构sql语句的时候非常的麻烦。本文将说明如何在可重入的bison和flex中添加token的位置信息,即yylloc.flex文件修改:首先需要在flex文件中添加选项:%bison-locations开启flex对位置信息的支持。其次,因为flex或者lex会自动维护行的信息(yylineno), 但不会原创 2015-01-18 20:18:11 · 1057 阅读 · 0 评论 -
linux中常用的定位性能问题的命令…
lsof -p线程号 查看这个线程使用的文件句柄ps -eLf | grep进程名 查看这个进程有几个子线程strace -p 线程号 可以看这个线程正在干什么gdb 可执行程序 线程号 可以对该进程进入调试模式gdb [可执行程序] core文件 可以对core文件进行调试ulimit -c 调大core文件大小 开启core支持原创 2015-01-18 20:18:22 · 685 阅读 · 0 评论 -
Linux系统 阻塞socket遇到网络故障
最近DBScal在客户那里做切换演练的时候,由于碰到recv读阻塞,导致切换失败。 问题的简化描述如下: 1. 机器A 跑client, 机器B 跑 server;2. client每5s钟会向server发数据包去核对server的状态;3. shutdown 机器B (关机过程需要大约10s,甚至更多);4. client阻塞在 linux的recv函数,直到15分钟超时 (se原创 2015-01-18 20:18:34 · 1631 阅读 · 0 评论 -
Linux glibc 的 ma…
最近使用ACE的Message_Block时发现,程序运行一段时间之后内存越吃越多,即便没有请求,内存也不会下降。在使用 valgrind 排除内存泄漏之后,把怀疑的对象转到了Message_Block上。用ACE的测试用例改了一个测试程序:#include "ace/Log_Msg.h"#include "ace/Message_Block.h"#include#include原创 2015-01-18 20:19:06 · 500 阅读 · 0 评论 -
Heat 模板 搭建集群初探
最近公司要求用heat模板在openstack集群上部署公司的分布式数据库GOS产品,简单研究了下,记录之:在这次使用中heat最主要的功能就是在openstack上搭建起GOS集群所需的虚拟机以及存储,然后调用GOS的安装脚本安装GOS。如下是写好的heat脚本,边贴边说明:首先是模板版本,主要注意的是heat模板支持3种书写格式(hot,yaml,json),但不能混用,本文以h原创 2015-01-18 20:19:15 · 988 阅读 · 0 评论 -
postgre-xc 初步调研
初步调研了下postgre-xc安装可以参考http://xmarker.blog.163.com/blog/static/2264840572013923552363/功能上:1. 支持数据表分片(默认使用第一列分片,默认创建的表就是分片表,也可以建成复制表)2. 支持跨节点join3. 支持数据备份与故障处理 (但故障处理时似乎不是自动切换的,但可以通过命令切换)4. 支持原创 2015-01-18 20:19:24 · 572 阅读 · 0 评论 -
求点集的外包凸多边形生成 算法
1 找到一个边界点:xmax,xmin, ymax,ymin都可以2 找第二个边界点,例如:1步骤中找到ymin后,遍历所有点,寻找到一点,使这点与ymin的线段与水平的夹角最小;3 针对上两个边界点AB,找下一个边界点C 使脚ABC最大,接近180度;可以使用余弦定理4 当找到的边界点为最初的ymin时,结束查找,把以上边界点按次序导出原创 2015-01-18 20:14:16 · 3841 阅读 · 0 评论 -
lex 和 yacc 学习笔记1
最近想自己写个轻量级的sql的解析器,所以开始学习lex和yacc,并记录其中碰到的主要问题。首先需要解决的lex和yacc的基本使用的问题,跑通一个最简单的例子。网上有很多lex和yacc的入门例子,但基本都一样,看完后还是不知道在程序里怎么调用它们来做解析。主要不清楚的问题有: a. 如何在lex,yacc和自己的程序间传递数据 b. 如何在自己的程序里调用le原创 2015-01-18 20:17:02 · 894 阅读 · 0 评论 -
转:数据更新快量大的业务设计数据…
对于千万到几亿级别的数据设备id分表,按区段或者取模这种传统手段都可以时间long型做主键最后去掉自增列并发如果超过一定量级(比如每秒100次了)就开始读写分离主库无索引只写入从库建索引调整索引大小如果超大并发(比如每秒500-1000次及以上写入)就这样子:原始数据用aof式的log存然后异步的存入数据库数据库本身再读写分离写入log后,多个worker并发的往数据库原创 2015-01-18 20:16:04 · 422 阅读 · 0 评论 -
关于图处理的数据库 和 工具
Neo4j是一个用Java实现、完全兼容ACID的图形数据库。数据以一种针对图形网络进行过优化的格式保存在磁盘上。Neo4j的内核是一种极快的图形引擎,具有数据库产品期望的所有特性,如恢复、两阶段提交、符合XA等。 http://www.neo4j.org.cn/ GraphChi- disk-based large-scale graph computationThe promise原创 2015-01-18 20:16:59 · 481 阅读 · 0 评论 -
expect 使用笔记
最近使用expect 进行远程命令调用,摸索过程中有所收获,记录之。expect的工作原理:简单来说就是,你执行一个行为,然后你预期会有哪些结果,并为每种结果设定处理逻辑。以远程ssh登录为例,你执行 “ssh host@ip ” 过程中,预期会有3种输出1. 询问密码 对应的处理逻辑为输入密码2. 问你是否确定要建立ssh连接 对应的处理逻辑为输入‘yes’3原创 2015-01-18 20:18:54 · 546 阅读 · 0 评论 -
配置 KVM 的桥接
使用如下命令 创建 桥接需要 的 桥:[root@s14 ~]# brctl addbr br0[root@s14 ~]# brctl addif br0 em2[root@s14 ~]# ifconfig up br0[root@s14 ~]# ifconfig br0 up如果主机环境中没有dhcp使用如下3条命令[root@s14 ~]# ifconfig em2 0.0原创 2015-01-18 20:19:09 · 492 阅读 · 0 评论 -
galera集群初探
最近公司要求做galera的调研,研究后做了点总结,记录之:主节点与备主节点间使用Galera进行同步复制。Galera是MySQLinnodb引擎的同步复制技术。它以插件的形式与innodb引擎直接交互。它确保集群中任何一个提交成功的事务都已经应用到了集群中所有的节点。为了确保复制的同步,Galera使用基于“Groupcommunication”的“Certification b原创 2015-01-18 20:19:12 · 2135 阅读 · 0 评论 -
转:CentOS 6.4 编译安…
转自:http://www.verydemo.com/demo_c128_i146068.html今天在isocpp上看到“GCC 4.8.1 released, C++11 featurecomplete”这个消息,非常兴奋。终于有一个全面支持C++11语言特性的编译器了!当然了,gcc仅仅是语言特性上全面支持C++11,libstdc++貌似还没有完全跟上,不过我已经挺满足了,至少可以原创 2015-01-18 20:19:45 · 508 阅读 · 0 评论 -
MySQL分布式集群连接池低潮抖动问…
最近在测试mysql集群自增插入性能问题时发现,对于短小事务(一个事务中只包含了一个单行插入),增加集群的分片不会导致集群整体插入TPS的提升。测试工具是sysbench,测试脚本是自行指定的lua脚本。function event(thread_id) db_query("begin;") db_query("INSERT INTO test.tt(TRAN_DATE,TRA原创 2015-01-18 20:19:51 · 1063 阅读 · 0 评论 -
NuoDB 简介
概述:NuoDB是一款新生的面向云的数据库,它支持完整的sql语句,基于MVCC的事务(ACID),同时可以优雅的伸缩性,方便地添加或删除节点。官网 http://www.nuodb.com/(在官网可以下载到应用程序和绿皮书,绿皮书在架构方面介绍的很详细)基本结构拓扑:NuoDB的核心是 Transaction Engine(TE) 和 Storage Manager(SM)。原创 2015-01-18 20:18:05 · 1125 阅读 · 0 评论 -
TCP Nagle's 算法导致的性能问题
最近再用sysbench给DBScale做压力测试的时候发现 DBScale+单个MySQL的读TPS比单个MySQL要差很多。跟踪代码后发现DBScale每次执行完一条select语句之后从客户端recv第一个数据包的时间要比第2个数据包的时间多200倍。查看了TCP的协议发现:1. TCP会默认开启Nagle's 算法 该算法会将多次send的操作(连续的,数据量小的)原创 2015-01-18 20:18:37 · 687 阅读 · 0 评论 -
glusterfs 快速安装配置
安装的机器为两台 centOS 6.4 X86_64的机器。首先安装gluster:分布在两台机器做如下操作:创建一个glusterfs.repo 文件在 /etc/yum.repo.d/下[glusterfs]name=glusterfsbaseurl=http://download.gluster.org/pub/gluster/glusterfs/3.3/3.3.2/RHE原创 2015-01-18 20:19:00 · 512 阅读 · 0 评论 -
编译选项的全局控制和局部控制
全局控制:可以在编译文件中添加编译选项,例如:-Wall -Werror -Wextra -Wno-ignored-qualifiers-Wunused-parameter局部控制:例如对于“Wunused-parameter”,我们在写父类方法的时候常常只定义接口参数,而并没有给出具体的实现,这时编译的时候就会报该参数没有被使用的警告。处理上有2种:1. 对于某个函数而言,有些原创 2015-01-18 20:18:31 · 1344 阅读 · 0 评论 -
Infinidb 使用笔记1
最近在研究 Infinidb,记录之。安装安装方式很多,可以选择从源码直接编译安装, 源码的下载路径在:https://github.com/infinidb里面有infinidb 和 mysql 两个目录,可以只下 infinidb.具体的安装说明在https://github.com/infinidb/infinidb的 README.md中有。需要注意的是1. 源码编译原创 2015-01-18 20:18:57 · 879 阅读 · 0 评论 -
pgpool初步调研
pgpool是日本人基于postgresql弄的一个分布式数据库集群中间件,如下是一个初步调研结果:主要调研pgpool对分片表的处理。1. 在分片表模式下,pgpool对于数据的分布只有2中选择: 要么作为分片表,被拆分到集群中的每一台机器上; 要么作为复制表,在集群的每一台机器上保存一份完整的数据; 集群中的所有业务表,只能上上面2种模式之一,否则会出错;2. 被原创 2015-01-18 20:19:18 · 990 阅读 · 0 评论 -
关于互联网业务在数据库方面的一些…
今天有幸听公司两位老鸟讨论互联网业务在数据库方面的一些经验,本文只是对他们讨论的一个记录与总结。互联网业务大体可以分为两种:新兴的互联网业务,如网游(QQ农场), 和传统的互联网业务,如通信计费(移动的计费)。对于新兴的互联网业务而言,绝大多数情况下满足如下特点:1.事务性不强2.可扩展性要求高3.每次请求的数据量不大,但总体访问量巨大4.对于应用层的设计而言,常用的设计方式是 一条s原创 2015-01-18 20:14:13 · 528 阅读 · 0 评论