- 博客(62)
- 资源 (3)
- 收藏
- 关注
原创 hashmap&concurrentHashmap&hashTable对比
hashMap concurrentHashmap hashTable 初始化 指定初始化大小数组 图1:需要考虑线程安全,调用initTable()。 判断sc变量是否小于0,如果不是则进行CAS抢占,将SIZECTL,sc赋值为-1。 其他线程进入时判断如果sizectl小于0,则进行yield()让出CPU执行权。 也就是说仅有一个线程能进行初始化操作。 指定大小 hash 图2:高16位 异或^ 低...
2021-05-22 15:59:40 161
原创 greenplum 单表磁盘空间持续高速增长,解决办法(2)
描述自上次解决空间增长问题后,又出现了此问题。初步解决方案还是上次的步骤,但是感觉治标不治本,这不是个办法,而且只有一张或两张表有这个问题。这样就有了一个排查的入手点了。是因为频繁的插入删除么,还是频繁的更新新呢?GP物理空间使用的特性建议去了解一下 简单介绍一下,就是修改的动作,是逻辑删除,空间不释放 运行一段时间后有修改的表,需要进行真空处理发现其中一张表是有删除、插入动作,另一张表只有插入动作。尝试了一下真空还能释放空间,这就比较郁闷了。没有进行逻辑删除,那释放的空间是什么呢?.
2020-11-05 16:11:35 559
原创 greenplum 单表磁盘空间持续高速增长,解决办法(1)
场景描述:同样的系统部署在3个环境中,问题表 正常的增长范围是每天1M,某一天线上问题说是系统宕机了,然后看了一下系统状态日志,磁盘空间满了。处理流程:日志本来是7天循环的,先手动删除了一下。 有一张数据备份表,和业务流程日志表,这两个是可以删除的,然后进行了truncate。释放了10几个G的空间,然后启动服务,开始排查问题。select pg_size_pretty(pg_relation_size('table_name'));查看了表物理空间大小,发现有一张P表达到了300G,然后第
2020-07-25 11:13:45 813
原创 kafka数据顺序
这里的顺序指的是数据写入的数据,并不是数据发送的顺序。红色为:leader。青色为:follower。黑色为:宕机。黄色为:恢复。比如:数据1 写入 partition1,partition2,partition3。完成提交 数据2进行写操作,leader写入后宕机(还有没对副本进行同步),数据2进行retry。 此时partition2已经变更为leader。 ...
2020-07-24 10:45:23 873 2
原创 指定次数或者条件 停止定时任务线程
先创建一个TASK用于执行定时任务,@Slf4jpublic class InitVisitorEntityTask implements Runnable { private VisitorEntityService visitorEntityService; private ConcurrentHashMap<String,Future> futuremap; private volatile CountDownLatch cdl; private A
2020-06-05 13:28:55 1341
原创 获取druid 空闲连接数
最近项目中需要集成健康监控,我的项目里使用的连接池的druid,然后有一个需要监控的指标是当前空闲连接数,但是durid的方法中没有明显的idle字样,源码中也没发现什么注释,这就很难搞了。找了几个方法的关系也没有什么太好的方向,最后选择了从数据库入手。首先,看一下数据库当前的连接情况:保证没有任何的其他连接情况下,有4个连接。贴图一下druid配置,先保持5个空闲。然后启动项目,查看初始状态下,数据库的连接状态。启动项目后连接数是9.项目有5个连接,然后查看连接池的活动..
2020-05-22 17:51:42 6874 2
原创 记录redis rdb出错导致服务异常
项目部分功能失效:后台异常日志:只读权限不能写入ERROR http-nio-80-exec-1 [[dispatcherServlet].log:175] [Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [redis.clients.jedis.exceptions.JedisDataException: READONLY You can't write agai
2020-05-09 17:03:48 2584
原创 分享一个redis分布式锁的demo
首先说一下需要使用分布式锁的场景多实例部署,分布式系统中经常会遇到,基于jvm的锁无法满足多实例中锁的需求,synchronized,Lock只能控制在当前JVM中的资源竞争。基于数据库实现的话肯能会造成IO压力,甚至死锁,其本身的效率也比较低。zk的实现方式也是可以的。redis作为分布式锁要注意的事项,还有用到的一些功能注意事项:互斥性,同一时刻,智能有一个客户端持有锁。...
2020-05-08 15:57:13 745
原创 GP广播与分布
发生重分布与广播情况:join 聚合。目的:为了能在一个 segment上面进行数据join;举例:对于一个人员地理位置表,分布键是人员id,位置是name,如果对 name进行group by,就需要对name字段进行重复布, 在进行重分布之 前,先对每一个机器都进行局部group by,重分布之后,同一个name的 数据都会分布在同一个segment机器上面,最后提交给m...
2020-03-21 12:07:33 692
原创 greenplum 关于联表的特性
左连接 不能将左表广播右连接 不能将右表广播关联表尽量使用相同的分布键,可以直接进行数据关联,不用进行重分布。内连接:情况1:select * from test_table_5000 as t1, test_table_10000 as t2where t1.id=t2.id关联键是分布键,不涉及重分布情况2:select * from test...
2020-03-21 11:59:34 935
原创 gp的几个常用操作
正在执行的sql:当有慢sql正在执行时,或者接口无法加载(连接数满)。select * wherexact_start is not null ORDER BY query_start;杀掉查询进程select pg_cancel_backend(procpid);杀掉其他SQL进程select pg_terminate_backend(procpid);数据...
2020-03-21 11:42:56 872
原创 面试点:ISR总结
在可用性和一致性之间做一个动态平衡ISR: 1. in-sync Replica,每一个partition都有一个leader,每一个leader都会维护一个基本与它同步的replica列表。 2.如果一个Follower比Leader落后太多,或者超过一定时间未发起数据复制请求,则Leader将其从ISR中移除 3. 当ISR中所有Replica都...
2020-03-20 17:51:40 673
原创 volatile几个特性
特性1:防止该声明变量上下文指令重排。 (1、2、volatile、3、4),其中12顺序可变,34顺序可变 但是不能跨越volatile进行排序。特性2:强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。特性3:不具备原子性, 线程1对变量进行读取操作之后,被阻塞了的话,并没有对inc值进行修改。然后虽然volatile能保...
2020-03-19 14:37:51 272
原创 GC Roots的选择
一个对象可以属于多个root,GC root有几下种:Class - 由系统类加载器(system class loader)加载的对象,这些类是不能够被回收的,他们可以以静态字段的方式保存持有其它对象。我们需要注意的一点就是,通过用户自定义的类加载器加载 的类,除非相应的java.lang.Class实例以其它的某种(或多种)方式成为roots,否则它们并不是roots.Thread ...
2020-03-19 11:53:22 874
原创 面试点:volatile和ThreadLocal解决了什么问题:?
volatile:防止指令重排强制将修改值立即写入主存,写入时对已存在CPU的缓存行做无效处理。当运用该缓存是发现无效,则重新读取主存。ThreadLocal:是用于解决多线程共享类的成员变量,原理:在每个线程中都存有一个本地ThreadMap,相当于存了一个对象的副本,key为threadlocal对象本身,value为需要存储的对象值,这样各个线程之间对于某个成员变量都有自己...
2020-03-19 11:44:20 365
原创 intellij idea 查找变量快捷键
alt + F3,然后使用 F3 或 shift + F3, 上下移动。这样是本页面搜索已选中关键字的所有匹配; like%关键字%这种形式(字符串都能匹配)选择变量 ,ctrl+f7, 再使用 F3 或 shift + F3, 上下移动。这样只会查找变量,不会把包含和变量名称的其他内容查出来;而且只会限定在当前方法,或者当前类中。其他变量和字符串就不会被匹配...
2020-03-19 09:43:06 5050
原创 关于 Java动态追踪、线上debug的工具使用
这里使用的工具是阿里巴巴开源工具 arthas,在这里做几个简单的工具使用说明和示例。前期准备:官方文档地址:https://alibaba.github.io/arthas/quick-start.html 测试使用demo(横云断岭):https://github.com/hengyunabc/spring-boot-inside 工具:https://github.com/al...
2020-03-14 16:19:48 942
原创 关于list在遍历中,做出删除操作的坑
首先介绍的是阿里规约上的一个案例:建议如果有时间的同学可以去阿里云考一下这个认证,考试通过会发一个电子认证证书,有效期两年。List<String> list = new ArrayList<String>();list.add("1");list.add("2");for (String item : list) { if ("1".equals(...
2020-03-14 11:29:40 417
原创 @Scheduled (二) 其余方式系列用法
参数 说明 示例 fixedDelay 上一次执行完毕时间点之后多长时间再执行 @Scheduled(fixedDelay = 1000) 上一次执行完毕后 1秒再执行 fixedDelayString 上一次执行完毕时间点之后多长时间再执行 与fixedDelay唯一不同就是支持占位,可...
2020-03-09 18:10:04 496
原创 @Scheduled (一) cron用法
spring通过该注解来开启定时任务。首先在application类上使用注解 @EnableScheduling开启使用注解;然后在需要使用的类使用@Scheduled注解;下面是关于cron使用方式的说明:cron表达式是一个字符串,字符串以5或6个空格隔开,分开共6或7个域,每一个域代表一个含义。(不定性是因为年可以省略!)cron表达式语法[秒] ...
2020-03-09 17:53:19 14130 4
原创 @PostConstruct 说明及应用
直译:PostConstruct注解用于在完成依赖注入以执行任何初始化之后需要执行的方法。必须在类投入服务之前调用此方法。支持依赖注入的所有类都必须支持此注解。即使类不请求注入任何资源,也必须调用PostConstruct注释的方法。只有一个方法可以使用此注解。应用PostConstruct批注的方法必须满足以下所有条件:方法不能有任何参数,除非在拦截器的情况下,在这种情况下,它接受侦听...
2020-01-08 15:33:06 841
原创 greenplum 分布键选择
greenplum是基于postgre的数据库,最大的特征就是分布式,多节点(segment)。保存的数据会根据分布键存储到不同的节点上,用于查询或者关联。如果分布键选择得当,数据散列均匀,各个节点的数据量就会保持平衡,量级基本一致。如果选择不当就是导致数据倾斜,某一个节点数据量特别大。直接影响就是木桶效应,其他节点不工作,一个节点处理所有的数据,再提交给master,效率低下。理想状态下关...
2019-12-16 17:30:10 3905
转载 java的new String()跟intern()方法
1、面试题入手:1)String s = new String("hollis");定义了几个对象字符串的分配跟其他对象分配都是需要空间和时间代价的,jVM为了减少内存开销,字符串类维护了一个字符串池,每当代码创建字符串常量时,JVM首先检查字符串常量池,如果存在该字符串,就返回池中的实例引用。如果不存在,就实例化一个字符串并存放到池中。答案:在常量池中查找是否有“holli...
2019-12-04 11:25:31 587 1
原创 JVM指令集
指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null入栈 0x02 iconst_m1 将int型-1入栈 0x03 ...
2019-11-19 10:02:31 150
原创 greenplum vacuum 与vacuum full 区别
vacuum表 1.简单的回收磁盘资源,没有排它锁,速度快 2.将deadtuple的行的空间转换为能够使用的状态 vacuum full 表 1.彻底回收磁盘资源,包括块移动,有排它锁,速度慢 2.将空间碎片后面的数据上移 以下部分转自:https://blog.csdn.net/pg_hgdb/article/details/79490875...
2019-11-12 11:13:39 1147
原创 greenplum vacuum表的作用
vacuum:该选项主要是清理数据库表中的垃圾空间,该动作会消耗系统一定的资源,引起系统的IO上升,对有一定系统瓶颈来说容易造成堵塞,严重会把GP宕掉,造成数据库瞬断。一般不建议vacuum库中全表,通常做法是 vacuum 指定的表。GPDB 与PostgreSQL一样,在执行delete语句时,并没有将数据删除,而是标志为删。执行update,只是将旧数据标记为删除,重新再插入一...
2019-11-12 11:00:39 2015
原创 springboot+druid+jdbctemplate+greenplum 事务管理未生效
使用了第三方数据库连接池Druid,没有声明事务管理器。Spring boot对事务管理会有默认配置,但不包含第三方插件,使用第三方插件时需要额外处理解决方法:使用druid数据源配置事务管理器@Bean(name="transactionManager")publicDataSourceTransactionManager transactionManager(){ret...
2019-11-12 09:25:39 1124
原创 greenplum 日志配置
基础配置文件:postgresql.conf如下一共三个配置方案,可根据业务需求进行配置日志: logging_collector 是否打印log log_line_prefix 日志格式 log_directory 日志保存目录 log_state...
2019-11-12 09:23:53 2190
原创 greenplum 查看库/表 物理大小,分布等信息
查看数据库物理大小select pg_size_pretty(pg_database_size('库'));查看所有数据库大小select datname,pg_size_pretty(pg_database_size(datname)) from pg_database;查看表大小:select pg_size_pretty(pg_relation_size('表'));...
2019-11-05 11:10:44 2154
原创 greenplum查询 库/表对应物理文件
首先,执行以下sql获取数据库的OID,用于定位文件夹路径位置。oid:是隐藏字段,要单独加上,其他字段暂时不需要不做展示select oid,* from pg_database where datname='xn_report';执行结果:根据查询到的oid,进入GP的目录下cd /opt/data/master/gpseg-1/base现在可以看到刚才...
2019-11-05 11:01:56 1221
原创 接上文:kafka0.10.2 坑爹问题排查记录
上文地址:https://blog.csdn.net/a290450134/article/details/100519107业务场景上从kafka消费数据,根据业务类型,走不同的业务处理路线,有两种业务类型处理耗时较高。默认一次poll500条,碰巧两种业务类型比较集中,导致处理超过max.poll.interval.ms。然后就是rebalance无限的重复消费,偏移量一直不能提交。然后...
2019-09-10 15:34:06 1649 1
原创 kafka 坑爹问题排查记录
重点、重点、重点: 重启kafka一定要先看看持久化有没有问题。首先,问题没有解决,只是阐述过程和问题。问题关键字:偏移量提交失败,重复消费,新的group不能消费到历史数据版本:0.10.2 场景:consumer两个group进行消费,但是偏移量从某一时间点开始就无法进行提交。一直在循环消费一个时间段的数据。尝试重启项目,还是不能正常进行消费,偏移量还...
2019-09-03 15:41:35 2400 4
原创 MySQL 关联表索引不生效问题(一)
进行关联查询时发现,关联的字段存在索引,但是索引没有生效,进行了全表扫描。索引存在:但是问题一定是出现在,索引字段上,所以对关联字段进行对比,发现关联的字段,类型长度不一致。A表ID为bigint 11,C表product_id为varchar 32;...
2019-08-13 12:05:57 2508
原创 mysql 5.7.25 安装
安装包下载官方下载地址https://dev.mysql.com/downloads/mysql/选择手动下载版本mysql-5.7.25-winx64.zip如果该版本找不到,相近版本即可解压到自己指定的路径上图中的my.ini及data文件夹在压缩包里是没有的,后面需要自己添加参数配置my.ini如下(注意目录路径必...
2019-08-13 11:55:21 398
原创 IDEA 快捷键失效 原因记录(持续更新)
F8:调试失效,如果请查看是否安装了有道词典;会占用F8快捷键。CTRL+SHIFT+F:搜索无效,一些输入法会占用此快捷键,进行繁体字切换。
2019-05-25 10:57:49 4506
转载 大文本文件(接近7GB): 统计频数,Top K问题求解
转自https://blog.csdn.net/qq_26437925/article/details/785311791 产生了一个1G行,每行一个[0,100000]区间的整数2 top n 求解:2.1 大文件分成小文件把这个7G左右的大文件,按照读入数字的hashcode值分成1024个小文件(每个文件平均最大就7M左右)2.2 小文件统计对每个小...
2019-04-04 15:18:30 416
原创 springboot 版本号解释说明
1.传统的版本号规则是什么?springframework-4.3.11.RELEASE 4.3.11.release主版本号.次版本号.增强版本号.里程碑版本号主版本号:项目的重大重构次版本号:新功能的添加和变化增强版本号:BUG的修复里程碑版本号:releaseAlpha: 此版本表示该软件在此阶段主要是以实现软件功能为主,通常只在软件开发者内部交流,...
2019-01-25 09:07:08 17360
原创 mysql 5.7.23 [Err] 1055
执行SQL建表,报出如下错误,但是表仍然建立成功。查找资料原因说明是sql-mode校验问题。[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is...
2018-12-19 12:54:33 269
原创 springboot 静态资源配置
正常搭建的项目通过浏览器访问的时候,都回去匹配请求地址对应的controller mapping映射,但是如果想像访问tomcat容器静态资源那样,就要进行配置,设置静态资源路径,添加一行配置即可application.propertiesspring.resources.static-locations=classpath:/static,classpath:/public,class...
2018-12-14 15:21:51 169
原创 dmp数据覆盖恢复(自用 记录)
https://blog.csdn.net/a290450134/article/details/83113258基于DMP操作,删除用户对应所有数据重新导入。drop user fc cascade;drop user XXXX cascade; 最后这个级联特别有用(删除用户以及所有关联的数据库对象)然后重建该用户 导入备份数据imp user/user ...
2018-12-04 16:24:07 1663
kibana-7.6.1-linux-x86_64
2020-08-11
AesCBC.java
2020-03-25
ojdbc6 解决maven缺失问题
2018-09-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人