• 关于

    重构_-

    的搜索结果

回答

详细解答可以参考官方帮助文档C SDK 开发包OSS C SDK最新版本点击查看 OSS C SDK开发包(2017-02-22)版本3.4.0下载地址: Linux: aliyun_oss_c_sdk_v3.4.0.tar.gzWindows: aliyun_oss_c_sdk_v3.4.0.zip 更新日志: 添加:支持并发断点续传上传oss_resumable_upload_file修复:oss_gen_signed_url支持临时用户签名修复:初始化默认不打开fd 2,退出时不关闭fd 2修复:解决key为xxx/./yyy/,./async_test/test报SignatureDoesNotMatch的问题 OSS C SDK开发包(2016-12-22)版本3.3.0下载地址: Linux: aliyun_oss_c_sdk_v3.3.0.tar.gzWindows: aliyun_oss_c_sdk_v3.3.0.zip 更新日志: 添加:支持代理Proxy修复:oss_get_object_to_file先下载到本地临时文件,成功后修改文件名称修复:去除Visual Studio编译警告aos_util.c(512) C4146修复:URL上传下载添加CRC校验 OSS C SDK开发包(2016-11-22)版本3.2.1下载地址: Linux: aliyun_oss_c_sdk_v3.2.1.tar.gzWindows: aliyun_oss_c_sdk_v3.2.1.zip 更新日志: 修复:解决oss_copy_object源文件名不能有URL特殊字符的问题 OSS C SDK开发包(2016-11-14)版本3.2.0下载地址: Linux: aliyun_oss_c_sdk_v3.2.0.tar.gzWindows: aliyun_oss_c_sdk_v3.2.0.zip 更新日志: 添加:支持上传、下载CRC检验添加:支持上传回调功能添加:支持进度条功能 OSS C SDK开发包(2016-08-11)版本3.1.0下载地址: Linux: aliyun_oss_c_sdk_v3.1.0.tar.gzWindows: aliyun_oss_c_sdk_v3.1.0.zip 更新日志: 添加:支持RTMP功能修复:支持OSS和IMG合并 OSS C SDK开发包(2016-05-30)版本3.0.0下载地址: Linux: aliyun_oss_c_sdk_v3.0.0.tar.gzWindows: aliyun_oss_c_sdk_v3.0.0.zip 更新日志: 合并Linux、Windows代码修复分片上传时分片过多会异常的问题提供Windows示例工程优化Linux编译安装方法 OSS C SDK开发包(2016-03-28)版本2.1.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.1.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.1.0.zip 更新日志: 完善示例程序header长度由限制为1K升级为最长8K解决部分单词拼写错误 OSS C SDK开发包(2016-03-06)版本2.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.0.0.zip 更新日志: complete multipart接口支持修改原有header重构示例程序和组织方式开放params参数,允许用户自定义设置允许params和headers参数为空,简化用户使用和减少用户代码量支持https支持ip新增部分测试新增oss_put_bucket_acl接口新增目录相关示例新增signed url相关示例完善接口注释删除无用的port配置参数调整oss_init_multipart_upload接口参数顺序优化配置参数名称,使其与官方网站保持一致解决endpoint不能含有http等前缀的问题解决用户无法设置content-type的问题解决无法自动根据file name和key设置content-type的问题解决list upload parts为空时coredump的问题解决oss_upload_file接口在断点续传时可能会coredump的问题解决部分单词拼写错误解决所有警告解决部分头文件宏保护无效的问题解决oss_head_object_by_url接口不生效的问题提高易用性,降低用户使用门槛支持Visual C++ 2008 OSS C SDK开发包(2015-12-17)版本1.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v1.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v1.0.0.zip 更新日志: 调整OSS C SDK依赖的XML第三方库,使用minixml替换libxml减小OSS C SDK的大小修改编译方式为CMAKE,方便用户使用SDK新增oss_upload_file接口,封装multipart upload相关的接口,使用multipart方式上传文件新增oss_delete_objects_by_prefix接口,删除指定prefix的object新增OSS C SDK根据object name或者filename自动添加content_type OSS C SDK开发包(2015-11-12)版本0.0.7下载地址: Linux: aliyun_OSS_C_SDK_v0.0.7.tar.gzWindows: oss_c_sdk_windows_v0.0.7.zip 更新日志: OSS C SDK修复sts_token超过http header最大限制的问题 OSS C SDK开发包(2015-10-29)版本0.0.6下载地址: Linux: aliyun_OSS_C_SDK_v0.0.6.tar.gzWindows: oss_c_sdk_windows_v0.0.6.zip 更新日志: OSS C SDK签名时请求头支持x-oss-date,允许用户指定签名时间,解决系统时间偏差导致签名出错的问题OSS C SDK支持CNAME方式访问OSS,CNAME方式请求时指定is_oss_domain值为0新增OSS C SDK demo,提供简单的接口调用示例,方便用户快速入门OSS C SDK sample示例中去除对utf8第三方库的依赖 OSS C SDK开发包(2015-09-14)版本0.0.5下载地址: Linux: aliyun_OSS_C_SDK_v0.0.5.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.5.rar 更新日志: 调整签名时获取GMT时间的方法调整req_id的处理方式,改为从aos_status_t放回状态中直接获取 OSS C SDK开发包(2015-08-17)版本0.0.4下载地址: Linux: aliyun_OSS_C_SDK_v0.0.4.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.4.rar 更新日志: 支持keeplive长连接支持lifecycle设置 OSS C SDK开发包(2015-07-08)版本0.0.3下载地址: Linux: aliyun_OSS_C_SDK_v0.0.3.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.3.rar 更新日志: 增加oss_append_object_from_buffer接口,支持追加上传buffer中的内容到object增加oss_append_object_from_file接口,支持追加上传文件中的内容到object OSS C SDK开发包(2015-06-10)版本0.0.2更新日志: 增加oss_upload_part_copy接口,支持Upload Part Copy方式拷贝增加使用sts服务临时授权方式访问OSS OSS C SDK开发包(2015-05-28)版本0.0.1更新日志: 增加oss_create_bucket接口,创建oss bucket增加oss_delete_bucket接口,删除oss bucket增加oss_get_bucket_acl接口,获取oss bucket的acl增加oss_list_object接口,列出oss bucket中的object增加oss_put_object_from_buffer接口,上传buffer中的内容到object增加oss_put_object_from_file接口,上传文件中的内容到object增加oss_get_object_to_buffer接口,获取object的内容到buffer增加oss_get_object_to_file接口,获取object的内容到文件增加oss_head_object接口,获取object的user meta信息增加oss_delete_object接口,删除object增加oss_copy_object接口,拷贝objet增加oss_init_multipart_upload接口,初始化multipart upload增加oss_upload_part_from_buffer接口,上传buffer中的内容到块中增加oss_upload_part_from_file接口,上传文件中的内容到块增加oss_list_upload_part接口,获取所有已上传的块信息增加oss_complete_multipart_upload接口,完成分块上传增加oss_abort_multipart_upload接口,取消分块上传事件增加oss_list_multipart_upload接口,获取bucket内所有分块上传事件增加oss_gen_signed_url接口,生成一个签名的URL增加oss_put_object_from_buffer_by_url接口,使用url签名的方式上传buffer中的内容到object增加oss_put_object_from_file_by_url接口,使用url签名的方式上传文件中的内容到object增加oss_get_object_to_buffer_by_ur接口,使用url签名的方式获取object的内容到buffer增加oss_get_object_to_file_by_url接口,使用url签名的方式获取object的内容到文件中增加oss_head_object_by_url接口,使用url签名的方式获取object的user meta信息
2019-12-01 23:15:08 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档C SDK 开发包OSS C SDK最新版本点击查看 OSS C SDK开发包(2017-02-22)版本3.4.0下载地址: Linux: aliyun_oss_c_sdk_v3.4.0.tar.gzWindows: aliyun_oss_c_sdk_v3.4.0.zip 更新日志: 添加:支持并发断点续传上传oss_resumable_upload_file修复:oss_gen_signed_url支持临时用户签名修复:初始化默认不打开fd 2,退出时不关闭fd 2修复:解决key为xxx/./yyy/,./async_test/test报SignatureDoesNotMatch的问题 OSS C SDK开发包(2016-12-22)版本3.3.0下载地址: Linux: aliyun_oss_c_sdk_v3.3.0.tar.gzWindows: aliyun_oss_c_sdk_v3.3.0.zip 更新日志: 添加:支持代理Proxy修复:oss_get_object_to_file先下载到本地临时文件,成功后修改文件名称修复:去除Visual Studio编译警告aos_util.c(512) C4146修复:URL上传下载添加CRC校验 OSS C SDK开发包(2016-11-22)版本3.2.1下载地址: Linux: aliyun_oss_c_sdk_v3.2.1.tar.gzWindows: aliyun_oss_c_sdk_v3.2.1.zip 更新日志: 修复:解决oss_copy_object源文件名不能有URL特殊字符的问题 OSS C SDK开发包(2016-11-14)版本3.2.0下载地址: Linux: aliyun_oss_c_sdk_v3.2.0.tar.gzWindows: aliyun_oss_c_sdk_v3.2.0.zip 更新日志: 添加:支持上传、下载CRC检验添加:支持上传回调功能添加:支持进度条功能 OSS C SDK开发包(2016-08-11)版本3.1.0下载地址: Linux: aliyun_oss_c_sdk_v3.1.0.tar.gzWindows: aliyun_oss_c_sdk_v3.1.0.zip 更新日志: 添加:支持RTMP功能修复:支持OSS和IMG合并 OSS C SDK开发包(2016-05-30)版本3.0.0下载地址: Linux: aliyun_oss_c_sdk_v3.0.0.tar.gzWindows: aliyun_oss_c_sdk_v3.0.0.zip 更新日志: 合并Linux、Windows代码修复分片上传时分片过多会异常的问题提供Windows示例工程优化Linux编译安装方法 OSS C SDK开发包(2016-03-28)版本2.1.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.1.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.1.0.zip 更新日志: 完善示例程序header长度由限制为1K升级为最长8K解决部分单词拼写错误 OSS C SDK开发包(2016-03-06)版本2.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.0.0.zip 更新日志: complete multipart接口支持修改原有header重构示例程序和组织方式开放params参数,允许用户自定义设置允许params和headers参数为空,简化用户使用和减少用户代码量支持https支持ip新增部分测试新增oss_put_bucket_acl接口新增目录相关示例新增signed url相关示例完善接口注释删除无用的port配置参数调整oss_init_multipart_upload接口参数顺序优化配置参数名称,使其与官方网站保持一致解决endpoint不能含有http等前缀的问题解决用户无法设置content-type的问题解决无法自动根据file name和key设置content-type的问题解决list upload parts为空时coredump的问题解决oss_upload_file接口在断点续传时可能会coredump的问题解决部分单词拼写错误解决所有警告解决部分头文件宏保护无效的问题解决oss_head_object_by_url接口不生效的问题提高易用性,降低用户使用门槛支持Visual C++ 2008 OSS C SDK开发包(2015-12-17)版本1.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v1.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v1.0.0.zip 更新日志: 调整OSS C SDK依赖的XML第三方库,使用minixml替换libxml减小OSS C SDK的大小修改编译方式为CMAKE,方便用户使用SDK新增oss_upload_file接口,封装multipart upload相关的接口,使用multipart方式上传文件新增oss_delete_objects_by_prefix接口,删除指定prefix的object新增OSS C SDK根据object name或者filename自动添加content_type OSS C SDK开发包(2015-11-12)版本0.0.7下载地址: Linux: aliyun_OSS_C_SDK_v0.0.7.tar.gzWindows: oss_c_sdk_windows_v0.0.7.zip 更新日志: OSS C SDK修复sts_token超过http header最大限制的问题 OSS C SDK开发包(2015-10-29)版本0.0.6下载地址: Linux: aliyun_OSS_C_SDK_v0.0.6.tar.gzWindows: oss_c_sdk_windows_v0.0.6.zip 更新日志: OSS C SDK签名时请求头支持x-oss-date,允许用户指定签名时间,解决系统时间偏差导致签名出错的问题OSS C SDK支持CNAME方式访问OSS,CNAME方式请求时指定is_oss_domain值为0新增OSS C SDK demo,提供简单的接口调用示例,方便用户快速入门OSS C SDK sample示例中去除对utf8第三方库的依赖 OSS C SDK开发包(2015-09-14)版本0.0.5下载地址: Linux: aliyun_OSS_C_SDK_v0.0.5.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.5.rar 更新日志: 调整签名时获取GMT时间的方法调整req_id的处理方式,改为从aos_status_t放回状态中直接获取 OSS C SDK开发包(2015-08-17)版本0.0.4下载地址: Linux: aliyun_OSS_C_SDK_v0.0.4.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.4.rar 更新日志: 支持keeplive长连接支持lifecycle设置 OSS C SDK开发包(2015-07-08)版本0.0.3下载地址: Linux: aliyun_OSS_C_SDK_v0.0.3.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.3.rar 更新日志: 增加oss_append_object_from_buffer接口,支持追加上传buffer中的内容到object增加oss_append_object_from_file接口,支持追加上传文件中的内容到object OSS C SDK开发包(2015-06-10)版本0.0.2更新日志: 增加oss_upload_part_copy接口,支持Upload Part Copy方式拷贝增加使用sts服务临时授权方式访问OSS OSS C SDK开发包(2015-05-28)版本0.0.1更新日志: 增加oss_create_bucket接口,创建oss bucket增加oss_delete_bucket接口,删除oss bucket增加oss_get_bucket_acl接口,获取oss bucket的acl增加oss_list_object接口,列出oss bucket中的object增加oss_put_object_from_buffer接口,上传buffer中的内容到object增加oss_put_object_from_file接口,上传文件中的内容到object增加oss_get_object_to_buffer接口,获取object的内容到buffer增加oss_get_object_to_file接口,获取object的内容到文件增加oss_head_object接口,获取object的user meta信息增加oss_delete_object接口,删除object增加oss_copy_object接口,拷贝objet增加oss_init_multipart_upload接口,初始化multipart upload增加oss_upload_part_from_buffer接口,上传buffer中的内容到块中增加oss_upload_part_from_file接口,上传文件中的内容到块增加oss_list_upload_part接口,获取所有已上传的块信息增加oss_complete_multipart_upload接口,完成分块上传增加oss_abort_multipart_upload接口,取消分块上传事件增加oss_list_multipart_upload接口,获取bucket内所有分块上传事件增加oss_gen_signed_url接口,生成一个签名的URL增加oss_put_object_from_buffer_by_url接口,使用url签名的方式上传buffer中的内容到object增加oss_put_object_from_file_by_url接口,使用url签名的方式上传文件中的内容到object增加oss_get_object_to_buffer_by_ur接口,使用url签名的方式获取object的内容到buffer增加oss_get_object_to_file_by_url接口,使用url签名的方式获取object的内容到文件中增加oss_head_object_by_url接口,使用url签名的方式获取object的user meta信息
2019-12-01 23:15:09 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档C SDK 开发包OSS C SDK最新版本点击查看 OSS C SDK开发包(2017-02-22)版本3.4.0下载地址: Linux: aliyun_oss_c_sdk_v3.4.0.tar.gzWindows: aliyun_oss_c_sdk_v3.4.0.zip 更新日志: 添加:支持并发断点续传上传oss_resumable_upload_file修复:oss_gen_signed_url支持临时用户签名修复:初始化默认不打开fd 2,退出时不关闭fd 2修复:解决key为xxx/./yyy/,./async_test/test报SignatureDoesNotMatch的问题 OSS C SDK开发包(2016-12-22)版本3.3.0下载地址: Linux: aliyun_oss_c_sdk_v3.3.0.tar.gzWindows: aliyun_oss_c_sdk_v3.3.0.zip 更新日志: 添加:支持代理Proxy修复:oss_get_object_to_file先下载到本地临时文件,成功后修改文件名称修复:去除Visual Studio编译警告aos_util.c(512) C4146修复:URL上传下载添加CRC校验 OSS C SDK开发包(2016-11-22)版本3.2.1下载地址: Linux: aliyun_oss_c_sdk_v3.2.1.tar.gzWindows: aliyun_oss_c_sdk_v3.2.1.zip 更新日志: 修复:解决oss_copy_object源文件名不能有URL特殊字符的问题 OSS C SDK开发包(2016-11-14)版本3.2.0下载地址: Linux: aliyun_oss_c_sdk_v3.2.0.tar.gzWindows: aliyun_oss_c_sdk_v3.2.0.zip 更新日志: 添加:支持上传、下载CRC检验添加:支持上传回调功能添加:支持进度条功能 OSS C SDK开发包(2016-08-11)版本3.1.0下载地址: Linux: aliyun_oss_c_sdk_v3.1.0.tar.gzWindows: aliyun_oss_c_sdk_v3.1.0.zip 更新日志: 添加:支持RTMP功能修复:支持OSS和IMG合并 OSS C SDK开发包(2016-05-30)版本3.0.0下载地址: Linux: aliyun_oss_c_sdk_v3.0.0.tar.gzWindows: aliyun_oss_c_sdk_v3.0.0.zip 更新日志: 合并Linux、Windows代码修复分片上传时分片过多会异常的问题提供Windows示例工程优化Linux编译安装方法 OSS C SDK开发包(2016-03-28)版本2.1.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.1.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.1.0.zip 更新日志: 完善示例程序header长度由限制为1K升级为最长8K解决部分单词拼写错误 OSS C SDK开发包(2016-03-06)版本2.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.0.0.zip 更新日志: complete multipart接口支持修改原有header重构示例程序和组织方式开放params参数,允许用户自定义设置允许params和headers参数为空,简化用户使用和减少用户代码量支持https支持ip新增部分测试新增oss_put_bucket_acl接口新增目录相关示例新增signed url相关示例完善接口注释删除无用的port配置参数调整oss_init_multipart_upload接口参数顺序优化配置参数名称,使其与官方网站保持一致解决endpoint不能含有http等前缀的问题解决用户无法设置content-type的问题解决无法自动根据file name和key设置content-type的问题解决list upload parts为空时coredump的问题解决oss_upload_file接口在断点续传时可能会coredump的问题解决部分单词拼写错误解决所有警告解决部分头文件宏保护无效的问题解决oss_head_object_by_url接口不生效的问题提高易用性,降低用户使用门槛支持Visual C++ 2008 OSS C SDK开发包(2015-12-17)版本1.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v1.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v1.0.0.zip 更新日志: 调整OSS C SDK依赖的XML第三方库,使用minixml替换libxml减小OSS C SDK的大小修改编译方式为CMAKE,方便用户使用SDK新增oss_upload_file接口,封装multipart upload相关的接口,使用multipart方式上传文件新增oss_delete_objects_by_prefix接口,删除指定prefix的object新增OSS C SDK根据object name或者filename自动添加content_type OSS C SDK开发包(2015-11-12)版本0.0.7下载地址: Linux: aliyun_OSS_C_SDK_v0.0.7.tar.gzWindows: oss_c_sdk_windows_v0.0.7.zip 更新日志: OSS C SDK修复sts_token超过http header最大限制的问题 OSS C SDK开发包(2015-10-29)版本0.0.6下载地址: Linux: aliyun_OSS_C_SDK_v0.0.6.tar.gzWindows: oss_c_sdk_windows_v0.0.6.zip 更新日志: OSS C SDK签名时请求头支持x-oss-date,允许用户指定签名时间,解决系统时间偏差导致签名出错的问题OSS C SDK支持CNAME方式访问OSS,CNAME方式请求时指定is_oss_domain值为0新增OSS C SDK demo,提供简单的接口调用示例,方便用户快速入门OSS C SDK sample示例中去除对utf8第三方库的依赖 OSS C SDK开发包(2015-09-14)版本0.0.5下载地址: Linux: aliyun_OSS_C_SDK_v0.0.5.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.5.rar 更新日志: 调整签名时获取GMT时间的方法调整req_id的处理方式,改为从aos_status_t放回状态中直接获取 OSS C SDK开发包(2015-08-17)版本0.0.4下载地址: Linux: aliyun_OSS_C_SDK_v0.0.4.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.4.rar 更新日志: 支持keeplive长连接支持lifecycle设置 OSS C SDK开发包(2015-07-08)版本0.0.3下载地址: Linux: aliyun_OSS_C_SDK_v0.0.3.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.3.rar 更新日志: 增加oss_append_object_from_buffer接口,支持追加上传buffer中的内容到object增加oss_append_object_from_file接口,支持追加上传文件中的内容到object OSS C SDK开发包(2015-06-10)版本0.0.2更新日志: 增加oss_upload_part_copy接口,支持Upload Part Copy方式拷贝增加使用sts服务临时授权方式访问OSS OSS C SDK开发包(2015-05-28)版本0.0.1更新日志: 增加oss_create_bucket接口,创建oss bucket增加oss_delete_bucket接口,删除oss bucket增加oss_get_bucket_acl接口,获取oss bucket的acl增加oss_list_object接口,列出oss bucket中的object增加oss_put_object_from_buffer接口,上传buffer中的内容到object增加oss_put_object_from_file接口,上传文件中的内容到object增加oss_get_object_to_buffer接口,获取object的内容到buffer增加oss_get_object_to_file接口,获取object的内容到文件增加oss_head_object接口,获取object的user meta信息增加oss_delete_object接口,删除object增加oss_copy_object接口,拷贝objet增加oss_init_multipart_upload接口,初始化multipart upload增加oss_upload_part_from_buffer接口,上传buffer中的内容到块中增加oss_upload_part_from_file接口,上传文件中的内容到块增加oss_list_upload_part接口,获取所有已上传的块信息增加oss_complete_multipart_upload接口,完成分块上传增加oss_abort_multipart_upload接口,取消分块上传事件增加oss_list_multipart_upload接口,获取bucket内所有分块上传事件增加oss_gen_signed_url接口,生成一个签名的URL增加oss_put_object_from_buffer_by_url接口,使用url签名的方式上传buffer中的内容到object增加oss_put_object_from_file_by_url接口,使用url签名的方式上传文件中的内容到object增加oss_get_object_to_buffer_by_ur接口,使用url签名的方式获取object的内容到buffer增加oss_get_object_to_file_by_url接口,使用url签名的方式获取object的内容到文件中增加oss_head_object_by_url接口,使用url签名的方式获取object的user meta信息
2019-12-01 23:15:08 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档C SDK 开发包OSS C SDK最新版本点击查看 OSS C SDK开发包(2017-02-22)版本3.4.0下载地址: Linux: aliyun_oss_c_sdk_v3.4.0.tar.gzWindows: aliyun_oss_c_sdk_v3.4.0.zip 更新日志: 添加:支持并发断点续传上传oss_resumable_upload_file修复:oss_gen_signed_url支持临时用户签名修复:初始化默认不打开fd 2,退出时不关闭fd 2修复:解决key为xxx/./yyy/,./async_test/test报SignatureDoesNotMatch的问题 OSS C SDK开发包(2016-12-22)版本3.3.0下载地址: Linux: aliyun_oss_c_sdk_v3.3.0.tar.gzWindows: aliyun_oss_c_sdk_v3.3.0.zip 更新日志: 添加:支持代理Proxy修复:oss_get_object_to_file先下载到本地临时文件,成功后修改文件名称修复:去除Visual Studio编译警告aos_util.c(512) C4146修复:URL上传下载添加CRC校验 OSS C SDK开发包(2016-11-22)版本3.2.1下载地址: Linux: aliyun_oss_c_sdk_v3.2.1.tar.gzWindows: aliyun_oss_c_sdk_v3.2.1.zip 更新日志: 修复:解决oss_copy_object源文件名不能有URL特殊字符的问题 OSS C SDK开发包(2016-11-14)版本3.2.0下载地址: Linux: aliyun_oss_c_sdk_v3.2.0.tar.gzWindows: aliyun_oss_c_sdk_v3.2.0.zip 更新日志: 添加:支持上传、下载CRC检验添加:支持上传回调功能添加:支持进度条功能 OSS C SDK开发包(2016-08-11)版本3.1.0下载地址: Linux: aliyun_oss_c_sdk_v3.1.0.tar.gzWindows: aliyun_oss_c_sdk_v3.1.0.zip 更新日志: 添加:支持RTMP功能修复:支持OSS和IMG合并 OSS C SDK开发包(2016-05-30)版本3.0.0下载地址: Linux: aliyun_oss_c_sdk_v3.0.0.tar.gzWindows: aliyun_oss_c_sdk_v3.0.0.zip 更新日志: 合并Linux、Windows代码修复分片上传时分片过多会异常的问题提供Windows示例工程优化Linux编译安装方法 OSS C SDK开发包(2016-03-28)版本2.1.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.1.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.1.0.zip 更新日志: 完善示例程序header长度由限制为1K升级为最长8K解决部分单词拼写错误 OSS C SDK开发包(2016-03-06)版本2.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.0.0.zip 更新日志: complete multipart接口支持修改原有header重构示例程序和组织方式开放params参数,允许用户自定义设置允许params和headers参数为空,简化用户使用和减少用户代码量支持https支持ip新增部分测试新增oss_put_bucket_acl接口新增目录相关示例新增signed url相关示例完善接口注释删除无用的port配置参数调整oss_init_multipart_upload接口参数顺序优化配置参数名称,使其与官方网站保持一致解决endpoint不能含有http等前缀的问题解决用户无法设置content-type的问题解决无法自动根据file name和key设置content-type的问题解决list upload parts为空时coredump的问题解决oss_upload_file接口在断点续传时可能会coredump的问题解决部分单词拼写错误解决所有警告解决部分头文件宏保护无效的问题解决oss_head_object_by_url接口不生效的问题提高易用性,降低用户使用门槛支持Visual C++ 2008 OSS C SDK开发包(2015-12-17)版本1.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v1.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v1.0.0.zip 更新日志: 调整OSS C SDK依赖的XML第三方库,使用minixml替换libxml减小OSS C SDK的大小修改编译方式为CMAKE,方便用户使用SDK新增oss_upload_file接口,封装multipart upload相关的接口,使用multipart方式上传文件新增oss_delete_objects_by_prefix接口,删除指定prefix的object新增OSS C SDK根据object name或者filename自动添加content_type OSS C SDK开发包(2015-11-12)版本0.0.7下载地址: Linux: aliyun_OSS_C_SDK_v0.0.7.tar.gzWindows: oss_c_sdk_windows_v0.0.7.zip 更新日志: OSS C SDK修复sts_token超过http header最大限制的问题 OSS C SDK开发包(2015-10-29)版本0.0.6下载地址: Linux: aliyun_OSS_C_SDK_v0.0.6.tar.gzWindows: oss_c_sdk_windows_v0.0.6.zip 更新日志: OSS C SDK签名时请求头支持x-oss-date,允许用户指定签名时间,解决系统时间偏差导致签名出错的问题OSS C SDK支持CNAME方式访问OSS,CNAME方式请求时指定is_oss_domain值为0新增OSS C SDK demo,提供简单的接口调用示例,方便用户快速入门OSS C SDK sample示例中去除对utf8第三方库的依赖 OSS C SDK开发包(2015-09-14)版本0.0.5下载地址: Linux: aliyun_OSS_C_SDK_v0.0.5.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.5.rar 更新日志: 调整签名时获取GMT时间的方法调整req_id的处理方式,改为从aos_status_t放回状态中直接获取 OSS C SDK开发包(2015-08-17)版本0.0.4下载地址: Linux: aliyun_OSS_C_SDK_v0.0.4.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.4.rar 更新日志: 支持keeplive长连接支持lifecycle设置 OSS C SDK开发包(2015-07-08)版本0.0.3下载地址: Linux: aliyun_OSS_C_SDK_v0.0.3.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.3.rar 更新日志: 增加oss_append_object_from_buffer接口,支持追加上传buffer中的内容到object增加oss_append_object_from_file接口,支持追加上传文件中的内容到object OSS C SDK开发包(2015-06-10)版本0.0.2更新日志: 增加oss_upload_part_copy接口,支持Upload Part Copy方式拷贝增加使用sts服务临时授权方式访问OSS OSS C SDK开发包(2015-05-28)版本0.0.1更新日志: 增加oss_create_bucket接口,创建oss bucket增加oss_delete_bucket接口,删除oss bucket增加oss_get_bucket_acl接口,获取oss bucket的acl增加oss_list_object接口,列出oss bucket中的object增加oss_put_object_from_buffer接口,上传buffer中的内容到object增加oss_put_object_from_file接口,上传文件中的内容到object增加oss_get_object_to_buffer接口,获取object的内容到buffer增加oss_get_object_to_file接口,获取object的内容到文件增加oss_head_object接口,获取object的user meta信息增加oss_delete_object接口,删除object增加oss_copy_object接口,拷贝objet增加oss_init_multipart_upload接口,初始化multipart upload增加oss_upload_part_from_buffer接口,上传buffer中的内容到块中增加oss_upload_part_from_file接口,上传文件中的内容到块增加oss_list_upload_part接口,获取所有已上传的块信息增加oss_complete_multipart_upload接口,完成分块上传增加oss_abort_multipart_upload接口,取消分块上传事件增加oss_list_multipart_upload接口,获取bucket内所有分块上传事件增加oss_gen_signed_url接口,生成一个签名的URL增加oss_put_object_from_buffer_by_url接口,使用url签名的方式上传buffer中的内容到object增加oss_put_object_from_file_by_url接口,使用url签名的方式上传文件中的内容到object增加oss_get_object_to_buffer_by_ur接口,使用url签名的方式获取object的内容到buffer增加oss_get_object_to_file_by_url接口,使用url签名的方式获取object的内容到文件中增加oss_head_object_by_url接口,使用url签名的方式获取object的user meta信息
2019-12-01 23:15:08 0 浏览量 回答数 0

