使用phxpaxos开发过程中遇到的坑

author author     2022-09-01     762

关键词:

1. 开启BatchPropose后,状态机使用ExecuteForCheckpoint生成快照要注意:

ExecuteForCheckpoint中的InstanceID不能立即持久化。

例如:

    当instance id = 3中包含多个值的时候,如果执行第一个值就更新的checkpoint version(GetCheckpointInstanceID的返回值),那么当进程重启之后(例如进程挂了),后面几个值就永远没有机会调用ExecuteForCheckpoint应用到checkpoint了

建议的做法:

当发现InstanceID变化时,将上次的InstanceID持久化。

可能的问题:

BatchPropose中的多个值可能即使已经return true了,还是会被再次ExecuteForCheckpoint

解决的问题:

BatchPropose中的多个值被丢失的情况

https://github.com/tencent-wechat/phxpaxos/issues/56

2. 开启IsUseMaster之后,非master依然可以Propose成功。调用者要自己想办法保护。暂时没想到不改源代码的解决方式。

3. LogStorage的路径使用相对路径时,传输snapshot会出错

https://github.com/tencent-wechat/phxpaxos/issues/49

rxjava使用过程中遇到线程相关的坑(代码片段)

RxJava线程暴增的坑1、问题在使用RxJava的时候,对于开发者频繁使用subscribeOn(Schedulers.computation())或者.subscribeOn(Schedulers.io()),导致App线程暴涨,在业务繁多的App中,容易导致超过句柄数限制,导致App崩溃2、原因... 查看详情

retrofit使用过程中遇到的坑

1. 添加本地缓存时,post方式的请求不缓存。2.@Body方式提交数据时,会转成json形式提交,而不是键值对。自定义GsonConverterFactory,主要是GsonRequestBodyConverter类。finalclassGsonRequestBodyConverter<T>implementsConverter<T,RequestBody>{ 查看详情

hexo使用中搭建博客过程中遇到的坑

  (node:1172)[DEP0061] DeprecationWarning:fs.SyncWriteStream isdeprecated. INFO Start processingFATAL Something‘s wrong. Maybe youcanfindthesolut 查看详情

retrofit开发中遇到的坑(代码片段)

持续更新中1、使用@FormUrlEncoded的话,服务端需要使用Request.Form,如果不使用@FormUrlEncoded本地需要由@FieldMapMap<String,Object>map改成@QueryMapMap<String,Object>map,服务端改为使用Request.QueryString.   2、java.i 查看详情

使用vuecli开发项目中遇到的坑

一、部署文件使用vuecli开发项目,执行npmrunbuild命令生成dist静态文件,将dist文件包放到服务器中即可。刚接触webpack,不知道怎么部署前端文件,原以为需要将app文件上传,在 inux上安装node,以及npminstall一系列的包,捣鼓了... 查看详情

爬取cvpr2018过程中遇到的坑

爬取CVPR2018过程中遇到的坑使用语言及模块语言:Python3.6.6模块:rerequestslxmlbs4过程一开始都挺顺利的,先获取到所有文章的链接再逐个爬取获取内容,中间有一部分的是用正则进行匹配出想要的内容,写完了就想全部跑一遍试试吧... 查看详情

汇总开发过程中遇到的坑

1、状态格式不同导致数据异常,例如订单结果。2、查询状态和结果状态搞混。3、SQLin之类的数据库语句异常,内部异常不处理导致难定位问题。更新删除语句未加条件。4、数据库字段长度不够,或程序未对字符串截取处理,导... 查看详情

vue项目开发过程中遇到的坑

...接:优雅的Vue项目目录结构设计VUE启动流程涉及state对象使用的,大部分是需要先引入vuex,而vuex对象的定义及处理文件,都默认存放在工程的/src/store目录下,到该目录下的相应文件中可找到其他文件依赖的变量数据。参考链接... 查看详情

rxjava使用过程中遇到线程相关的坑(代码片段)

RxJava线程暴增的坑1、问题在使用RxJava的时候,对于开发者频繁使用subscribeOn(Schedulers.computation())或者.subscribeOn(Schedulers.io()),导致App线程暴涨,在业务繁多的App中,容易导致超过句柄数限制,导致App崩溃2、原因... 查看详情

react-native开发中遇到的坑

Elementtypeisinvalid:expectedastring(forbuilt-incompoenets)oraclass/function(forcompositecomponents)butgot:undefined.... 这个错,是说没有export出要使用的组件,可是我找了好久,没有发现到底是什么原因引起。这个组件在看网上说可以 importList_vi 查看详情

微信小程序的坑(持续更新中)(代码片段)

...功能不断改进完善而需要业务持续的适配,有的是小程序使用上的一些坑;下面针对小程序开发过程中遇到的一些坑跟大家分享,有些没有深究具体原因;1、原生组件遮盖的问题由于原生组件层级最高,即使设置了其z-index也于... 查看详情

开发中遇到的坑(代码片段)

在将float和double类型的数据转成 BigDecimal是应该先转成字符串newBigDecimal(String.valueOf(a)) 查看详情

ligerui开发过程中踩过的坑

一、使用ligerForm创建初始化查询表单、并在查询方法中获取表单中的值,传到后台的时候  会报错,因为日期类型的如果不填值的话,往后台默认传的的null,  需要进行非null判断,如果为null,不传  1、创建表单1$(function... 查看详情

开发自己的分布式监控prometheusexporter时遇到的坑

  这里说下我在开发自己的Prometheus Exporter时遇到的几个坑,所谓的坑,其实是在开发过程中需要注意到的几个关键点,如果忽略,那么可能会产生错误和非预期的结果。650)this.width=650;"src="https://p3.pstatp.com/large/3c74000376... 查看详情

分享m1mac编程中遇到的坑(idea/mysql)持续更新..

分享第一次使用M1MAC在进行编程开发学习过程中遇到的软件安装、破解等问题(解决方案均来自于网络,只做整合)百度网盘:链接:https://pan.baidu.com/s/1zj0f_neU5Oo8hG_o5uQjxA提取码:tite目录开发工具-IDEA数据库-MySQL开发工具-IDEA数据库-M... 查看详情

记一次springboot开发中所遇到的坑和解决方法

...决方法mybatis返回Integer为0,自动转型包空指针异常当我们使用Integer去接受数据库中表的数据,如果返回的数据中为0,那么Integer便为null,这时候将Interger自动转型为int,则会出现空指针异常这个时候,我们可以在Service层对Integer... 查看详情

总结开发过程踩到的坑(代码片段)

...接被img挡住了。遇到这种问题,可以分两种方式解决。1.使用css背景图片替换img2.给链接添加如下属性:background:url(about:blank);2.IOS元素点击触发高亮-webkit-tap-highlight-color是一个不规范的属性(unsupportedWebKitproperty),它没有出现在C... 查看详情

scala开发遇到的坑

...cimal(23)可会造成精度丢失,都转为BigDecimal进行乘除运算4.使用scala-sql(https://github.com/wangzaixiang)时,插入使用insertintotablevalues 代替insertintotableset,前者可批量插入,后者不能5.ScalaList底层使用链表实现(相当于Java中LinkedList,不... 查看详情