4.5. Ceph 对象网关
Ceph 对象网关守护进程不再崩溃,其中 phoneNumbers.addr
是 NULL
在以前的版本中,由于语法错误,对 select * 的查询从 s3object[*].phonenumbers,其中 phoneNumbers.addr 为 NULL;
会导致 Ceph Object Gateway 守护进程崩溃。
在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。
Ceph 对象网关守护进程不再使用 cast (trim)
查询崩溃
在以前的版本中,由于在查询中的修剪跳过类型检查,在查询中的 选择 cast (leading 132140533849470.72 from _3) from s3object; float)from s3object;
,Ceph Object Gateway 守护进程会崩溃。
在这个版本中,检查了类型,并找出是否有错误并报告,不再导致守护进程崩溃。
Ceph 对象网关守护进程不再在 s3select
JSON 查询中使用 "where" 子句崩溃。
在以前的版本中,由于语法错误,s3select
JSON 查询带有 "where" 子句将导致 Ceph 对象网关守护进程崩溃。
在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。
Ceph 对象网关守护进程不再使用 s3 崩溃,选择 phonenumbers.type
query
在以前的版本中,由于语法错误,从 s3object[*].phonenumbers; 选择 phonenumbers.type
的查询会导致 Ceph 对象网关守护进程崩溃。
在这个版本中,发现并报告错误的语法,不再导致守护进程崩溃。
Ceph 对象网关守护进程验证参数,不再崩溃
在以前的版本中,由于缺少参数的 Operator,当尝试访问不存在的参数时,守护进程会崩溃。
在这个版本中,守护进程会验证每个 Operator 的参数数量,守护进程不再崩溃。
Ceph 对象网关守护进程不再使用 trim 命令崩溃
在以前的版本中,由于在查询中修剪跳过类型检查,查询中的 trim (LEADING '1' from '111abcdef111') from s3object;
,Ceph Object Gateway 守护进程会崩溃。
在这个版本中,检查了类型,并识别错误并报告,不再导致守护进程崩溃。
如果输入了大值,Ceph 对象网关守护进程不再崩溃
在以前的版本中,由于值条目太大,对 select DATE_DIFF (SECOND, utcnow (),date_add (year,1111111111111111111, utcnow ())
的查询会导致 Ceph 对象网关守护进程崩溃。
在这个版本中,会识别崩溃并报告错误。
Ceph 对象网关现在解析 CSV 对象,而不处理失败
在以前的版本中,Ceph 对象网关无法正确解析 CSV 对象。当进程失败时,请求将停止,且没有正确的错误消息。
在这个版本中,CSV 解析器可以正常工作,并处理没有故障的 CSV 对象。
恢复以连字符开头的对象版本实例 ID
在以前的版本中,当恢复版本存储桶上的索引时,带有以连字符开头的实例 ID 的对象版本无法正确恢复到存储桶索引中。
在这个版本中,以连字符开头的实例 ID 现在被识别并恢复到存储桶索引中。
多删除功能通知可以正常工作
在以前的版本中,由于内部错误,如代码中的竞争条件,Ceph 对象网关会在执行多删除功能并且为存储桶删除设置通知时意外响应。
在这个版本中,多删除功能通知可以正常工作。
RADOS 对象多部分上传工作流可以正确完成
在以前的版本中,在某些情况下,作为上一上传中创建的多部分上传工作流对象一部分的 RADOS 对象会导致某些部分在上传中完成或停止。
在这个版本中,在多部分上传工作流完成后,所有部分都会正确上传。
属于与存储桶所有者不同的租户的用户现在可以管理通知
在以前的版本中,属于与存储桶所有者不同的租户的用户无法管理通知。例如,修改、获取或删除。
在这个版本中,具有正确权限的任何用户都可以管理存储桶的通知。
删除对存储桶执行 NFS setattr
的功能
在以前的版本中,通过导出作为 NFS 目录更改存储桶中存储的属性会在 Ceph 对象网关存储桶信息缓存中触发不一致。因此,后续的通过 NFS 访问存储桶会失败。
在这个版本中,删除了对存储桶执行 NFS setattr
的功能,并尝试对存储桶执行 NFS setattr
,例如 chown
对目录执行 NFS setattr 无效。
在以后的版本中可能会改变。
添加了可重新划分存储桶布局的测试以防止崩溃
在以前的版本中,通过添加存储桶布局代码来启用动态存储桶重新划分,因此没有检查在动态、即时或重新调度过程中支持存储桶布局的重新划分。因此,如果动态 bucket 重新划分,Ceph 对象网关守护进程会崩溃,而 radosgw-admin
命令会在立即或调度重新划分时崩溃。
在这个版本中,添加了一个可重新划分存储桶布局的测试,崩溃不再发生。当立即和调度重新划分发生时,会显示错误消息。当发生动态存储桶重新划分时,会跳过存储桶。
用户 modify -placement-id
命令现在可以与空 --storage-class
参数一起使用
在以前的版本中,如果在运行 'user modify --placement-id' 命令时没有使用 --storage-class
参数,命令将失败。
在这个版本中,--storage-class
参数可以留空,而不会导致命令失败。
初始化现在只取消注册之前注册的监控
在以前的版本中,在某些情况下,初始化中的错误可能会导致尝试取消注册永不注册的监视。这会导致一些命令行工具无法预测。
在这个版本中,只有之前注册的监视才会取消注册。
现在,多站点复制会在区间维护一致的状态,并防止覆盖已删除的对象
在以前的版本中,多站点复制中的一个竞争条件允许删除的对象从另一个站点复制,从而导致区域之间的状态不一致。因此,接收工作负载的区域最终会结束一些应该被删除的对象。
在这个版本中,添加了一个自定义标头来传递目标区的 trace 字符串,然后针对对象的复制追踪进行检查。如果存在匹配项,则返回 304 响应,防止完整同步覆盖已删除的对象。
Ceph 对象网关的内存占用量显著降低
在以前的版本中,在某些情况下,与 Lua 脚本集成相关的内存泄漏会导致过量 RGW 内存增长。
在这个版本中,泄漏已被修复,Ceph 对象网关的内存占用量显著降低。
在版本的对象操作过程中,存储桶索引性能不再会受到影响
在以前的版本中,在某些情况下会出现空间泄漏,并降低存储桶索引性能。这是因为与对象逻辑头(OLH)更新相关的竞争条件(OLH)与更新期间的存储桶当前版本计算相关。
在这个版本中,OLH 更新操作中的逻辑错误已被修复,在版本的对象操作过程中不会泄漏空间。
删除标记可以与 LC 规则正常工作
在以前的版本中,优化被试图重复使用 sal 对象句柄。因此,无法按预期生成删除标记。
在这个版本中,对 get-object-attributes 重新使用 sal 对象句柄的更改会被恢复,删除标记会被正确创建。
SQL 引擎不再导致 Ceph 对象网关使用非法计算崩溃
在以前的版本中,在某些情况下,SQL 引擎会抛出一个没有处理的异常,从而导致 Ceph 对象网关崩溃。这是因为日期操作中的非法 SQL 计算所致。
在这个版本中,带有发出的错误消息处理异常,而不是崩溃。
来自 s3object 的 select trim (LEADING '1' from '111abcdef111');
查询现在可以在查询中使用大写时工作
在以前的版本中,如果 LEADING
或 TRAILING
在所有大写中编写,则字符串无法正确读取,从而导致一个浮点数类型被称为字符串类型,从而导致输出错误。
在这个版本中,在完成查询前会引入类型检查,LEAD ING
和 TRAILING
可以正常工作。
JSON 解析现在可用于 从 s3object[*] limit 1 查询中选择 _1.authors.name
在以前的版本中,从 s3object[*] limit 1 中的 select _1.authors.name
中给出的匿名数组会给出错误的值输出。
在这个版本中,即使向查询提供了匿名阵列,JSON 解析也可以正常工作。