回答

详细解答可以参考官方帮助文档C SDK 开发包OSS C SDK最新版本点击查看 OSS C SDK开发包(2017-02-22)版本3.4.0下载地址: Linux: aliyun_oss_c_sdk_v3.4.0.tar.gzWindows: aliyun_oss_c_sdk_v3.4.0.zip 更新日志: 添加:支持并发断点续传上传oss_resumable_upload_file修复:oss_gen_signed_url支持临时用户签名修复:初始化默认不打开fd 2,退出时不关闭fd 2修复:解决key为xxx/./yyy/,./async_test/test报SignatureDoesNotMatch的问题 OSS C SDK开发包(2016-12-22)版本3.3.0下载地址: Linux: aliyun_oss_c_sdk_v3.3.0.tar.gzWindows: aliyun_oss_c_sdk_v3.3.0.zip 更新日志: 添加:支持代理Proxy修复:oss_get_object_to_file先下载到本地临时文件,成功后修改文件名称修复:去除Visual Studio编译警告aos_util.c(512) C4146修复:URL上传下载添加CRC校验 OSS C SDK开发包(2016-11-22)版本3.2.1下载地址: Linux: aliyun_oss_c_sdk_v3.2.1.tar.gzWindows: aliyun_oss_c_sdk_v3.2.1.zip 更新日志: 修复:解决oss_copy_object源文件名不能有URL特殊字符的问题 OSS C SDK开发包(2016-11-14)版本3.2.0下载地址: Linux: aliyun_oss_c_sdk_v3.2.0.tar.gzWindows: aliyun_oss_c_sdk_v3.2.0.zip 更新日志: 添加:支持上传、下载CRC检验添加:支持上传回调功能添加:支持进度条功能 OSS C SDK开发包(2016-08-11)版本3.1.0下载地址: Linux: aliyun_oss_c_sdk_v3.1.0.tar.gzWindows: aliyun_oss_c_sdk_v3.1.0.zip 更新日志: 添加:支持RTMP功能修复:支持OSS和IMG合并 OSS C SDK开发包(2016-05-30)版本3.0.0下载地址: Linux: aliyun_oss_c_sdk_v3.0.0.tar.gzWindows: aliyun_oss_c_sdk_v3.0.0.zip 更新日志: 合并Linux、Windows代码修复分片上传时分片过多会异常的问题提供Windows示例工程优化Linux编译安装方法 OSS C SDK开发包(2016-03-28)版本2.1.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.1.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.1.0.zip 更新日志: 完善示例程序header长度由限制为1K升级为最长8K解决部分单词拼写错误 OSS C SDK开发包(2016-03-06)版本2.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v2.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v2.0.0.zip 更新日志: complete multipart接口支持修改原有header重构示例程序和组织方式开放params参数,允许用户自定义设置允许params和headers参数为空,简化用户使用和减少用户代码量支持https支持ip新增部分测试新增oss_put_bucket_acl接口新增目录相关示例新增signed url相关示例完善接口注释删除无用的port配置参数调整oss_init_multipart_upload接口参数顺序优化配置参数名称,使其与官方网站保持一致解决endpoint不能含有http等前缀的问题解决用户无法设置content-type的问题解决无法自动根据file name和key设置content-type的问题解决list upload parts为空时coredump的问题解决oss_upload_file接口在断点续传时可能会coredump的问题解决部分单词拼写错误解决所有警告解决部分头文件宏保护无效的问题解决oss_head_object_by_url接口不生效的问题提高易用性,降低用户使用门槛支持Visual C++ 2008 OSS C SDK开发包(2015-12-17)版本1.0.0下载地址: Linux: aliyun_oss_c_sdk_linux_v1.0.0.tar.gzWindows: aliyun_oss_c_sdk_windows_v1.0.0.zip 更新日志: 调整OSS C SDK依赖的XML第三方库,使用minixml替换libxml减小OSS C SDK的大小修改编译方式为CMAKE,方便用户使用SDK新增oss_upload_file接口,封装multipart upload相关的接口,使用multipart方式上传文件新增oss_delete_objects_by_prefix接口,删除指定prefix的object新增OSS C SDK根据object name或者filename自动添加content_type OSS C SDK开发包(2015-11-12)版本0.0.7下载地址: Linux: aliyun_OSS_C_SDK_v0.0.7.tar.gzWindows: oss_c_sdk_windows_v0.0.7.zip 更新日志: OSS C SDK修复sts_token超过http header最大限制的问题 OSS C SDK开发包(2015-10-29)版本0.0.6下载地址: Linux: aliyun_OSS_C_SDK_v0.0.6.tar.gzWindows: oss_c_sdk_windows_v0.0.6.zip 更新日志: OSS C SDK签名时请求头支持x-oss-date,允许用户指定签名时间,解决系统时间偏差导致签名出错的问题OSS C SDK支持CNAME方式访问OSS,CNAME方式请求时指定is_oss_domain值为0新增OSS C SDK demo,提供简单的接口调用示例,方便用户快速入门OSS C SDK sample示例中去除对utf8第三方库的依赖 OSS C SDK开发包(2015-09-14)版本0.0.5下载地址: Linux: aliyun_OSS_C_SDK_v0.0.5.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.5.rar 更新日志: 调整签名时获取GMT时间的方法调整req_id的处理方式,改为从aos_status_t放回状态中直接获取 OSS C SDK开发包(2015-08-17)版本0.0.4下载地址: Linux: aliyun_OSS_C_SDK_v0.0.4.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.4.rar 更新日志: 支持keeplive长连接支持lifecycle设置 OSS C SDK开发包(2015-07-08)版本0.0.3下载地址: Linux: aliyun_OSS_C_SDK_v0.0.3.tar.gzWindows: aliyun_OSS_C_SDK_windows_v0.0.3.rar 更新日志: 增加oss_append_object_from_buffer接口,支持追加上传buffer中的内容到object增加oss_append_object_from_file接口,支持追加上传文件中的内容到object OSS C SDK开发包(2015-06-10)版本0.0.2更新日志: 增加oss_upload_part_copy接口,支持Upload Part Copy方式拷贝增加使用sts服务临时授权方式访问OSS OSS C SDK开发包(2015-05-28)版本0.0.1更新日志: 增加oss_create_bucket接口,创建oss bucket增加oss_delete_bucket接口,删除oss bucket增加oss_get_bucket_acl接口,获取oss bucket的acl增加oss_list_object接口,列出oss bucket中的object增加oss_put_object_from_buffer接口,上传buffer中的内容到object增加oss_put_object_from_file接口,上传文件中的内容到object增加oss_get_object_to_buffer接口,获取object的内容到buffer增加oss_get_object_to_file接口,获取object的内容到文件增加oss_head_object接口,获取object的user meta信息增加oss_delete_object接口,删除object增加oss_copy_object接口,拷贝objet增加oss_init_multipart_upload接口,初始化multipart upload增加oss_upload_part_from_buffer接口,上传buffer中的内容到块中增加oss_upload_part_from_file接口,上传文件中的内容到块增加oss_list_upload_part接口,获取所有已上传的块信息增加oss_complete_multipart_upload接口,完成分块上传增加oss_abort_multipart_upload接口,取消分块上传事件增加oss_list_multipart_upload接口,获取bucket内所有分块上传事件增加oss_gen_signed_url接口,生成一个签名的URL增加oss_put_object_from_buffer_by_url接口,使用url签名的方式上传buffer中的内容到object增加oss_put_object_from_file_by_url接口,使用url签名的方式上传文件中的内容到object增加oss_get_object_to_buffer_by_ur接口,使用url签名的方式获取object的内容到buffer增加oss_get_object_to_file_by_url接口,使用url签名的方式获取object的内容到文件中增加oss_head_object_by_url接口,使用url签名的方式获取object的user meta信息
2019-12-01 23:15:08 0 浏览量 回答数 0

