TarsCloud_TarsCpp/Changelist-2.x.md
2021-09-11 22:46:49 +08:00

432 lines
17 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# v2.4.21 2021.08.19
### en
- fix StatReport crash when communicatorEpoll delete
- update protocol to support K8S
- tars-tools.cmake support K8S upload
- tc_socket bind output to cerr when failed
- fix tc_json double bug
### cn
- 修复StatReport可能的crash当communicatorEpoll被delete时
- 为了后续支持K8S更新了相关的协议
- 更新了tars-tools.cmake support K8S upload
- tc_socket 增加了cerr的输出, 帮忙定位问题
- 修复tc_json double精度的bug
# v2.4.20 2021.07.27
### en
- application add addServantWithParams support parameter for handle
- remove message.h opentracking define
- fix tc_timer memory leak and timer id duplicate bug
- support grpc and add GrpcDemo and fix tc_grpc compiler
- 修复 windows 下 socket 设置阻塞异常
- 修复 refresh-endpoint-interval 配置无效
- update unittest
### cn
- Application 添加 addServantWithParams, 支持Servant构造参数
- 去掉Message.h opentracking 定义
- 修复tc_timer内存泄露和timer id可能冲突的问题
- 支持grpc GrpcDemo, 修复tc_grpc compiler
- 修复 windows 下 socket 设置阻塞异常
- 修复 refresh-endpoint-interval 配置无效
- 更新unittest
# v2.4.19 2021.05.18
### en
- fix TARS_OPENTARCKING not report trace bug
- update mysql-client to support cmake 3.20
- fix doc README.md 404
### cn
- 修复打开TARS_OPENTARCKING宏时没有上报trace信息的问题
- update mysql-client to support cmake 3.20
- fix doc README.md 404
## v2.4.18 2021.04.13
### en
- fix tc_thread_queue,Optimizing the swarm effect
- fix epoll server connection close cause crash bug
### cn
- 修复tc_thread_queue 优化惊群效应
- 修复epoll server 连接关闭时可能带来的crash
# v2.4.17 2021.04.02
### en
- fix tc_time bug of erase caused by timer repeat event
- Fix the MySQL client library to solve the problem of compiling under cmake3.20
- Fix tc_config, key has no escaped bug
- Fix the scheduling mechanism to avoid the problem of 1 s scheduling delay
### cn
- 修复tc_timer repeat事件带来的无法erase的问题
- 修复引用的mysql-client库, 解决cmake3.20下编译的问题
- 修复tc_config key没有转义的bug
- 修复协程调度机制, 避免出现总是出现1s调度延时的问题
# v2.4.16 2021.03.28
### en
- tc_epoll_server add sendBufferDirect
- tc_epoll_server fd auto closed when forked
- fix tc_common time zone bug
- fix hash call bug
- fix EndpoingManager.cpp add missing break
- Fix bug that Popen fails to return null pointer and uses it directly without judgment.
- fix to avoid coredump while application exit
- fix hash table and consistent hash ring are not updated when service node weight is updated
- fix crash When the number of processing pressure test connections is greater than the maximum number of service connections, and the connections are established and disconnected frequently
- fix In Linux and windows, it is a small end. It corrects the definition error of byte order conversion function, such as tars_ ntonll
- set timeout options to prevent "connnect", "real_query" to be blocked for tens of minutes
- Fix the function name (tc_bitmap) in the exception
- update protocol
### cn
- tc_epoll_server 添加 sendBufferDirect
- tc_epoll_server fd添加fork后自动close属性
- 修复 tc_common 中时区函数的时区的bug
- 修复hash第一次建立连接不稳定的bug
- 修复EndpoingManager.cpp 缺少 missing break的bug
- 修复服务退出时可能的crash
- 修复 popen 失败返回空指针 没有判断就直接使用的BUG。
- 修复解决服务节点权重更新时哈希表和一致性哈希环不更新的问题
- 修复同一服务有多个obj的情况同一hash值调用不同的obj会hash到不同的服务器因为addNode会根据desc(ip+port)计算md5,导致顺序不一致
- 修复处理压测连接数大于服务最大连接数,并且有连接频繁建立、断开时
- 修复windows下大小端的问题
- mysql 增加超时的参数设置
- 修复tc_bitmap异常字符串处理的bug
- 更新protocol引用
# v2.4.15 2020.12.30
### en
- fix tc_consistent_hash_new.cpp hash bug
- add ONLY_LIB, not build examples/servers by default, if you want build examples, please cmake .. -DONLY_LIB=ON && make -j4
- change format of some files to UTF-8 BOM to fix compile errors under windows without changing any codes in these files.
- fix tc_common prime judgment bug
- fix tars-tools.cmake link pthread bug in ubuntu
### cn
- 修改tc_consistent_hash_new.cpp hash的bug
- 添加ONLY_LIB编译选项, 默认不再编译examples服务, 如果有需要请: cmake .. -DONLY_LIB=ON && make -j4
- 修改部分文件的utf8格式, 避免windows下的编译错误
- 修改tc_common prime judgment bug
- 修改ubuntu下, tars-tools.cmake link pthread bug
## v2.4.14 2020.11.09
### en
- fix TC_Shm::init windows not set _bOwner
- cmake copy .tars to tarsproto/protocol in windows
- epoll add/del/mod and return value
- ServantProxyThreadData reset when communicator terminate
- get rid of the singleton. You can start multiple applications in a process!
- when epoll server exit, close all fd.
- fix EndpointManager decontructor
- fix communicator terminate
- application support parse string config
- fix hash bug in first connection
- fix tc_sha, __LITTLE_ENDIAN bug in windows/mac
- hello server add hash test
- fix compiler warning
- tc_shm when detach, set _pshm = NULL
### cn
- 修改 TC_Shm::init in windows 没有设置 _bOwner变量的bug
- 修改tars-tools.cmake, 在windows 平台下cmake 复制 .tars 到 tarsproto/protocol
- epoll add/del/mod 等接口增加返回值
- communicator 结束时调用ServantProxyThreadData reset
- 尽量去掉libservant中的单例, 这样在一个进程中可以启动多个Application
- 当epoll server退出时, 关闭所有的句柄
- 修复EndpointManager析构函数
- 修改communicator结束时可能的crash
- Application内部增加直接初始化函数, 支持string类型的配置
- 修改第一次创建连接时hash不准的bug
- 修复windows/mac平台上, tc_sha, __LITTLE_ENDIAN不支持的bug
- Hello server增加hash测试
- 修复编译警告
- tc_shm当调用detach时, 设置_pshm = NULL
## v2.4.13 2020.10.11
### en
- Fix Windows compilation errors (missing bison / flex generated files)
- Network epoll notification handle is changed to UDP handle instead of socket pipe mode to save the number of handles
- Fix tars-tools.cmake support mysql link
### cn
- 修复windows编译错误(漏提交bison/flex生成的文件)
- 网络epoll通知句柄改成udp句柄, 不采用socket pipe模式, 节省句柄数量
- 修复tars-tools.cmake 支持mysql的link
## v2.4.12 2020.09.23
### en
- tc_timer fix compiler warning
- fix dye bug
- fix http keep-alive bug
### cn
- tc_timer修复编译警告
- 修复染色的bug
- 修复http keep-alive bug
## v2.4.11 2020.09.18
### en
- fix gtest compiler bug
- fix epoll memory leak in windows
- fix tc_encoder crash bug
- fix tc_clientsocket bug
- fix tc_timer memory leak
- fix tc_openssl mode not be used
- fix TC_ Http2 failure problem (header cannot use temporary variables)
- always set thread data host info
- Adding the initialization of enumeration value in the resetDefautlt function
- Part of the file encoding format is adjusted to utf8 BOM to ensure that there is no problem in Windows compilation
- tc_common add various date processing functions
- tc_common add floating point comparison function
- tc_thread add multi thread hash logic
- tc_port add environment variable acquisition and system event registration callback (compatible with multi platform)
- Adjust tc_sem_mutex event name (under Windows) to facilitate subsequent maintenance
- rpc add support for http/sock4/sock5 proxy
- application add ssl bind check
- Fix the bug of RPC in HTTP short SSL package connection (under Windows)
- communicator add update endpoint
- fix communicator exit logic to avoid possible crash in exit
- optimize the memory copy problem, reduce the memory copy, and improve the performance
- Adjust the custom callback and put it in servantproxy
### cn
- 修复gtest编译错误
- 修复windows下, epoll.cpp中的内存泄露
- 修改tc_encoder crash 的bug
- 修复tc_clientsocket在大包下的bug
- 修复tc_timer内存泄露问题
- 修复tc_openssl 代码中mode没生效的bug
- 修复rpc在http短连接以及ssl大包下的bug(windows下)
- 修复tc_http2 失败的问题(header不能用临时变量)
- ServantProxy调用时总是在线程私有变量中设置host info
- 在resetDefautlt函数中增加枚举值的初始化
- 部分文件编码格式调整成utf8 bom
- tc_common增加各类时间处理函数
- tc_common增加浮点数比较算法
- tc_thread增加多线程hash逻辑
- tc_port增加环境变量获取以及系统事件注册回调(兼容多平台)
- 调整tc_sem_mutex事件名称(windows下), 便于后续维护
- rpc增加http/sock4/sock5支持
- application 增加ssl效验
- communicator增加主动更新endpoint的功能
- communicator完善退出逻辑, 避免退出时可能的crash
- 进一步优化内存copy问题, 减少内存copy,提升性能
- 调整自定义回调, 放在ServantProxy中
## v2.4.10 2020.09.02
### en
- fix ssl EndpointManager.cpp bug
- gbk2utf8 mode default set to ICONV_IGNORE
### cn
- 修复ssl下, EndpointManager.cpp 的bug
- 将gbk2utf8 mode 缺省值设置为ICONV_IGNORE
## v2.4.9 2020.08.19
### en
- Fix tars-tool.cmake `make upload` bug in linux
- Update tars-tools.cmake, support multi tars file
- tc_encoder optimize
- fix servant http call context release bug
- fix servant connection reconnect dead cycle
- fix http servant set timeout bug
- fix windows roll log bug
- fix tc_time postAtTime bug
- remove TARS_SSL in header
- fix windows gtest build bug
### cn
- 修改tars-tool.cmake `make upload` 在linux上bug, cmake用${CMAKE_COMMAND}代替
- 修改tars-tools.cmake, 支持多个tars文件
- 优化tc_encoder
- 修复http servant 短连接模式下context释放的bug(貌似只会在windows下出现)
- 修复prx重连可能导致的死循环的问题
- 修复http servant 设置timeout不正确的问题
- 修复windows下循环日志不启用的问题
- 修复tc_time postAtTime的bug
- 头文件中删除TARS_SSL的宏, 避免内存模型不一致
- 修改windows gtest编译连接不争取的问题
## v2.4.8 2020.08.05
### en
- add tarsmerge, can merge multi tars file to one
- fix tars-tools.cmake, support: make xxxx-upload-tars, upload tars to web, for test
- fix when http header has not content-length, tc_http decode bug
- fix refresh endpoint crash
### cn
- 添加 tarsmerge工具, 支持合并多个tars文件到一个
- 修改tars-tools.cmake, 支持make xxx-upload-tars, 上传本服务的tars文件到web, 方便自动测试
- 修改当http头没有content-length时的解析bug
- 修改endpoint更新时可能导致的crash
## v2.4.7 2020.07.19
### en
- fix tars-tools.cmake, support ssl link order bug
- tars2cpp delete routerkey support (for grid, not use now)
- epoll server add onNewClient callback
- fix tc_gzip memory leak
- solve the default threads num problem
### cn
- tars-tools.cmake, 修改ssl 连接顺序不对的问题
- tars2cpp去掉routerkey(给灰度使用, 目前版本都不再支持)
- epoll server 增加onNewClient回调
- fix tc_gzip在某情况下的内存泄露
- 修改threads缺省参数值为0的bug
## v2.4.6 2020.07.09
### en
- fix http parse repsonse bug to support TarsGateway
### cn
- 修改http解析响应包的bug
## v2.4.5 2020.07.07
### en:
- tars2node support JSON_VERSION.
### cn:
- tars2node 工具支持JSON_VERSION 协议。
## v2.4.4 2020.06.19
### en:
- add totalResponse for all protocol response;
- modity tars2cpp for json protocol: gen json protocol default && gen async_response_xx json protocol;
### cn:
- 增加 totalResponse对tars所有协议tars、tup、json回包都支持
- 修改tars2cpp默认都生成json协议支持并修改了 async_response_xx 也支持json回包。
## v2.4.3 2020.06.10
### en:
- tc_spin_lock support arm
- fix tc_http security problem
- fix tc_mysql table name with database name bug
- tarscpp create tars protocol, default package optional field
- fix tars2case 的bug
### cn:
- tc_spin_lock 支持arm
- tc_http解析安全问题
- tc_mysql 表名带db名称时 bug的问题
- tarscpp协议缺省值默认打包
- fix tars2case 的bug
## v2.4.2 2020.06.02
### en:
- Add English commet to some header file commet
- tars2case support json format
- fix tc_http bug, ignore last header line
- fix tc_json null bug and add interface
### cn:
- 部分头文件注释增加英文注释
- tars2case支持json格式
- 修复tc_http解析头, 漏掉最后一行的bug
- 修复tc_json null的bug 以及修改tc_json的函数接口, 更易用
## v2.4.1 2020.05.06
### en:
1 fix windows tars proto, define long bug, change to long long
2 fix windows, longlong tars_ntohll bug
3 fix windows, tc_ex system message pointer may be null cause crash
4 fix windows tc_epoll_server when send pending add epoll mod
### cn:
1 修复windows 64位 tars协议中, long 定义的问题(为32位,改成long long)
2 修复windows 64位整形, 字节序转换的问题
3 修复windows tc_ex中系统消息指针为NULL的bug
4 修复windows windows tc_epoll_server when send pending add epoll mod
## v2.4.0 2020.04.24
### en:
- fix tars2json bug of array
- TC_EpollServer::Connction add _authInit initialize
- fix tarsnotify nodename bug
- compiler & install framework/*.tars in tarscpp
- fix tars-tools.cmake 'make tar' bug in linux
- In epoll server, change tc_cas_queue to tc_thread_queue
- tc_thread queue add front & pop_front
- add tars to xml support , add tc_xml.h/cpp tool class
- fix tc_json bug in float/double
- tars2cpp add interface to get/set sql
- TarsOutpuStream member change to public
- add tars2case for benchmark
### cn:
- 修复tars2json中 array的bug
- TC_EpollServer::Connction 构造时增加对_authInit变量初始化
- 修复tarsnotify nodename bug
- compiler & install framework/*.tars in tarscpp
- 修复tars-tools.cmake make tar在linux的bug
- epoll server中tc_cas_queue改为 tc_thread_queue, tc_cas_queue在极端压力下可能会有问题, 原因待查
- tc_thread queue add front & pop_front
- 增加tars to xml的支持, 增加tc_xml.h/cpp解析类
- 修复tc_json的float/double的bug
- tars2cpp 工具增加将结构体转换成sql的接口
- TarsOutpuStream成员变量改成public, 便于外部访问
- 增加tars2case工具, 给benchmark工具使用
## v2.3.0 2020.04.02
### en:
- modify cookies
- To support short connection (HTTP), servantproxy adds connection serial mode
- Support http1 client
- The interface of http1 and http2 is unified (http2 is not compatible before, and there are bugs in the previous design)
- Optimize HTTP performance
- Modify the file name and some class names at the beginning of tars to facilitate code merging
- Improve the logic of service IP list switching
### cn:
- cookies修改实现方式
- 为支持短连接(http), ServantProxy增加连接串行模式
- rpc支持http1客户端
- 统一了http1 和 http2的接口(http2不在兼容之前的, 之前的设计上是有bug的)
优化http性能
- 修改Tars开头的文件名以及部分类名, 方便代码合并
- 改进服务ip list切换的逻辑
## v2.2.0 2020.04.02
## en
- fix epoll bug in windows
## cn
- 修复epoll在windows下的bug
## v2.1.2 2020.03.28
### en:
- Fix bugs in tar-tools.cmake's support for make release
- cmake_tars_server.sh Permissions are automatically set to executable during installation
- fix tc_common::strto bug in unsigned char
- Download and compile curl automatically under windows to support the subsequent make upload
- Repair the support of tars-tools.cmake for make upload under Windows
### cn:
- 修复tars-tools.cmake对release支持的bug
- cmake_tars_server.sh等安装时权限都自动设置为可执行
- tc_common::strto修复unsigned char的bug
- windows下自动下载编译curl,为后续make upload提供支持
- 修复windows下tars-tools.cmake对make upload的支持
## v2.1.1 2020.03.23
### en:
- update tars2node, support ts
- tc_json add get
- fix CMakeLists.txt in servant demo
### cn:
- 更新tars2node, 完善对ts的支持
- tc_json增加一个api
- 修改了脚本创建服务后, CMakeLists.txt模板, 默认管理ssl http2
## v2.1.0 2020.03.14
### en:
- udp in ipv6 bug
- add tars.resource
- fix rsp queue
- add max buffer limit, send queue, data accumulate clear
- Adjust cmake third library path
- tc_network_buffer add iterator
- optimize tc_http tc_http_async, improve http parser performance
- fix tars2node, support --with-tars
- remove rapidjson depends
### cn:
- 修改udp在ipv6下的bug
- 服务框架增加tars.resource命令字, 可以查看服务内网络连接细节
- 修改响应队列上报的bug
- 增加发送buffer过载保护
- 调整第三方库安装后的库路径
- tc_network_buffer增加iterator接口
- 优化tc_http tc_http tc_http_async性能, 提升http parser
f- ix tars2node, support --with-tars
## v2.0.0 2020.03.03
- support linux mac windows
- support ARM
- Reduce memory copy and improve performance
- Download compile dependencies automatically
- fix epoll server dead cycle bug
- Improve compilation mode and rely on MySQL client Lib
- fix some bug