回答

strong consistency across distributed node not supported 不支持全局强一致 报错信息:strong consistency across distributed node not supported OB版本:  1.x 报错原因: OceanBase 1.x 版本不支全局一致性查询。在1.x版本里,当SQL要查询的数据分布在不同OBServer节点上时,由于没有内置全局时钟,所以无法获取不同OBServer节点上同一个时刻的数据。 解决办法: 1. 在1.x版本里。如果SQL访问的是多个表,且表之间有业务联系,则将多个表设置为相同的表分组(tablegroup)可以规避这个问题;如果SQL访问的是单个分区表,且能接受延时,可以使用弱一致读hint来规避报错;否则,暂时无解。  弱一致读hint详情请参考官方文档 弱一致读(ob_read_consistency) 2. 计划在2.1版本里,支持全局一致性查询,就没有这个问题。 ------------------------- ERROR 4624 (HY000): machine resource is not enough to hold a new unit 报错信息:ERROR 4624 (HY000): machine resource is not enough to hold a new unit OB版本:所有版本 报错原因:     OceanBase从某个角度来说就是将一批机器的资源(CPU/Memory/Disk)聚合在一起形成一个大的“资源池”,然后再从里面分配资源。每个租户都得绑定至少一个Resource Pool。Resource Pool就是从原始的“资源池”里创建出来的。每个Resource Pool由N个相同的Unit组成。每个Unit在某个具体的OBServer内部分配。当创建新的Resource Pool或者调大老的Resource Pool规格时,可能会因为没有OBServer可以分配出对应规格的Unit而报错。 解决办法:     重新计算可用资源,调制分配资源的SQL里的规格。如果可用资源确实不够用,那就先补充机器资源或者释放不用的租户资源,然后再重试。 ------------------------- OceanBase是否开源? 汇总一下有关OceanBase和开源相关的问题的答案。 1. OceanBase 0.4曾经开源,地址为 alibaba/oceanbase 。 喜欢看代码的从中可以学习到一些分布式数据库开发经验。 2. OceanBase从1.0版本不再开源,架构上做了很大的重构,对SQL和存储功能都有加强。不过关于LSM结构、冻结合并的原理没有大变。当前版本进入2.0。将来是否开源目前并无信息。 3. OceanBase 在用户体验上像MySQL,但是绝不是MySQL,也不是基于MySQL版本修改的,不是基于Postgre修改的,不是基于其他任何开源的产品修改的。OceanBase是蚂蚁自主研发的纯粹的分布式数据库,产品开发过程中,特别注意避免侵犯其他公司专利。所以OceanBase是按照一个商业通用数据库去规划设计的。 4. 随时欢迎开发能力很强的同学加入OceanBase内核开发团队。 ------------------------- OceanBase支持分布式事务吗? OceanBase提供多租户能力(租户就是实例)。租户内的分布式事务需求,OceanBase是满足的。原理是两阶段提交协议,强一致。OceanBase对分布式事务两阶段提交过程做了一些优化,性能有提升。如果业务的事务范围超出了租户(实例)的边界,则必须借助第三方分布式事务中间件框架或者应用自己实现分布式事务。蚂蚁SOFA的分布式事务框架DTX支持三种分布式事务方法,即XA、TCC和FMT.其中TCC和FMT都是最终一致。 ------------------------- Q: OceanBase里创建索引是立即生效吗?唯一索引呢?A: 分场景。 如果是在create table里带上了索引(包括唯一索引,也就是唯一性约束),是立即生效的。OB 1.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,但是索引不是立即生效。需要等到OB集群发起大合并之后才会生效。其中唯一索引需要等待两次大合并。所以运维建索引后需要安排1-2次大合并操作。OB 2.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,索引也不是立即生效,但是索引开始后台异步创建,创建时间取决于数据量。 示例如下: 1. OB 1.x 版本的索引 2. OB 2.x 版本的索引 ------------------------- OceanBase合并触发条件 Q:OceanBase什么时候会触发「合并」? A: OceanBase的数据写之前事务日志redo会及时落盘,但是数据的增量修改会一直在OB的增量内存memtable里,每天会落盘一次,这个就是合并。合并时间可以设定(major_freeze_duty_time)。另外,如果memtable使用率超过阈值(freeze_trigger_percentage),就会触发「冻结」,然后就是minor compaction,以及「转储」操作。转储会释放memtable内存,增量数据被输出到磁盘上,转储有次数限制(最大由参数minor_freeze_times),这个次数用完了就会触发「合并」。合并会比较耗OB的资源,时间长短取决于有多少增量数据要跟基线数据合并。 ## 查看冻结转储参数SHOW parameters WHERE NAME IN ('enable_major_freeze','minor_freeze_times','freeze_trigger_percentage','major_freeze_duty_time') AND svr_ip IN ('11.166.175.6');## 触发冻结合并ALTER system major freeze;SELECT sleep(1);## 查看冻结合并历史SELECT str_to_date(h.gmt_create,'%Y-%m-%d %h:%i:%s') gmt_create, module, EVENT,name1,value1,name2,value2 FROM __all_rootservice_event_history hWHERE h.module IN ('daily_merge','major_freeze', 'root_service')ORDER BY gmt_create DESC LIMIT 50; 示例:
mq4096 2019-12-02 00:39:59 0 浏览量 回答数 0

回答

strong consistency across distributed node not supported 不支持全局强一致 报错信息:strong consistency across distributed node not supported OB版本:  1.x 报错原因: OceanBase 1.x 版本不支全局一致性查询。在1.x版本里,当SQL要查询的数据分布在不同OBServer节点上时,由于没有内置全局时钟,所以无法获取不同OBServer节点上同一个时刻的数据。 解决办法: 1. 在1.x版本里。如果SQL访问的是多个表,且表之间有业务联系,则将多个表设置为相同的表分组(tablegroup)可以规避这个问题;如果SQL访问的是单个分区表,且能接受延时,可以使用弱一致读hint来规避报错;否则,暂时无解。  弱一致读hint详情请参考官方文档 弱一致读(ob_read_consistency) 2. 计划在2.1版本里,支持全局一致性查询,就没有这个问题。 ------------------------- ERROR 4624 (HY000): machine resource is not enough to hold a new unit 报错信息:ERROR 4624 (HY000): machine resource is not enough to hold a new unit OB版本:所有版本 报错原因:     OceanBase从某个角度来说就是将一批机器的资源(CPU/Memory/Disk)聚合在一起形成一个大的“资源池”,然后再从里面分配资源。每个租户都得绑定至少一个Resource Pool。Resource Pool就是从原始的“资源池”里创建出来的。每个Resource Pool由N个相同的Unit组成。每个Unit在某个具体的OBServer内部分配。当创建新的Resource Pool或者调大老的Resource Pool规格时,可能会因为没有OBServer可以分配出对应规格的Unit而报错。 解决办法:     重新计算可用资源,调制分配资源的SQL里的规格。如果可用资源确实不够用,那就先补充机器资源或者释放不用的租户资源,然后再重试。 ------------------------- OceanBase是否开源? 汇总一下有关OceanBase和开源相关的问题的答案。 1. OceanBase 0.4曾经开源,地址为 alibaba/oceanbase 。 喜欢看代码的从中可以学习到一些分布式数据库开发经验。 2. OceanBase从1.0版本不再开源,架构上做了很大的重构,对SQL和存储功能都有加强。不过关于LSM结构、冻结合并的原理没有大变。当前版本进入2.0。将来是否开源目前并无信息。 3. OceanBase 在用户体验上像MySQL,但是绝不是MySQL,也不是基于MySQL版本修改的,不是基于Postgre修改的,不是基于其他任何开源的产品修改的。OceanBase是蚂蚁自主研发的纯粹的分布式数据库,产品开发过程中,特别注意避免侵犯其他公司专利。所以OceanBase是按照一个商业通用数据库去规划设计的。 4. 随时欢迎开发能力很强的同学加入OceanBase内核开发团队。 ------------------------- OceanBase支持分布式事务吗? OceanBase提供多租户能力(租户就是实例)。租户内的分布式事务需求,OceanBase是满足的。原理是两阶段提交协议,强一致。OceanBase对分布式事务两阶段提交过程做了一些优化,性能有提升。如果业务的事务范围超出了租户(实例)的边界,则必须借助第三方分布式事务中间件框架或者应用自己实现分布式事务。蚂蚁SOFA的分布式事务框架DTX支持三种分布式事务方法,即XA、TCC和FMT.其中TCC和FMT都是最终一致。 ------------------------- Q: OceanBase里创建索引是立即生效吗?唯一索引呢?A: 分场景。 如果是在create table里带上了索引(包括唯一索引,也就是唯一性约束),是立即生效的。OB 1.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,但是索引不是立即生效。需要等到OB集群发起大合并之后才会生效。其中唯一索引需要等待两次大合并。所以运维建索引后需要安排1-2次大合并操作。OB 2.x 版本里在表存在的情况下新建的索引(包括唯一索引),命令立即返回,索引也不是立即生效,但是索引开始后台异步创建,创建时间取决于数据量。 示例如下: 1. OB 1.x 版本的索引 2. OB 2.x 版本的索引 ------------------------- OceanBase合并触发条件 Q:OceanBase什么时候会触发「合并」? A: OceanBase的数据写之前事务日志redo会及时落盘,但是数据的增量修改会一直在OB的增量内存memtable里,每天会落盘一次,这个就是合并。合并时间可以设定(major_freeze_duty_time)。另外,如果memtable使用率超过阈值(freeze_trigger_percentage),就会触发「冻结」,然后就是minor compaction,以及「转储」操作。转储会释放memtable内存,增量数据被输出到磁盘上,转储有次数限制(最大由参数minor_freeze_times),这个次数用完了就会触发「合并」。合并会比较耗OB的资源,时间长短取决于有多少增量数据要跟基线数据合并。 ## 查看冻结转储参数SHOW parameters WHERE NAME IN ('enable_major_freeze','minor_freeze_times','freeze_trigger_percentage','major_freeze_duty_time') AND svr_ip IN ('11.166.175.6');## 触发冻结合并ALTER system major freeze;SELECT sleep(1);## 查看冻结合并历史SELECT str_to_date(h.gmt_create,'%Y-%m-%d %h:%i:%s') gmt_create, module, EVENT,name1,value1,name2,value2 FROM __all_rootservice_event_history hWHERE h.module IN ('daily_merge','major_freeze', 'root_service')ORDER BY gmt_create DESC LIMIT 50; 示例:
mq4096 2019-12-02 00:40:00 0 浏览量 回答数 0

回答

不嫌代码写的烂 可以参考下 https://github.com/ren2881971/WeChat 着急实现功能 没重构 ###### /** * 微信授权 * * */ public class CUserOauthWeixinRedirect extends ABaseCommand { private static final String URL_OAUTH_ACCESS_TOKEN = "https://api.weixin.qq.com/sns/oauth2/access_token"; private static final String URL_OAUTH_USER_INFO = "https://api.weixin.qq.com/sns/userinfo"; /** 状态:module0xxx010010 模块0xxx0识别ID*/ private String state; /** 换取access_token票据 */ private String code; String module; String id; String ip; @Override public void init() throws Exception { state = getPara("state"); if (StrKit.isBlank(state)) { throw new ArgException("状态不正确"); } String[] moduleInfoArray = state.split(Define.WEIXIN_MODULE_OAUTH_SPLITER); if (moduleInfoArray.length != 2) { throw new ArgException("状态不正确"); } module = moduleInfoArray[0]; if (!Define.validateWeixinModule(module)) { throw new ArgException("模块不存在"); } id = moduleInfoArray[1]; code = getPara("code"); Util.assertNotBlank(code, "code不能为空"); ip = "%"; } @Override public void doCommand(AResult result) throws Exception { RedirectResult redirectResult = (RedirectResult) result; Map<String, String> queryParas = new HashMap<String, String>(); queryParas.put("grant_type", "authorization_code"); queryParas.put("appid", Define.WEIXIN_APP_ID); queryParas.put("secret", Define.WEIXIN_APP_SECRET); queryParas.put("code", code); String responseStr = null; try { responseStr = HttpKit.get(URL_OAUTH_ACCESS_TOKEN, queryParas); } catch (Exception e) { e.printStackTrace(); throw new BizException("微信授权失败"); } System.out.println(responseStr); JSONObject accessObj = JSONObject.parseObject(responseStr); JSONObject userObj = fetchUserInfo(accessObj.getString("access_token"), accessObj.getString("openid")); userObj.put("ip", ip); userObj.put("token", accessObj.getString("access_token")); userObj.put("refreshToken", accessObj.getString("refresh_token")); userObj.put("expireSeconds", accessObj.getInteger("expires_in")); UserBind userBind = UserService.service.findUserBindBySource(Define.USER_BIND_TYPE_WEIXIN, userObj.getString("fromId")); CurrentUser currentUser; User user = null; if (userBind == null) { user = new User(); AuthService.service.registerFromThird(Define.USER_BIND_TYPE_WEIXIN, userObj, user); System.out.println("用户[openid=" + userObj.getString("fromId") + ", nickname=" + userObj.getString("nickname") + "]注册成功,用户ID为[" + user.getId() + "]"); } else { user = User.dao.findById(userBind.getToId()); } currentUser = AuthService.service.login(user, ip); System.out.println("正在跳转...."); redirectResult.setUrl("http://" + Define.APP_DOMAIN + getRedirectUrl() + "?u=" + currentUser.getId() + "&t=" + currentUser.getToken()); } private JSONObject fetchUserInfo(String accessToken, String openId) { Map<String, String> queryParas = new HashMap<String, String>(); queryParas.put("access_token", accessToken); queryParas.put("openid", openId); String response = HttpKit.get(URL_OAUTH_USER_INFO, queryParas); System.out.println("user info: " + response); JSONObject rawUserObj = JSONObject.parseObject(response); JSONObject userObj = new JSONObject(); userObj.put("fromId", rawUserObj.getString("openid")); userObj.put("nickname", rawUserObj.getString("nickname")); int sex = rawUserObj.getInteger("sex"); userObj.put("gender", (sex == 0 || sex == 1) ? Define.GENDER_MALE : Define.GENDER_FEMALE); userObj.put("province", rawUserObj.getString("province")); userObj.put("city", rawUserObj.getString("city")); userObj.put("country", rawUserObj.getString("country")); userObj.put("avatar", rawUserObj.getString("headimgurl")); return userObj; } // TODO 策略模式重写 private String getRedirectUrl() { String redirectUrl = "/statics/shop_locals.html"; // 菜单 if (Define.WEIXIN_MODULE_MENU.equals(module)) { int menuId = Integer.parseInt(id); if (!Define.validateWeixinModuleMenuId(menuId)) { throw new ArgException("模块不存在"); } switch (menuId) { // --------我要签到 case Define.WEIXIN_MODULE_MENU_ID_CHECKIN_SIGN: { redirectUrl = "/statics/checkin_sign.html"; break; } // --------签到记录 case Define.WEIXIN_MODULE_MENU_ID_CHECKIN_HISTORY: { redirectUrl = "/statics/checkin_history.html"; break; } case Define.WEIXIN_MODULE_MENU_ID_SHOP_LOCALS: { redirectUrl = "/statics/shop_locals.html"; break; } case Define.WEIXIN_MODULE_MENU_ID_SHOP_ACTIVITIES: { redirectUrl = "/statics/shop_activities.html"; break; } // --------我的红包 case Define.WEIXIN_MODULE_MENU_ID_GIFTS: { redirectUrl = "/statics/gifts.html"; break; } // --------我的消息 case Define.WEIXIN_MODULE_MENU_ID_MESSAGES: { redirectUrl = "/statics/messages.html"; break; } // --------我的资料 case Define.WEIXIN_MODULE_MENU_ID_PROFILE: { redirectUrl = "/statics/profile.html"; break; } default: break; } } // TODO 活动 if (Define.WEIXIN_MODULE_ACTIVITY.equals(module)) { } return redirectUrl; } @Override public AResult initResult() { return new RedirectResult(); } 用的是jfinal,可能不好理解,不过核心代码都在。 思路是:获取到用户信息后,让用户处于登录状态。并且根据state,跳转到相关的页面。 菜单中配置的url形如: https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxe0a2ed1be585xxxx&redirect_uri=http://mywebsite.com/user/oauthWeixin&response_type=code&scope=snsapi_userinfo&state=menu0xxx020010#wechat_redirect ###### 引用来自“渔樵耕读”的评论 不嫌代码写的烂 可以参考下 https://github.com/ren2881971/WeChat 着急实现功能 没重构 appID=wx29bedaf2e1bd9d2d appSecret=********************** 开源代码不要把这些放出来啊。 ######哎呀呀 失误失误######可以试试这个https://github.com/chanjarster/weixin-java-tools######这个库 真的很不错。 我一直在学习他~######记得一定要交300给腾讯,不然 。
爱吃鱼的程序员 2020-06-03 17:19:50 0 浏览量 回答数 0

问题

3月6日 OSS技术升级完成 - API文档及SDK开发包更新通知

3月6日 OSS技术升级完成 - API文档及SDK开发包更新通知 亲们,3月6日  OSS完成技术升级,本次升级增加实现如下功能: 1.  支持在Get请求中Override返回请求的...
newegg11 2019-12-01 20:13:25 10670 浏览量 回答数 4

回答

一、Smarty缓存的几种方式缓存机制中,分为全局缓存、部分缓存、局部缓存三种方式,后面会一一讲述,下面是缓存设置前,Smarty类方法基本目录设置如下: $smarty->Smarty(); $smarty->template_dir = $ROOT."/templates";//模板目录 $smarty->compile_dir = $ROOT."/templates_c";//编译目录 $smarty->cache_dir = $ROOT."/cache";//缓存目录 $smarty->caching = true;//是否开启缓存,值为0,1,2,0则不开启:1则开启缓存:2则可设置特殊缓存,即在加载模板页前,对局部进行缓存时间的特殊设定,后面会讲到;可不写,默认为true-开启 $smarty->cache_lifetime = "3600";//缓存时间 ,可不写,默认为3600 $smarty->compile_check = true;//是否进行编译,可不写,默认为true 缓存机制中调用模板生成缓存页面,用的一个display()方法,将会在后文中用到,这里先讲解一下: $smarty->display(string template[, string cache_id[, string compile_id]]); 第一个必须参数:template,为需显示的模板;第二个可选参数:cache_id,可指定一个缓存号,此参数是给页面缓存添加一个标识的作用;第三个可选参数:compile_id,可指定一个编译号 ,此参数是把一个模板编译成不同版本时使用,同样是起一个标识的作用,不常用。上面代码简洁、说明易懂吧!若引用创建Smarty类都不知,那下面可以省了,呵,开个玩笑!接着往下看。1、全局缓存方式定义:字面上看,意思很明了,就是为整个网站的全部页面都进行缓存生成,只要页面调用了Smarty类模板。代码实例:其实,在这段之前的基本目录设置中就讲到了,为说明,用蓝颜色标明了出来代码,只要在类中这样设置,并在页面中进行如下引用,页面即进行了缓存,$smarty->display(‘index.tpl’);而这条语句,有一个很大的缺陷,就是一个模板即一个模板页面,只生成一个缓存,而我们知道,大多网站的多数页面后面会接一些参数或不同页面调用同一个模板,比如: http://blog.unvs.cn/archives/2012_9.html http://blog.unvs.cn/archives/2012_8.html http://blog.unvs.cn/archives/2012_7.html 比方这些是调用的同一个模板生成的页面,但是又必须生成3个缓存,使用上面的语句肯定做不到,这里我们要想到一开始讲到的第二个可选参数cache_id,用一个缓存号,来区分同一个模板生成不同的页面及缓存,代码实例: $cache_id = $_GET['id'];//url中的id参数值 $smarty->display(‘index.tpl’, $cache_id);//将缓存号加入,即可完成–同一模板–不同参数–不同缓存 的功能; 到这里,有人发现,如果我的页面不止一个参数,那是不是得全部解析出来并做为缓存号?这里有一个更好的方法,推荐给大家,也是网上大多赞同的。(其实,上面一段是’废话‘,可去掉,但为了循序渐进,更好理解而写的过渡,谅)推荐的方法是:你可以直接将整个当前URL获取下来,作为cache_id加入缓存,这样无论它多少个参数,都不会存在同一个缓存页,代码实例: $url=$_SERVER['REQUEST_URI'];//获取当前页URL,有的将url进行md5加密,亦可 $smarty->display(‘index.tpl’, $url); 2、部分缓存方式定义:意思就是,网站系统的部分页面进行缓存,而一些页面不进行缓存,比方网站的注册、登录处理页面可不进行缓存。一种处理方式:在display()方法前或后面,将此模板缓存进行一次清除操作,注意保持两者参数必须一致;代码实例: $smarty->clear_cache(“index.tpl”);//此句放在display方法句前后都可以 $smarty->display(“index.tpl”);//与clear_cache方法参数必须一致 另一种处理方式:原理是一样的,因为部分缓存相当于两种情况,你可以另写一个display方法进行重构,其中一个参数判断是否进行缓存,若不,则进行clear_cache()方法处理,否则进行缓存;代码实例: function display($temp_name, $cache_id = null,$is_cache = true){ if($is_cache){ $smarty->clear_cache(“index.tpl”, $cache_id); $smarty->display(“index.tpl”, $cache_id);//此两句不解,见上面绿色代码 }else{ $smarty->display(“index.tpl”, $cache_id); }} 调用方法:self::display($temp_name, $cache_id, false);//这样设置即不进行缓存,有任何疑问可留言提出。3、局部缓存方式定义:一个页面,一些地方不进行缓存,保持动态更新,每次都加载,比如文章详细页的浏览次数、登录窗口框等。有几种可实现局部缓存的方法(反面即处理好不缓存的地方就可实现局部缓存),着重讲解1、2种方法,我觉得就可以了,不用学会那么多。a、使用SMarty引擎中内置的nocache函数,实现不缓存功能(smarty3.1.8版支持,不知smarty2+是否支持)直接在tpl或html模板页中,不缓存区域加入{nocache}不缓存内容{/nocache}即可。代码实例:处理页面:$smarty->assign("time",time());模板页面:{nocache}<{$time}>{/nocache}b、注册块方法,实现不缓存写一个no_cached方法,并调用smarty注册块函数将方法进行注册,即可实现,直接贴实例。代码实例: 处理页面:$smarty->assign("time",time()); function no_cached($param, $content){//参数$param为块参数数组,参数$content为不缓存内容 return $content; } $smarty->register_block("no_cached", “no_cached”, false);//注册块方法:register_block($tpl_func, $reg_func, $cacheable);//参数1为模板函数;参数2为需注册的函数即上面写的函数;参数3为是否进行缓存,这里必须设置为false 模板页面:{no_cached}<{$time}>{/no_cached} c、当然还有其他一些方法,比如:注册函数等,这里就不介绍了,其中注册块详细使用,请查看smarty说明书,这里就不详述了。4、缓存机制中的is_cached用法最后,说下is_cached($temp_tpl[, $cache_id])判断是否已被缓存这个方法,$temp_tpl参数为模板页,$cache_id参数为缓存号,这个方法主要用在加载模板前进行缓存判断,若不存在就加载数据,若存在直接跳过,这样就达到了缓存的最终目的。示例: if(!smarty->is_cached(‘index.tpl’)){//不存在缓存 //调用数据库,并对变量进行赋值 } $smarty->display(‘index.tpl’);//加载模板页
小旋风柴进 2019-12-02 02:01:05 0 浏览量 回答数 0

问题

Aliyun OSS SDK for .NET 上线发布

OSS .NETSDK采用了与OSS Java SDK统一的接口设计,并结合C#语言特点适当地改进。目前支持Create/List/Delete Bucket,Set/Get ACL,Put/Get...
newegg11 2019-12-01 20:17:34 27360 浏览量 回答数 13

问题

子查询与联接

我重构了从另一家公司继承来的应用程序的慢速部分,以使用内部联接而不是子查询,例如: WHERE id IN (SELECT id FROM ...) 重构查询的运行速度大约快100倍。࿰...
保持可爱mmm 2020-05-10 20:20:42 1 浏览量 回答数 1

问题

[λ]你试过这样写C程序吗? :报错

摘要 面向对象风格和函数式编程风格是编写代码的两种风格,面向对象风格早为大众所认知,函数式风格也渐渐受到大家的关注。网上为其布道的文章不少,有人赞扬有人不屑,但鲜有展示一个完整例子的...
kun坤 2020-06-10 09:28:51 1 浏览量 回答数 1

问题

[λ]你试过这样写C程序吗? 热:报错

摘要 面向对象风格和函数式编程风格是编写代码的两种风格,面向对象风格早为大众所认知,函数式风格也渐渐受到大家的关注。网上为其布道的文章不少,有人赞扬有人不屑,但鲜有展示一个完整例...
kun坤 2020-06-09 22:08:47 0 浏览量 回答数 1

回答

由于数据集与上次练习中使用的数据集相同,我们将重新使用上次的代码来加载数据。 上传参考链接:https://developer.aliyun.com/ask/260171 import numpy as np import pandas as pd import matplotlib.pyplot as plt from scipy.io import loadmat %matplotlib inline data = loadmat('data/ex3data1.mat') data {'X': array([[ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], ..., [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.], [ 0., 0., 0., ..., 0., 0., 0.]]), '__globals__': [], '__header__': 'MATLAB 5.0 MAT-file, Platform: GLNXA64, Created on: Sun Oct 16 13:09:09 2011', '__version__': '1.0', 'y': array([[10], [10], [10], ..., [ 9], [ 9], [ 9]], dtype=uint8)} 我们以后需要和经常使用变量,先创建一些有用的变量。 X = data['X'] y = data['y'] X.shape, y.shape ((5000L, 400L), (5000L, 1L) )``` 我们还需要对标签进行专有热编码。专有热编码将类标签\(n \)(出于\(k \)类)转换为长度\(k \)的向量,其中索引\(n \)为“ hot”(1),其余为零。scikit-学习有一个内置的实用工具,我们可以使用它。 ```js from sklearn.preprocessing import OneHotEncoder encoder = OneHotEncoder(sparse=False) y_onehot = encoder.fit_transform(y) y_onehot.shape (5000L, 10L) 为这个练习创建的神经网络具有与我们实例数据(400 +偏差单元)大小匹配的输入层,25个单位的隐藏层(带有26个偏差单元)和10个单位的输出层对应我们的独热编码类标签。我们需要实现成本函数,用它来评估一组给定的神经网络参数的损失,源数学函数有助于将成本函数分解成多个。以下是计算成本所需的函数。 def sigmoid(z): return 1 / (1 + np.exp(-z)) def forward_propagate(X, theta1, theta2): m = X.shape[0] a1 = np.insert(X, 0, values=np.ones(m), axis=1) z2 = a1 * theta1.T a2 = np.insert(sigmoid(z2), 0, values=np.ones(m), axis=1) z3 = a2 * theta2.T h = sigmoid(z3) return a1, z2, a2, z3, h def cost(params, input_size, hidden_size, num_labels, X, y, learning_rate): m = X.shape[0] X = np.matrix(X) y = np.matrix(y) # reshape the parameter array into parameter matrices for each layer theta1 = np.matrix(np.reshape(params[:hidden_size * (input_size + 1)], (hidden_size, (input_size + 1)))) theta2 = np.matrix(np.reshape(params[hidden_size * (input_size + 1):], (num_labels, (hidden_size + 1)))) # run the feed-forward pass a1, z2, a2, z3, h = forward_propagate(X, theta1, theta2) # compute the cost J = 0 for i in range(m): first_term = np.multiply(-y[i,:], np.log(h[i,:])) second_term = np.multiply((1 - y[i,:]), np.log(1 - h[i,:])) J += np.sum(first_term - second_term) J = J / m return J 我们之前已经使用过sigmoid函数。正向传播函数计算给定当前参数的每个训练实例的假设(换句话说,给定神经网络当前的状态和一组输入,它能计算出神经网络每一层假设向量(由\(h \)表示)的形状,包含了每个类的预测概率,应该与y的独热编码相匹配。最后成本函数运行正向传播步,并计算实例的假设(预测)和真实标签之间的误差。 可以快速测试一下它是否按预期的工作。从中间步骤中看到的输出也有助于了解发生了什么。 # initial setup input_size = 400 hidden_size = 25 num_labels = 10 learning_rate = 1 # randomly initialize a parameter array of the size of the full network's parameters params = (np.random.random(size=hidden_size * (input_size + 1) + num_labels * (hidden_size + 1)) - 0.5) * 0.25 m = X.shape[0] X = np.matrix(X) y = np.matrix(y) # unravel the parameter array into parameter matrices for each layer theta1 = np.matrix(np.reshape(params[:hidden_size * (input_size + 1)], (hidden_size, (input_size + 1)))) theta2 = np.matrix(np.reshape(params[hidden_size * (input_size + 1):], (num_labels, (hidden_size + 1)))) theta1.shape, theta2.shape ((25L, 401L), (10L, 26L)) a1, z2, a2, z3, h = forward_propagate(X, theta1, theta2) a1.shape, z2.shape, a2.shape, z3.shape, h.shape ((5000L, 401L), (5000L, 25L), (5000L, 26L), (5000L, 10L), (5000L, 10L)) 计算假设矩阵\(h \)后的成本函数,用成本方程式计算\(y \)和\(h \)之间的总偏差。 cost(params, input_size, hidden_size, num_labels, X, y_onehot, learning_rate) 6.8228086634127862 下一步是在成本函数中增加正则化,增加了与参数大小相关的惩罚项。这个方程式可以归结为一行代码,将其添加到成本函数中。只需在返回语句之前添加以下内容。 J+= (float(learning_rate)/ (2 * m))* (np.sum(np.power(theta1[:,1:],2))+ np.sum(np.power(theta2[:,1:],2))) 接下来是反向传播算法,反向传播算法计算参数更新以减少训练数据的误差。我们首先需要的是一个函数,用来计算我们先前创建的Sigmoid函数梯度。 def sigmoid_gradient(z): return np.multiply(sigmoid(z), (1 - sigmoid(z))) 现在我们准备用反向传播算法来计算梯度,由于反向传播算法所需的计算是成本函数要求的超集,我们将扩展成本函数来执行反向传播算法,并返回成本和梯度函数。 backprop函数中调用了现有的成本函数来使设计更加正确的原因是,backprop函数使用了成本函数计算的一些其他变量。我跳过了完整的实现,添加了渐变正则化。 def backprop(params, input_size, hidden_size, num_labels, X, y, learning_rate): ##### this section is identical to the cost function logic we already saw ##### m = X.shape[0] X = np.matrix(X) y = np.matrix(y) # reshape the parameter array into parameter matrices for each layer theta1 = np.matrix(np.reshape(params[:hidden_size * (input_size + 1)], (hidden_size, (input_size + 1)))) theta2 = np.matrix(np.reshape(params[hidden_size * (input_size + 1):], (num_labels, (hidden_size + 1)))) # run the feed-forward pass a1, z2, a2, z3, h = forward_propagate(X, theta1, theta2) # initializations J = 0 delta1 = np.zeros(theta1.shape) # (25, 401) delta2 = np.zeros(theta2.shape) # (10, 26) # compute the cost for i in range(m): first_term = np.multiply(-y[i,:], np.log(h[i,:])) second_term = np.multiply((1 - y[i,:]), np.log(1 - h[i,:])) J += np.sum(first_term - second_term) J = J / m # add the cost regularization term J += (float(learning_rate) / (2 * m)) * (np.sum(np.power(theta1[:,1:], 2)) + np.sum(np.power(theta2[:,1:], 2))) ##### end of cost function logic, below is the new part ##### # perform backpropagation for t in range(m): a1t = a1[t,:] # (1, 401) z2t = z2[t,:] # (1, 25) a2t = a2[t,:] # (1, 26) ht = h[t,:] # (1, 10) yt = y[t,:] # (1, 10) d3t = ht - yt # (1, 10) z2t = np.insert(z2t, 0, values=np.ones(1)) # (1, 26) d2t = np.multiply((theta2.T * d3t.T).T, sigmoid_gradient(z2t)) # (1, 26) delta1 = delta1 + (d2t[:,1:]).T * a1t delta2 = delta2 + d3t.T * a2t delta1 = delta1 / m delta2 = delta2 / m # add the gradient regularization term delta1[:,1:] = delta1[:,1:] + (theta1[:,1:] * learning_rate) / m delta2[:,1:] = delta2[:,1:] + (theta2[:,1:] * learning_rate) / m # unravel the gradient matrices into a single array grad = np.concatenate((np.ravel(delta1), np.ravel(delta2))) return J, grad 成本函数的第一部分通过“神经网络”(正向传播函数)运行数据和当前参数来计算误差,将输出与真实标签作比较。数据集的总误差表示为\(J \)。这部分是我们之前的过的成本函数。 成本函数的其余部分的本质是回答“下次运行网络时,如何调整参数以减少误差?”,它通过计算每层的贡献与总误差,提出“梯度”矩阵(或者改变参数和方向)进行适当调整。 backprop计算中最难的部分是获取矩阵维度。顺便说一下,不是只有你对使用A * B和np.multiply(A,B)感到疑惑。 让我们测试一下,以确保函数返回我们所期望的。 J, grad = backprop(params, input_size, hidden_size, num_labels, X, y_onehot, learning_rate) J, grad.shape (6.8281541822949299, (10285L,)) 最后训练我们的神经网络,利用它做出的预测,这和先前的多层次逻辑回归大致相同。 from scipy.optimize import minimize # minimize the objective function fmin = minimize(fun=backprop, x0=params, args=(input_size, hidden_size, num_labels, X, y_onehot, learning_rate), method='TNC', jac=True, options={'maxiter': 250}) fmin status: 3 success: False nfev: 250 fun: 0.33900736818312283 x: array([ -8.85740564e-01, 2.57420350e-04, -4.09396202e-04, ..., 1.44634791e+00, 1.68974302e+00, 7.10121593e-01]) message: 'Max. number of function evaluations reach' jac: array([ -5.11463703e-04, 5.14840700e-08, -8.18792403e-08, ..., -2.48297749e-04, -3.17870911e-04, -3.31404592e-04]) nit: 21 由于目标函数不太可能完全收敛,我们对迭代次数进行限制。我们的总成本已经下降到0.5以下,这是算法正常工作的一个指标。我们用它找到的参数,然后通过神经网络正向传播它们以获得一些预测。我们必须重构优化器的输出,以匹配神经网络所期望的参数矩阵形状,然后运行正向传播函数以生成输入数据的假设。 X = np.matrix(X) theta1 = np.matrix(np.reshape(fmin.x[:hidden_size * (input_size + 1)], (hidden_size, (input_size + 1)))) theta2 = np.matrix(np.reshape(fmin.x[hidden_size * (input_size + 1):], (num_labels, (hidden_size + 1)))) a1, z2, a2, z3, h = forward_propagate(X, theta1, theta2) y_pred = np.array(np.argmax(h, axis=1) + 1) y_pred array([[10], [10], [10], ..., [ 9], [ 9], [ 9]], dtype=int64) 最后计算准确度以观察我们训练过的神经网络的工作状况 correct = [1 if a == b else 0 for (a, b) in zip(y_pred, y)] accuracy = (sum(map(int, correct)) / float(len(correct))) print 'accuracy = {0}%'.format(accuracy * 100) accuracy = 99.22% 我们完成了,我们已经成功地实施了一个基本的反向传播的前馈式神经网络,并用它来分类手写数字图像。
珍宝珠 2019-12-02 03:22:37 0 浏览量 回答数 0

回答

SmartPaster-(免费)用于字符串的复制/粘贴代码生成器 AnkhSvn-VS.NET的(免费)SVN源代码控制集成 VisualSVN服务器 -(免费)源代码控制 ReSharper -IDE增强功能,有助于重构和提高生产力 CodeRush-类固醇上的代码生成宏 重构 -代码重构辅助 CodeMaid(FREE)-代码清理,组织和复杂性分析 CodeSmith-代码生成器 GhostDoc-(免费)简单的代码注释工具 DXCore(FREE)及其许多出色的插件:DxCore社区插件,CR_Documentor,CodeStyleEnforcer,RedGreen TestDriven.Net-(免费/付费)单元测试帮助 Reflector-(PAY)功能丰富的.Net反汇编程序Reflector加载项 Web部署项目 -提供其他功能来构建和部署网站和Web应用程序(源)。
游客ufivfoddcd53c 2020-01-03 18:29:44 0 浏览量 回答数 0

回答

真微妙 如果业务要求是“我想审核数据的更改-谁做了什么以及何时做?”,则通常可以使用审核表(按照Keethanjan发布的触发器示例)。我不是触发器的忠实拥护者,但是它具有实施起来相对轻松的巨大好处-您现有的代码不需要了解触发器和审计内容。 如果业务需求是“告诉我过去某个给定日期的数据状态是什么”,则意味着随时间变化的方面已进入您的解决方案。尽管您可以仅通过查看审计表来重建数据库的状态,但它既困难又容易出错,并且对于任何复杂的数据库逻辑而言,它都变得笨拙。例如,如果企业想知道“查找本月应该发送给在月初第一天有未付发票的客户的信件的地址”,则您可能不得不拖拉六个审计表。 相反,您可以将随时间变化的概念引入架构设计中(这是Keethanjan建议的第二种选择)。这绝对是在业务逻辑和持久性级别对您的应用程序进行的更改,因此这并非易事。 例如,如果您有一个这样的表: CUSTOMER CUSTOMER_ID PK CUSTOMER_NAME CUSTOMER_ADDRESS 并且您想随时间推移进行跟踪,可以对其进行如下修改: CUSTOMER CUSTOMER_ID PK CUSTOMER_VALID_FROM PK CUSTOMER_VALID_UNTIL PK CUSTOMER_STATUS CUSTOMER_USER CUSTOMER_NAME CUSTOMER_ADDRESS 每次您想要更改客户记录而不是更新记录时,都将当前记录上的VALID_UNTIL设置为NOW(),并插入一个新记录,其中包含VALID_FROM(现在)和空VALID_UNTIL。您将“ CUSTOMER_USER”状态设置为当前用户的登录ID(如果需要保留该状态)。如果需要删除客户,则使用CUSTOMER_STATUS标志来表明这一点-您永远都不能从该表中删除记录。 这样,您始终可以找到给定日期的客户表状态-地址是什么?他们有改名字吗?通过联接到具有相似有效日期和有效日期的其他表,您可以历史重构整个图片。要查找当前状态,请搜索日期为VALID_UNTIL的记录。 它很笨拙(严格来说,您不需要valid_from,但是它使查询更容易一些)。它使您的设计和数据库访问变得复杂。但这使重建世界变得容易得多。来源:stack overflow
保持可爱mmm 2020-05-11 16:20:49 0 浏览量 回答数 0

回答

您需要删除查询字符串末尾的分号,即: String sql = "INSERT INTO PURE_ENC_QUEUE (queueId,queueName) values(?,?)"; 另外,将代码重构为使用try-with-resources语句也是一个好主意。
保持可爱mmm 2019-12-02 03:16:01 0 浏览量 回答数 0

回答

我已经解决了,看地址 http://www.cnblogs.com/yjmyzz/p/mysql-utf8mb4-jdbc.html==>3093IZVc: 2016-06-2010:43:55,294ERRORcom.bsteel.vs.webapp.controller.BaseController:181-org.springframework.jdbc.UncategorizedSQLException:PreparedStatementCallback;uncategorizedSQLExceptionforSQL[INSERTINTOvsns_topicSET`from`=?,`type`=?,`uid`=?,`videoid`='0',`lastupdate`=UNIX_TIMESTAMP(),`dateline`=UNIX_TIMESTAMP(),`totid`=?,`touid`=?,`anonymous`='0',`item`='',`item_id`='0',`channel_id`='0',`username`=?,`musicid`='0',`roottid`='0',`content`=?,`postip`=?,`post_ip_port`='64020'];SQLstate[HY000];errorcode[1366];Incorrectstringvalue:'\xF0\x9F\x98\x81\xF0\x9F...'forcolumn'content'atrow1;nestedexceptionisjava.sql.SQLException:Incorrectstringvalue:'\xF0\x9F\x98\x81\xF0\x9F...'forcolumn'content'atrow1 ==>3093IZVc: 2016-06-2010:43:55,294ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:84) ==>3093IZVc: 2016-06-2010:43:55,295ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ==>3093IZVc: 2016-06-2010:43:55,295ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.support.AbstractFallbackSQLExceptionTranslator.translate(AbstractFallbackSQLExceptionTranslator.java:81) ==>3093IZVc: 2016-06-2010:43:55,296ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:660) ==>3093IZVc: 2016-06-2010:43:55,298ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:909) ==>3093IZVc: 2016-06-2010:43:55,298ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:970) ==>3093IZVc: 2016-06-2010:43:55,299ERRORcom.bsteel.vs.webapp.controller.BaseController:183-org.springframework.jdbc.core.JdbcTemplate.update(JdbcTemplate.java:980) ==>3093IZVc: 2016-06-2010:43:55,299ERRORcom.bsteel.vs.webapp.controller.BaseController:183-com.bsteel.vs.dao.impl.TopicDaoImpl.saveTopic(TopicDaoImpl.java:35) 看一下你要保存表情的字段编码是不是utf8mb4可以考虑把 content字段用base64转码后再存储。表情字段一般用blob类型存储,查询的时候再转一下即可 这是重构的项目,别人用php都可以的,用java就不可以了 这个错误应该是很数据库有关系。前不久刚碰到过。 https://segmentfault.com/a/1190000000616820 这个帖子整理的还算比较完整的。很多人在使用mysql数据库的时候遇到编码问题,在mysql数据库使用时, 字符集和校对规则有4个级别的默认设置:服务器级、数据库级、表级和连接级 你需要查下你各级别字符集跟校对规则,修改成你需要的字符集及校对规则就可以了。 参考自: MySQL的字符集和校对
爱吃鱼的程序员 2020-06-09 13:52:12 0 浏览量 回答数 0

回答

项目中用到了FastDFS来做文件存储。最近重构的时候,因为经常处于移动办公的状态,所以访问公司的服务器不是很方便,所以感觉有必要在本机上搭建一套FastDFS的测试环境。 FastDFS是什么? FastDFS是一个开源的轻量级分布式文件系统,它对文件进行管理,功能包括:文件存储、文件同步、文件访问(文件上传、文件下载)等,解决了大容量存储和负载均衡的问题。特别适合以文件为载体的在线服务,如相册网站、视频网站等等。 FastDFS为互联网量身定制,充分考虑了冗余备份、负载均衡、线性扩容等机制,并注重高可用、高性能等指标,使用FastDFS很容易搭建一套高性能的文件服务器集群提供文件上传、下载等服务。 FastDFS里面有两种角色:Tracker、Storage。Tracker主要做调度工作,在访问上起负载均衡的作用。Storage存储节点存储文件,完成文件管理的所有功能:存储、同步和提供存取接口,FastDFS同时对文件的meta data进行管理。所谓文件的meta data就是文件的相关属性,以键值对(key value pair)方式表示,如:width=1024,其中的key为width,value为1024。文件meta data是文件属性列表,可以包含多个键值对。 Docker方式 因为之前用Docker用的比较多,所以首先想到的是用Docker来运行FastDFS。上hub.docker.io上找了找镜像,最后选择了luhuiguo/fastdfs这个镜像。很快写了一个docker-compose脚本: 1version: '3.3' 2services: 3 tracker: 4 image: luhuiguo/fastdfs 5 ports: 6 - "22122:22122" 7 command: 8 - tracker 9 volumes: 10 # let container use same timezone as host 11 - /etc/localtime:/etc/localtime 12 - /opt/docker/fastdfs/tracker:/var/fdfs 13 storage: 14 image: luhuiguo/fastdfs 15 ports: 16 - "23000:23000" 17 links: 18 - tracker 19 command: 20 - storage 21 environment: 22 TRACKER_SERVER: 192.168.255.199:22122 23 GROUP_NAME: group1 24 volumes: 25 - /etc/localtime:/etc/localtime 26 - /opt/docker/fastdfs/storage:/var/fdfs 执行起来,看起来也是正常的。但是使用程序访问的时候却失败了。抛出了异常:java.net.SocketTimeoutException: connect timed out。通过跟踪代码发现了原因:使用docker的时候,storage向tracker汇报的地址是docker内部的地址,而这个地址在Mac本机是无法直接访问的。通过代码访问Tracker的时候返回的地址就是docker内部的地址,自然会出现SocketTimeoutException了。 1.1 network host模式 因为知道docker有host这一网络模式,可以使docker容器使用与宿主机一样的网络。感觉上这样或许可以解决上面的问题,而且镜像的说明中也提到了这一点。于是加上了network_mode: host。但是启动之后发现还是一样的错误。经过搜索找到了原因: **Mac上的Docker实际上是通过虚拟化方式运行在Mac系统上的。通过xhyve技术模拟出来一台Linux主机,然后在其中跑Docker进程。当使用host模式跑的时候,docker使用的是这个虚拟出来的Linux主机的网络作为Host网络,无法直接使用Mac主机的网络。因此依然无法连接是正常的。**也就是说,在Mac主机上,host这种网络是无法使用的。 本机编译执行 既然使用Docker无法运行FastDFS,那只能通过编译源码来运行了。最新版本的FastDFS已经可以直接在Mac上编译了(不需要修改源码)。因此这种方法也不难。主要步骤如下: 2.0 关闭系统保护 从OSX 10.11开始,Mac对关键目录进行了保护(例如:/bin, /usr/bin等)。而要编译FastDFS却是要安装文件到/usr/bin等目录下,所以首先需要禁用系统保护。关闭的方法如下: 重启系统,重启的过程中按住Command+R进入Recovery模式; 从菜单中选择“终端”或“Terminal”进入命令行模式; 输入命令csrutil disable关闭保护模式,然后输入reboot重启系统即可。 2.1 libfastcommon FastDFS依赖于libfastcommon,因此需要首先编译、安装libfastcommon,步骤如下: 1unzip libfastcommon-1.0.35.zip 2cd libfastcommon-1.0.35 3./make.sh 4./make.sh install 2.2 fastdfs FastDFS源码通过Github下载。下面以最新的5.10为例。编译、安装步骤如下: 1unzip fastdfs-5.10.zip 2cd fastdfs-5.10 3./make.sh 4./make.sh install 安装成功后,FastDFS相关的可执行文件被安装到/usr/bin目录下。相关的配置文件被放在/etc/fdfs下,这和在Linux上安装的结果是一样的。 2.3 启动tracker 下面首先启动Tracker服务。首先准备存储数据的目录,Tracker将会在该目录中保存运行时信息以及日志文件: 1mkdir -p /opt/tools/fastdfs/tracker 2chown -R cap:cap /opt/tools/fastdfs/tracker 然后准备配置文件,从sample文件复制一份以便修改: 1cd /etc/fdfs 数控等离子切割机 数控等离子切割机 2cp tracker.conf.sample tracker.conf 然后修改配置文件/etc/fdfs/tracker.conf,在Mac上单机安装只需要修改base_path,修改成上面刚刚创建的目录: 1base_path=/opt/tools/fastdfs/tracker 然后启动fastdfs,启动完成之后应该占用了22122端口: 1/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf 2netstat -nl | grep 22122 启动服务使用如下命令: 1/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf start 停止服务可以使用如下命令: 1/usr/bin/fdfs_trackerd /etc/fdfs/tracker.conf stop 2.4 启动storage 首先还是准备目录供Storage节点使用: 1mkdir -p /opt/tools/fastdfs/storage 2chown -R cap:cap /opt/tools/fastdfs/storage 准备配置文件: 1cp storage.conf.sample storage.conf 修改配置文件: 1# 基本路径,日志等存储在该目录下 2base_path=/opt/tools/fastdfs/storage 3# 存储目录,可以存在多个。FastDFS会按照调度方法使用这些不同的目录。默认使用Round Robin调度方法。 4store_path0=/opt/tools/fastdfs/storage 5# 如果部署集群的话,只要多写几个tracker_server就可以了。 6tracker_server=192.168.255.199:22122 启动服务可以使用如下命令: 1/usr/bin/fdfs_storaged /etc/fdfs/storage.conf start 停止服务命令: 1/usr/bin/fdfs_storaged /etc/fdfs/storage.conf stop
凹凹凸曼 2020-06-16 19:09:32 0 浏览量 回答数 0

问题

【应用分享】爱分享OSS资源分享小工具

i分享--OSS资源分享工具 v1.1 应用下载地址: http://pan.baidu.com/share/link?shareid=88619&uk=2231668441 ...
wxd365 2019-12-01 20:29:04 10254 浏览量 回答数 4

问题

界面初始化时 加载数据 为何不显示??:报错

我的结构是这样的。 主界面XML <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns...
kun坤 2020-06-07 16:51:07 0 浏览量 回答数 1

问题

机器人框架中的Python-Se2Lib没有属性“执行” 问

在我的Robot框架测试中,我需要一些自定义的python关键字(例如,按住CTRL键),在开始重构“大”自定义类之前,一切正常(但是在保持C...
祖安文状元 2020-02-23 16:26:36 0 浏览量 回答数 1

问题

Xcode4修改工程(项目)名称 - Xcode4报错

" <span style=""color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,STheiti,微软雅黑,黑体,A...
montos 2020-06-04 21:10:41 3 浏览量 回答数 1

问题

深入理解Magento - 第二章 - Magento请求分发与控制器 400 请求报错 

深入理解Magento 作者: Alan Storm 翻译: zhlmmc 第二章 - Magento请求分发与控制器 Model-View-Controller (MVC) ,模型-视图-控制器...
kun坤 2020-05-28 16:31:47 5 浏览量 回答数 1

回答

OSC 第 128 期高手问答 -- Python3 开发实战 @壁_花 @idisikx @hell0cat @DarkAngel @北京老爷们儿      恭喜以上五位网友或获得《Python Web开发实战》图书一本  请私信 @博文视点   告知快递信息(格式:姓名+电话+地址+邮编号码)!  ######@dongwm :不知作者有没有涉及过大数据方向的?我看部分大数据相关的都要用到python这是为什么?Hadoop整个生态圈都是Java的,python的定位是什么?######@dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢?######@dongwm : 按照“没有银弹”一说,python应该也有自己的适用范围吧,是不是比较适用于机器学习,不适合于web开发呢?######Python被称为「胶水语言」,虽然没有「统治」哪个领域,但是基本上个个领域都把手伸了进去。 机器学习我不熟不敢妄谈是不是更合适。我只能说,Python很适合web开发######使用豆瓣很多年,很喜欢豆瓣的风格。之前一直是在网页端浏览,后来又到了手机app端。我总体感觉豆瓣的进步很快。我想问的问题是,python web一直作为豆瓣的开发首选,是因为什么?还有关于豆瓣的权限模块的设计时,python web发挥了什么优势。作为手机端app的开发,python web会起到什么作用吗?######回复 @机器猫123 : 会的。也许不会开源,但是酱厂里面确实有很多不错的实现######回复 @dongwm : 未来豆瓣会继续用python web衍生开发新的产品吗?######回复 @dongwm : 谢谢老师的回答。######豆瓣选择Python,其实是公司和语言的风格很相似的缘故吧。我们做事喜欢优雅,清晰,高效,这这好也是Python希望的。 豆瓣的基础设施基本都是使用Python完成,包含权限部分,但是Python web和权限模块设计感觉没啥直接的关系,就是抽出来的库和使用它的关系,我也没懂有什么优势或者劣势。 豆瓣app的API后端是使用PythonWeb完成的###### 引用来自“DarkAngel”的评论 @dongwm :其实我是一个狂热的Python爱好者,但是还是想问: 用Python来进行Web开发,与它的其他竞争者相比,有什么优势呢?比如,与Ruby On Rails相比,它能更敏捷(快速)地开发,用写尽量少的代码来完成任务吗?与Node.js和Golang相比,它在支持高并发、多线程、执行性能等方面有什么优势吗?如果一些性能方面的优化可以通过编写C扩展模块,或者通过cffi、Boost.Python、Cython等方式进行优化,Node.js、Ruby等同样可以做到。一句话概括上面的问题就是:是什么原因吸引我们使用Python来进行Web开发呢? 引用来自“dongwm”的评论ROR我倒没有实际的用过,不敢妄言。Python最大的优势是他是一个「胶水」语言,在工作中的各个方向都能看到Python对应的库的身影,学会Python会让你的路比较宽,但是用ruby,可能在我印象里面就是Web开发比较有名。我现在还没有发现做Web开发有比Python效率高的方式。 其实很多人都担心Python的执行效率,然而其实绝大多数情况Python足够快,不快的话要先看看自己是不是用得不对或者不好。现在硬件资源很廉价,除非上升到BAT那种规模,否者基本还没有到达讨论语言瓶颈的问题。现在豆瓣绝大多数基础设施都是使用Python开发的。在Web开发中,我们很少通过写扩展的方式提高性能,其实编程语言一般都不是网站性能的瓶颈,还可以通过其他方式解决。 之前学ROR是因为老师要求用这个,我没有用Python进行Web开发的经验,稍微有一点了解的也只是Flask或者Falcon这种轻量级的,感觉能够快速开发小巧的应用,但是不知道有哪个特别出名的应用或者网站系统是由Python开发的(比如WordPress和Discuz用的PHP,Gitlab用的Ruby,OSC好像用的是Java吧)。Python确实是一种比较万能的语言,但有点万金油却不够专精的感觉。比如在科学计算方面很流行,但是论效率不如Julia,论支持库的丰富和使用广泛度不如Matlab(特别是学校里面,教授做研究或者教学一般都会用Matlab);在系统管理方面看,能用Python干的脚本化工作,用shell或者perl基本上都能干,而且需要写的代码行数说不定更少。如果说用Python进行Web开发效率高,是有特指某一个框架吗,还是泛指? 我在写程序时首先会想到用Python,是因为喜欢tial-and-error这种方式,能够在正式写代码前确认想法能不能实现,能够让我有兴趣和信心继续下去。但真要说起来,能够提供REPL特性的语言也不少。 Python的执行效率貌似永远是Python热门的讨论话题,比如GIL的存在必须要用特殊的方式来优化。像gevent和Tornado之类的存在也适用于高并发的网络连接(不过Python在这方面的性能不一定是最高的,没有看过相关的测试)。再说Python的实现,除了最出名的CPython和PyPy之外,甚至还有为嵌入式设备开发的MicroPython(这也在另一方面说明了Python的万能性)。Dropbox的技术栈中也使用了Python,并且有开发面向性能的Python实现pyston,此外还有Stackless Python(听名字感觉很厉害,虽然其实我并没有去了解这到底是什么),但它家也在用Golang和Rust开发高性能的东西。那么,豆瓣的基础设施实现中,用Python开发的应用效率如何?也有使用除了CPython之外的实现来进行优化吗?(我是不是扯得有点偏题了?) ######回复 @dongwm : 那么用Python来开发Web,是否属于那种会带来这种优势的选择呢?或者有没有哪家公司通过把技术栈切换到Python而带来了这种进步?######回复 @dongwm : 以现在的硬件发展水平,基本上任何数量级的访问都可以通过硬件的堆砌获得支持。不过经常会看到新闻,比如某某公司将它的某某技术构架从XX语言切换到了YY语言,然后获得了性能提升、提高了稳定性、减少了部署的服务器等优势,(我记忆中有看到Twitter的新闻,PHP 7的新闻,还有一些其他的)。######豆瓣每天服务着千万级别的用户(抱歉不能说具体数字)的请求,绝大多数应用和基础设施都是Python实现的。所以应用效率不用担心。虽然可以使用C/C++的扩展提高运行效率,但是我接触的场景里面很少。相当于写扩展的维护性和成本,大家更愿意从架构,算法等方面来解决。######嚯,你的问题好长。 进行Web开发效率高算是泛指,包含django和flask。效率高也体现在它们的第三方扩展和支持比较完善,基本能想到的都有对应的项目支持,这样少造了很多轮子。###### @dongwm :python的确很好,也很强大,我也一直在用,但我大都做的和web方面没有什么联系.而我对web方面挺感兴趣,但自学起来始终不得要领,进展有点慢,大神能否讲一讲web方面的学习经验,或者flask方面的心得.又或者推荐一些关于web好的学习资源.期待您的回答并致谢.###### @dongwm :了解Python基本知识,希望学习一门Python web框架学习后端开发。之前我对部分主流框架进行了一些了解:Django,Tornado,在知乎上有一个非常活跃的群体。在框架的选择问题上,只有最适合你自己、最适合你的团队的框架。编程语言选择也是一个道理,你的团队Python最熟就用Python好了,其实大部分人是没必要太关心框架的性能的,因为你开发的网站根本就是个小站,能上1万的IP的网站已经不多了,上10万的更是很少很少。在没有一定的访问量前谈性能其实是没有多大意义的,因为你的CPU和内存一直就闲着呢。而且语言和框架一般也不会是性能瓶颈,性能问题最常出现在数据库访问和文件读写上。 ######嗯 赞同你的观点。很多人在杞人忧天。先等活到有必要讨论语言的那一天,那时候早就有钱有人有时间,哪怕Python真的不满足,重构呗######@dongwm :Python确实越来越火了,知乎就是python做的,偶尔搞了一点,发现确实很高级,至少比java语言高级一些某些功能Java只需要写100行,而Python可能只要20行。做一些外维系统还是挺方便的,比如日志的提取等,之前学的是2.7版本,现在python3比之前的版本有哪些新特性呢? ######python 3是相当于站在Python2的肩膀上,摒弃了早年设计python 2的错误思想(所以有的地方向前不兼容),加了一些新的语法,比如asyncio,甚至type hint(我不喜欢)。 具体的内容可以看 https://docs.python.org/3/whatsnew/index.html。 总体上和Python 2区别不大。不用纠结Python 2/3###### @dongwm :初入门python,有c、java基础。再看《python基础教程(第二版)》。请问您有推荐的书籍吗?######我个人在知乎专栏写过一篇推荐书的文章 https://zhuanlan.zhihu.com/p/22198827。我建议有一些其他语言基础的同学好好地看看《Python学习手册》,如果你英语比较好,建议直接看原著。《Python基础教程》虽然是一个经典的入门教程,写作风格也相对轻松幽默,但是由于本书写作于2010年,书中有大量内容已经过时,所以不推荐! ========================== Python "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode ch:报错 {   "traceback": "  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/st2actions/container/base.py\", line 99, in _do_run\n    LOG.debug('Performing run for runner: %s' % (runner.runner_id), extra=extra)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 49, in wrapped_f\n    def wrapped_f(*args, **kw):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 206, in call\n    if not self.should_reject(attempt):\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 247, in get\n    else:\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/retrying.py\", line 200, in call\n    try:\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 219, in run\n    result = self.start(action_parameters=action_parameters)\n  File \"/opt/stackstorm/runners/mistral_v2/mistral_v2.py\", line 256, in start\n    **options)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/v2/executions.py\", line 56, in create\n    return self._create('/executions', data)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 95, in _create\n    self._raise_api_exception(resp)\n  File \"/opt/stackstorm/st2/lib/python2.7/site-packages/mistralclient/api/base.py\", line 143, in _raise_api_exception\n    error_message=error_data)\n",         "error": "RemoteError: Remote error: UnicodeEncodeError 'ascii' codec can't encode character u'\\xae' in position 169: ordinal not in range(128)\n[u'Traceback (most recent call last):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/server.py\", line 155, in _process_incoming\\n    failure = None\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 222, in dispatch\\n    if hasattr(endpoint, method):\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/oslo_messaging/rpc/dispatcher.py\", line 192, in _do_dispatch\\n    new_args[argname] = self.serializer.deserialize_entity(ctxt, arg)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/engine/engine_server.py\", line 98, in start_workflow\\n    (rpc_ctx, workflow_identifier, utils.cut(workflow_input),\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 284, in cut\\n    return cut_dict(data, length=length)\\n', u'  File \"/opt/stackstorm/mistral/lib/python2.7/site-packages/mistral/utils/__init__.py\", line 198, in cut_dict\\n    v = str(value)\\n', u\"UnicodeEncodeError: 'ascii' codec can't encode character u'\\\\xae' in position 169: ordinal not in range(128)\\n\"]." }
kun坤 2020-06-15 11:08:13 0 浏览量 回答数 0

回答

本文介绍AliSQL的内核版本更新说明。 MySQL 8.0 20200229 新特性 Performance Agent:更加便捷的性能数据统计方案。通过MySQL插件的方式,实现MySQL实例内部各项性能数据的采集与统计。 在半同步模式下添加网络往返时间,并记录到性能数据。 性能优化 允许在只读实例上进行语句级并发控制(CCL)操作。 备实例支持Outline。 Proxy短连接优化。 优化不同CPU架构下的pause指令执行时间。 添加内存表查看线程池运行情况。 Bug修复 在低于4.9的Linux Kenerls中禁用ppoll,使用poll代替。 修复wrap_sm4_encrypt函数调用错误问题。 修复在滚动审核日志时持有全局变量锁的问题。 修复恢复不一致性检查的问题。 修复io_statistics表出现错误time值的问题。 修复无效压缩算法导致崩溃的问题。 修复用户列与5.6不兼容的问题。 20200110 新特性 Inventory Hint:新增了三个hint, 支持SELECT、UPDATE、INSERT、DELETE 语句,快速提交/回滚事务,提高业务吞吐能力。 性能优化 启动实例时,先初始化Concurrency Control队列结构,再初始化Concurrency Control规则。 异步清除文件时继续取消小文件的链接。 优化Thread Pool性能。 默认情况下禁用恢复不一致性检查。 更改设置变量所需的权限: 设置以下变量所需的权限已更改为普通用户权限: auto_increment_increment auto_increment_offset bulk_insert_buffer_size binlog_rows_query_log_events 设置以下变量所需的权限已更改为超级用户或系统变量管理用户权限: binlog_format binlog_row_image binlog_direct sql_log_off sql_log_bin 20191225 新特性 Recycle Bin:临时将删除的表转移到回收站,还可以设置保留的时间,方便您找回数据。 性能优化 提高短连接处理性能。 使用专用线程为maintain user服务,避免HA失败。 通过Redo刷新Binlog时出现错误会显式释放文件同步锁。 删除不必要的TCP错误日志。 默认情况下启用线程池。 Bug修复 修复慢日志刷新的问题。 修复锁定范围不正确的问题。 修复TDE的Select函数导致的核心转储问题。 20191115 新特性 Statement Queue:针对语句的排队机制,将语句进行分桶排队,尽量把可能具有相同冲突的语句放在一个桶内排队,减少冲突的开销。 20191101 新特性 为TDE添加SM4加密算法。 保护备实例信息:拥有SUPER或REPLICATION_SLAVE_ADMIN权限的用户才能插入/删除/修改表slave_master_info、slave_relay_log_info、slave_worker_info。 提高自动递增键的优先级:如果表中没有主键或非空唯一键,具有自动增量的非空键将是第一候选项。 对系统表和处于初始化状态线程用到的表,不进行Memory引擎到MyISAM引擎的自动转换。 Redo Log刷新到磁盘之前先将Binlog文件刷新到磁盘。 实例被锁定时也会影响临时表。 添加新的基于LSM树的事务存储引擎X-Engine。 性能优化 Thread Pool:互斥优化。 Performance Insight:性能点支持线程池。 参数调整: primary_fast_lookup:会话参数,默认值为true。 thread_pool_enabled:全局参数,默认值为true。 20191015 新特性 TDE:支持透明数据加密TDE(Transparent Data Encryption)功能,可对数据文件执行实时I/O加密和解密,数据在写入磁盘之前进行加密,从磁盘读入内存时进行解密。 Returning:Returning功能支持DML语句返回Resultset,同时提供了工具包(DBMS_TRANS)便于您快捷使用。 强制将引擎从MyISAM/MEMORY转换为InnoDB:如果全局变量force_memory/mysiam_to_innodb为ON,则创建/修改表时会将表引擎从MyISAM/MEMORY转换为InnoDB。 禁止非高权限账号切换主备实例。 性能代理插件:收集性能数据并保存到本地格式化文本文件,采用文件轮循方式,保留最近的秒级性能数据。 Innodb mutex timeout cofigurable:可配置全局变量innodb_fatal_semaphore_wait_threshold,默认值:600。 忽略索引提示错误:可配置全局变量ignore_index_hint_error,默认值:false。 可关闭SSL加密功能。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 Bug修复 支持本地AIO的Linux系统内,在触发线性预读之前会合并AIO请求。 优化表/索引统计信息。 如果指定了主键,则直接访问主索引。 20190915 Bug修复 修复Cmd_set_current_connection内存泄露问题。 20190816 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 Statement Concurrency Control:通过控制并发数应对突发的数据库请求流量、资源消耗过高的语句访问以及SQL访问模型的变化,保证MySQL实例持续稳定运行。 Statement Outline:利用Optimizer Hint和Index Hint让MySQL稳定执行计划。 Sequence Engine:简化获取序列值的复杂度。 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 Performance Insight:专注于实例负载监控、关联分析、性能调优的利器,帮助您迅速评估数据库负载,找到性能问题的源头,提升数据库的稳定性。 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 Bug修复 修复文件大小计算错误的问题。 修复偶尔出现的内存空闲后再次使用的问题。 修复主机缓存大小为0时的崩溃问题。 修复隐式主键与CTS语句的冲突问题。 修复慢查询导致的slog出错问题。 20190601 性能优化 缩短日志表MDL范围,减少MDL阻塞的可能性。 重构终止选项的代码。 Bug修复 修复审计日志中没有记录预编译语句的问题。 屏蔽无效表名的错误日志。 MySQL 5.7基础版/高可用版 20200229 新特性 Performance Agent:更加便捷的性能数据统计方案。通过MySQL插件的方式,实现MySQL实例内部各项性能数据的采集与统计。 在半同步模式下添加网络往返时间,并记录到性能数据。 性能优化 优化不同CPU架构下的pause指令执行时间。 Proxy短连接优化。 添加内存表查看线程池运行情况。 Bug修复 修复DDL重做日志不安全的问题。 修复io_statistics表出现错误time值的问题。 修复更改表导致服务器崩溃的问题。 修复MySQL测试用例。 20200110 性能优化 异步清除文件时继续取消小文件的链接。 优化Thread Pool性能。 thread_pool_enabled参数的默认值调整为OFF。 20191225 新特性 内部账户管理与防范:调整用户权限保护数据安全。 性能优化 提高短连接处理性能。 使用专用线程为maintain user服务,避免HA失败。 删除不必要的TCP错误日志。 优化线程池。 Bug修复 修复读写分离时mysqld进程崩溃问题。 修复密钥环引起的核心转储问题。 20191115 Bug修复 修复主备切换后审计日志显示变量的问题。 20191101 新特性 为TDE添加SM4加密算法。 如果指定了主键,则直接访问主索引。 对系统表和处于初始化状态线程用到的表,不进行Memory引擎到MyISAM引擎的自动转换。 性能优化 Thread Pool:互斥优化。 引入审计日志缓冲机制,提高审计日志的性能。 Performance Insight:性能点支持线程池。 默认开启Thread Pool。 Bug修复 在处理维护用户列表时释放锁。 补充更多TCP错误信息。 20191015 新特性 轮换慢日志:为了在收集慢查询日志时保证零数据丢失,轮换日志表会将慢日志表的csv数据文件重命名为唯一名称并创建新文件。您可以使用show variables like '%rotate_log_table%';查看是否开启轮换慢日志。 性能代理插件:收集性能数据并保存到本地格式化文本文件,采用文件轮轮循方式,保留最近的秒级性能数据。 强制将引擎从MEMORY转换为InnoDB:如果全局变量rds_force_memory_to_innodb为ON,则创建/修改表时会将表引擎从MEMORY转换为InnoDB。 TDE机制优化:添加keyring-rds插件与管控系统/密钥管理服务进行交互。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 Bug修复 修复DDL中的意外错误Error 1290。 20190925 参数修改 将系统变量auto_generate_certs的默认值由true改为false。 增加全局只读变量auto_detact_certs,默认值为false,有效值为[true | false]。 该系统变量在Server端使用OpenSSL编译时可用,用于控制Server端在启动时是否在数据目录下自动查找SSL加密证书和密钥文件,即控制是否开启Server端的证书和密钥的自动查找功能。 20190915 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 20190815 新特性 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 Performance Insight:专注于实例负载监控、关联分析、性能调优的利器,帮助您迅速评估数据库负载,找到性能问题的源头,提升数据库的稳定性。 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 Bug修复 禁止在set rds_current_connection命令中设置rds_prepare_begin_id。 允许更改已锁定用户的信息。 禁止用关键字actual作为表名。 修复慢日志导致时间字段溢出的问题。 20190510版本 新特性:允许在事务内创建临时表。 20190319版本 新特性:支持在handshake报文内代理设置threadID。 20190131版本 升级到官方5.7.25版本。 关闭内存管理功能jemalloc。 修复内部变量net_lenth_size计算错误问题。 20181226版本 新特性:支持动态修改binlog-row-event-max-size,加速无主键表的复制。 修复Proxy实例内存申请异常的问题。 20181010版本 支持隐式主键。 加快无主键表的主备复制。 支持Native AIO,提升I/O性能。 20180431版本 新特性: 支持高可用版。 支持SQL审计。 增强对处于快照备份状态的实例的保护。 MySQL 5.7三节点企业版 20191128 新特性 支持读写分离。 Bug修复 修复部分场景下Follower Second_Behind_Master计算错误问题。 修复表级并行复制事务重试时死锁问题。 修复XA相关bug。 20191016 新特性 支持MySQL 5.7高可用版(本地SSD盘)升级到三节点企业版。 兼容MySQL官方GTID功能,默认不开启。 合并AliSQL MySQL 5.7基础版/高可用版 20190915版本及之前的自研功能。 Bug修复 修复重置备实例导致binlog被关闭问题。 20190909 新特性 优化大事务在三节点强一致状态下的执行效率。 支持从Leader/Follower进行Binlog转储。 支持创建只读实例。 系统表默认使用InnoDB引擎。 Bug修复 修复Follower日志清理命令失效问题。 修复参数slave_sql_verify_checksum=OFF和binlog_checksum=crc32时Slave线程异常退出问题。 20190709 新特性 支持三节点功能。 禁用semi-sync插件。 支持表级并行复制、Writeset并行复制。 支持pk_access主键查询加速。 支持线程池。 合并AliSQL MySQL 5.7基础版/高可用版 20190510版本及之前的自研功能。 MySQL 5.6 20200229 新特性 支持Proxy读写分离功能。 性能优化 优化线程池功能。 优化不同CPU架构下的pause指令执行时间。 Bug修复 修复XA事务部分提交的问题。 20200110 新特性 Thread Pool:将线程和会话分离,在拥有大量会话的同时,只需要少量线程完成活跃会话的任务即可。 性能优化 异步清除文件时继续取消小文件的链接。 Bug修复 修复页面清理程序的睡眠时间计算不正确问题。 修复SELECT @@global.gtid_executed导致的故障转移失败问题。 修复IF CLIENT KILLED AFTER ROLLBACK TO SAVEPOINT PREVIOUS STMTS COMMITTED问题。 20191212 性能优化 删除不必要的tcp错误日志 20191115 Bug修复 修复慢日志时间戳溢出问题。 20191101 Bug修复 修复刷新日志时切换慢日志的问题,仅在执行刷新慢日志时切换慢日志。 修正部分显示错误。 20191015 新特性 轮换慢日志:为了在收集慢查询日志时保证零数据丢失,轮换日志表会将慢日志表的csv数据文件重命名为唯一名称并创建新文件。您可以使用show variables like '%rotate_log_table%';查看是否开启轮换慢日志。 SM4加密算法:添加新的SM4加密算法,取代旧的SM加密算法。 Purge Large File Asynchronously:删除单个表空间时,会将表空间文件重命名为临时文件,等待异步清除进程清理临时文件。 TCP错误信息:返回TCP方向(读取、读取等待、写入等待)错误及错误代码到end_connection事件,并且输出错误信息到错误日志。 引入审计日志缓冲机制,提高审计日志的性能。。 Bug修复 禁用pstack,避免存在大量连接时可能导致pstack无响应。 修复隐式主键与create table as select语句之间的冲突。 自动清除由二进制日志创建的临时文件。 20190815 优化实例锁状态:实例锁定状态下,可以drop或truncate表。 20190130版本 修复部分可能导致系统不稳定的bug。 20181010版本 添加参数rocksdb_ddl_commit_in_the_middle(MyRocks)。如果这个参数被打开,部分DDL在执行过程中将会执行commit操作。 201806** (5.6.16)版本 新特性:slow log精度提升为微秒。 20180426(5.6.16)版本 新特性:引入隐藏索引,支持将索引设置为不可见,详情请参见参考文档。 修复备库apply线程的bug。 修复备库apply分区表更新时性能下降问题。 修复TokuDB下alter table comment重建整张表问题,详情请参见参考文档。 修复由show slave status/show status可能触发的死锁问题。 20171205(5.6.16)版本 修复OPTIMIZE TABLE和ONLINE ALTER TABLE同时执行时会触发死锁的问题。 修复SEQUENCE与隐含主键冲突的问题。 修复SHOW CREATE SEQUENCE问题。 修复TokuDB引擎的表统计信息错误。 修复并行OPTIMIZE表引入的死锁问题。 修复QUERY_LOG_EVENT中记录的字符集问题。 修复信号处理引起的数据库无法停止问题,详情请参见参考文档。 修复RESET MASTER引入的问题。 修复备库陷入等待的问题。 修复SHOW CREATE TABLE可能触发的进程崩溃问题。 20170927(5.6.16)版本 修复TokuDB表查询时使用错误索引问题。 20170901(5.6.16)版本 新特性: 升级SSL加密版本到TLS 1.2,详情请参见参考文档。 支持Sequence。 修复NOT IN查询在特定场景下返回结果集有误的问题。 20170530 (5.6.16)版本 新特性:支持高权限账号Kill其他账号下的连接。 20170221(5.6.16)版本 新特性:支持读写分离简介。 MySQL 5.5 20181212 修复调用系统函数gettimeofday(2) 返回值不准确的问题。该系统函数返回值为时间,常用来计算等待超时,时间不准确时会导致一些操作永不超时。
游客yl2rjx5yxwcam 2020-03-08 13:18:55 0 浏览量 回答数 0

问题

对象继承-重构问题-创建灵活服务的可能性

这应该很容易,但是显然我缺乏基本知识。我有一项服务,可以在BugTracking系统中创建票证。创建插件非常简单。有一个界面 public interface BugTracker { boolean ...
垚tutu 2019-12-01 22:06:32 11 浏览量 回答数 1

回答

假设它BasicDataSource是来自DBCP的,那么是的,您正在使用连接池。但是,您将在每次获取连接时重新创建另一个连接池。您并不是真正地在同一个池中合并连接。您只需在应用程序启动时创建一次连接池,并从中获取每个连接。您也不应将连接保留为实例变量。您还应该关闭连接,语句和结果集,以确保在异常情况下也正确关闭了资源。Java 7的try-with-resources语句对此很有帮助,它会在try块完成后自动关闭资源。 这是一个小的重写: public final class Database { private static final BasicDataSource dataSource = new BasicDataSource(); static { dataSource.setDriverClassName("com.mysql.jdbc.Driver"); dataSource.setUrl("jdbc:mysql://localhost:3306/data"); dataSource.setUsername("USERNAME"); dataSource.setPassword("PASSWORD"); } private Database() { // } public static Connection getConnection() throws SQLException { return dataSource.getConnection(); } } (如有必要,可以将其重构为抽象工厂以提高可插入性) 和 private static final String SQL_EXIST = "SELECT * FROM users WHERE username=? AND password=?"; public boolean exist(User user) throws SQLException { boolean exist = false; try ( Connection connection = Database.getConnection(); PreparedStatement statement = connection.prepareStatement(SQL_EXIST); ) { statement.setString(1, user.getUsername()); statement.setString(2, user.getPassword()); try (ResultSet resultSet = preparedStatement.executeQuery()) { exist = resultSet.next(); } } return exist; } 使用方法如下: try { if (!userDAO.exist(username, password)) { request.setAttribute("message", "Unknown login. Try again."); request.getRequestDispatcher("/WEB-INF/login.jsp").forward(request, response); } else { request.getSession().setAttribute("user", username); response.sendRedirect("userhome"); } } catch (SQLException e) { throw new ServletException("DB error", e); } 但是,在实际的Java EE环境中,您应该将的创建委托DataSource给容器/应用程序服务器,并从JNDI获取它。如果是Tomcat,请另参见本文档的示例:http : //tomcat.apache.org/tomcat-6.0-doc/jndi-resources-howto.html来源:stack overflow
保持可爱mmm 2020-05-17 11:33:27 0 浏览量 回答数 0

回答

2015-07-22 02:15:33?哥们你起来好早啊! ######看日志,是表不存在,是不是复制data 的时候出错了?######应该不是,到第七步都是成功的操作,在第八步启动数据库时提示没有mysql.sock文件,我在网上找半天出没有相类似的问题。在/tmp/及/var/lib/mysql/下都没有这个文件存在。######不知道耶######你要把原来data目录下的文件拷贝到data中,mysqld_multi ######所有文件及文件夹都拷贝到新的data目录下?用在重构吗?
kun坤 2020-06-08 14:54:12 0 浏览量 回答数 0
阿里云企业服务平台 陈四清的老板信息查询 上海奇点人才服务相关的云产品 爱迪商标注册信息 安徽华轩堂药业的公司信息查询 小程序定制 上海微企信息技术相关的云产品 国内短信套餐包 ECS云服务器安全配置相关的云产品 天籁阁商标注册信息 开发者问答 阿里云建站 自然场景识别相关的云产品 万网 小程序开发制作 视频内容分析 视频集锦 代理记账服务 北京芙蓉天下的公司信息查询