v18.2.0 Reef 发布

Laura Flores

Reef 是 Ceph 的第 18 个稳定版本。它以礁石鱿 (Sepioteuthis) 命名。

这是 Ceph Reef 的第一个稳定版本。

重要提示

由于 Debian 错误 https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=1030129,我们无法为 18.2.0 版本在 Debian 稳定版 (bookworm) 上构建 Ceph。在 Debian 稳定版中解决此错误后,我们将进行构建。

最后更新 2023年8月7日

目录

Quincy 相比的主要变更

亮点

有关这些变更的更多详细信息,请参阅下面的相关部分。

  • RADOS:RocksDB 已升级到版本 7.9.2。

  • RADOS:RocksDB 迭代开销和性能得到了显著改进。

  • RADOS:perf dumpperf schema 命令已被弃用,取而代之的是新的 counter dumpcounter schema 命令。

  • RADOS:缓存分层现已弃用。

  • RADOS:现在提供了一个新功能“读取均衡器”,它允许用户在集群上平衡每个池的主要 PG。

  • RGW:现在支持多站点配置的存储桶重分片。

  • RGW:多站点复制的稳定性和一致性得到了显著改进。

  • RGW:现在支持使用服务器端加密上传的对象进行压缩。

  • Dashboard:有一个新的 Dashboard 页面,布局得到改进。活动警报和一些重要图表现在显示在卡片内。

  • RBD:已添加分层客户端加密的支持。

  • Telemetry:用户现在可以选择参与遥测公共仪表板中的排行榜。

CephFS

  • CephFS:mds_max_retries_on_remount_failure 选项已重命名为 client_max_retries_on_remount_failure,并从 mds.yaml.in 移动到 mds-client.yaml.in。之所以进行此更改,是因为该选项始终仅由 MDS 客户端使用。

  • CephFS:现在可以根据灾难恢复程序,在 CephFS 发布恢复后删除 lost+found 目录中的恢复文件。

  • AT_NO_ATTR_SYNC 宏已被弃用,取而代之的是标准的 AT_STATX_DONT_SYNC 宏。AT_NO_ATTR_SYNC 宏将在未来删除。

Dashboard

  • 有一个新的 Dashboard 页面,布局得到改进。活动警报和一些重要图表现在显示在卡片内。

  • Cephx 身份验证管理:有一个新的部分专门用于列出和管理 Ceph 集群用户。

  • RGW 服务器端加密:SSE-S3 和 KMS 加密的 rgw 存储桶现在可以在创建存储桶时进行配置。

  • RBD 快照镜像:现在可以通过 UI 配置快照镜像。现在可以安排快照。

  • 一键 OSD 创建向导:OSD 创建已分解为 3 个选项

    1. 成本/容量优化:使用所有 HDD

    2. 吞吐量优化:结合 HDD 和 SSD

    3. IOPS 优化:使用所有 NVMe

    当前的 OSD 创建表单已移动到“高级”部分。

  • 集中式日志记录:现在有一个视图,用于收集 Ceph 集群中的所有日志。

  • 辅助功能 WCAG-AA:Dashboard 符合 WCAG 2.1 A 级标准,因此对于盲人和视力障碍的 Ceph 用户得到了改进。

  • 监控和警报

    • ceph-exporter:现在,Ceph 守护程序的性能指标由 ceph-exporter 导出,ceph-exporter 部署在每个守护程序上,而不是使用 prometheus 导出器。这将减少性能瓶颈。

    • 监控堆栈已更新

      • Prometheus 2.43.0

      • Node-exporter 1.5.0

      • Grafana 9.4.7

      • Alertmanager 0.25.0

MGR

  • mgr/snap_schedule:snap-schedule 管理器模块现在保留的快照数量比 mds_max_snaps_per_dir 配置选项中提到的数量少一个。这意味着可以在下一次计划运行时创建并保留一个新的快照。

  • ceph mgr dump 命令现在在顶层输出 last_failure_osd_epochactive_clients 字段。以前,这些字段是在 always_on_modules 字段下输出的。

RADOS

  • RocksDB 已升级到版本 7.9.2,其中包含多个性能改进和功能。这是第一个可以为每个列族调整 RocksDB 设置的版本,从而可以对存储在 RocksDB 中的不同类型的数据进行更精细的调整。已使用新的默认设置来优化大多数工作负载的性能,在某些情况下会略有下降。这种轻微的下降被 RGW(高达测量的 4K 随机写入 IOPS 提高 13.59%)等用例中压实和写入放大的大幅改进所抵消。

  • PGLog 重复项的修剪现在由大小而不是版本控制。此更改修复了在 PG 分裂操作后在线(在 OSD 中)修剪卡住时发生的 PGLog 膨胀问题。此外,还添加了一种新的离线机制:ceph-objectstore-tool 有一个名为 trim-pg-log-dups 的新操作,该操作针对 OSD 无法启动的情况,因为膨胀的重复项。在这种情况下,OSD 日志中会显示“您可能会受到 THE DUPS BUG 的影响”警告。相关跟踪器:https://tracker.ceph.com/issues/53729

  • RADOS Python 绑定现在能够处理(选择加入)omap 键作为字节对象。这允许与不能解码为 UTF-8 字符串的 RADOS omap 键进行交互。

  • mClock 调度程序:默认调度程序(Quincy 中的默认调度程序)经历了重大的可用性和设计改进,以解决缓慢的回填问题。以下是一些重要的更改

    • balanced 配置文件设置为默认 mClock 配置文件,因为它代表了优先考虑客户端 I/O 和优先考虑恢复 I/O 之间的妥协。然后,用户可以选择 high_client_ops 配置文件以优先考虑客户端 I/O,或者选择 high_recovery_ops 配置文件以优先考虑恢复 I/O。

    • QoS 参数(包括 reservationlimit)现在以 OSD 的 IOPS 容量的比例(范围:0.0 到 1.0)来指定。

    • 成本参数(osd_mclock_cost_per_io_usec_*osd_mclock_cost_per_byte_usec_*)已被删除。操作的成本现在是 OSD 底层设备的随机 IOPS 和最大顺序带宽能力的函数。

    • 降级对象恢复的优先级高于错位对象恢复,因为降级对象存在不与仅仅错位对象存在的数据安全问题。因此,使用 balancedhigh_client_ops mClock 配置文件的回填操作可能比过去进展更慢,当时回填操作使用了“加权优先级队列”(WPQ)调度程序。

    • 所有 mClock 配置文件的 QoS 分配都根据上述修复和增强进行了优化。

    • 有关更多详细信息,请参阅:https://docs.ceph.net.cn/en/reef/rados/configuration/mclock-config-ref/

  • 现在提供了一个新功能“读取均衡器”,它允许用户在集群上平衡每个池的主要 PG。读取均衡器当前作为离线选项通过 osdmaptool 提供。通过向 osdmaptool 提供 osdmap 的副本和他们想要平衡的池,用户可以生成最佳主要 PG 映射的预览,然后可以选择将其应用于他们的集群。有关更多详细信息,请参阅 https://docs.ceph.net.cn/en/latest/dev/balancer-design/#read-balancing

  • ceph mgr dump 命令显示的 active_clients 数组现在有一个 name 字段,显示注册 RADOS 客户端的管理器模块的名称。以前,active_clients 数组显示模块的 RADOS 客户端的地址,但没有显示模块的名称。

  • perf dumpperf schema 命令已被弃用,取而代之的是新的 counter dumpcounter schema 命令。这些新命令添加了对标记的 perf 计数器的支持,并输出现有的未标记的 perf 计数器。一些未标记的 perf 计数器在本版本中已成为标记的,并且在未来的版本中会有更多标记;此类转换的 perf 计数器不再由 perf dumpperf schema 命令发出。

  • 缓存分层现已弃用。

  • BlueStore 的 SPDK 后端现在可以连接到 NVMeoF 目标。这不是官方支持的功能。

RBD

  • compare-and-write C++ API(Image::compare_and_writeImage::aio_compare_and_write 方法)的语义现在与 C API 匹配。比较和写入步骤仅对 len 字节进行操作,即使与它们关联的缓冲区更大。以前的行为是比较到比较缓冲区的尺寸,这容易在条带单元边界处发生微妙的破坏。

  • compare-and-write 操作不再限制为 512 字节扇区。假设正确对齐,现在允许对条带单元(默认情况下为 4MB)进行操作。

  • 有一个新的 rbd_aio_compare_and_writev API 方法,支持比较缓冲区和写入缓冲区上的 scatter/gather。

  • rbd device unmap 命令现在有一个 --namespace 选项。从 Nautilus 14.2.0 开始,RBD 添加了对命名空间的支持,此后可以使用 image-spec 语法映射和取消映射命名空间中的映像。但是,大多数其他命令中可用的相应选项缺失了。

  • 所有 rbd-mirror 守护程序 perf 计数器都已标记,现在仅由新的 counter dumpcounter schema 命令发出。作为转换的一部分,许多计数器也已重命名,以便更好地区分基于日志的镜像和基于快照的镜像。

  • list-watchers C++ API(Image::list_watchers)现在在附加之前清除传递的 std::list。这与 C API(rbd_watchers_list)的语义一致。

  • 密码文件中的尾随换行符(例如:<passphrase-file> 参数的 rbd encryption format 命令和 --encryption-passphrase-file 选项的其他命令)不再被剥离。

  • 已添加分层客户端加密的支持。现在可以以与父映像和每个其他克隆映像不同的加密格式和密码加密克隆映像。保留了固有于未格式化(常规)克隆映像的有效复制写入语义。

RGW

  • 现在支持多站点配置的存储桶重分片。此功能默认启用新部署。现有部署必须手动启用 resharding 功能,所有区域都已升级后才能启用。有关详细信息,请参阅 https://docs.ceph.net.cn/en/reef/radosgw/multisite/#zone-features

  • RGW 策略解析器现在默认拒绝未知的委托人。如果您在 RGW 和 AWS 之间镜像策略,您可能需要将 rgw_policy_reject_invalid_principals 设置为 false。此更改仅影响新设置的策略,不影响已有的策略。

  • RGW 的默认后端已从 RADOS 更改为 file,用于 rgw_enable_ops_logrgw_ops_log_rados 的默认值现在为 false,而 rgw_ops_log_file_path 现在默认设置为 /var/log/ceph/ops-log-$cluster-$name.log

  • RGW 的 pubsub 接口现在使用 bool 返回布尔字段。在此更改之前,/topics/<topic-name> 使用包含引号的字符串 "true""false" 返回 stored_secretpersistent。在此更改之后,这些字段在没有引号的情况下返回,以便可以在 JSON 中将这些字段解码为布尔值。/subscriptions/<sub-name> 返回的 is_truncated 字段也是如此。

  • RGW 对 Action=GetTopicAttributes&TopicArn=<topic-arn> REST API 的响应现在在编码在 Attributes/EndPoint 中的 JSON 字符串中以布尔形式返回 HasStoredSecretPersistent

  • 之前由 rgw-admin 命令在 JSON 格式下呈现为字符串的所有布尔字段现在都以布尔形式呈现。如果您的脚本和工具依赖于此行为,请相应地更新它们。以下是受此更改影响的字段名称列表

    • absolute

    • add

    • admin

    • appendable

    • bucket_key_enabled

    • delete_marker

    • exists

    • has_bucket_info

    • high_precision_time

    • index

    • is_master

    • is_prefix

    • is_truncated

    • linked

    • log_meta

    • log_op

    • pending_removal

    • read_only

    • retain_head_object

    • rule_exist

    • start_with_full_sync

    • sync_from_all

    • syncstopped

    • system

    • truncated

    • user_stats_sync

  • Beast 前端 HTTP 访问日志行现在使用新的可配置项 debug_rgw_access。它与 debug_rgw 具有相同的默认值,但可以独立控制。

  • 用于在 Ceph 内部存储 bucket 通知 Pubsub 功能已被移除。因此,不应再使用 pubsub 区域。以下内容也已被移除:用于操作订阅、获取通知和确认通知的 REST 操作和 radosgw-admin 命令。

    如果发送通知的端点关闭或断开连接,我们建议您使用持久通知以保证其传递。如果消耗通知的系统需要拉取它们(而不是将通知推送到该系统),请为此目的使用外部消息总线(例如,RabbitMQ 或 Kafka)。

  • 通知和主题的序列化格式已更改。这意味着新的和更新的主题将无法被旧的 RGW 读取。我们建议在创建或修改任何通知主题之前完成 RGW 升级。

  • 现在支持对使用服务器端加密上传的对象进行压缩。当同时启用压缩和加密时,压缩会在加密之前应用。较早版本的多站点无法正确复制此类对象,因此所有区域必须升级到 Reef 才能启用 compress-encrypted 区域组功能:请参阅 https://docs.ceph.net.cn/en/reef/radosgw/multisite/#zone-features 并注意安全注意事项。

遥测

  • 选择加入遥测的用户也可以选择加入遥测公共仪表板中的排行榜 (https://telemetry-public.ceph.com/)。此外,用户现在可以提供集群的描述,该描述将公开显示在排行榜中。有关更多详细信息,请参阅:https://docs.ceph.net.cn/en/reef/mgr/telemetry/#leaderboard。要查看示例报告,请运行 ceph telemetry preview。要选择加入遥测,请运行 ceph telemetry on。要选择加入排行榜,请运行 ceph config set mgr mgr/telemetry/leaderboard true。要添加排行榜描述,请运行 ceph config set mgr mgr/telemetry/leaderboard_description ‘Cluster description’(输入您自己的集群描述)。

从 Pacific 或 Quincy 升级

在开始之前,请确保您的集群稳定且正常(没有关闭或恢复的 OSD)。(这是可选的,但建议这样做。)您可以使用 noautoscale 标志在升级期间禁用所有池的自动缩放器。

注意

您可以使用 ceph versions 命令在每个阶段监控升级进度,该命令将告诉您正在运行的 ceph 版本以及每种守护程序的版本。

升级 cephadm 集群

如果您的集群使用 cephadm 部署(首次在 Octopus 中引入),则升级过程完全自动化。要启动升级,

ceph orch upgrade start --image quay.io/ceph/ceph:v18.2.0

使用相同过程升级到未来的次要版本。

可以使用以下命令监控升级进度

ceph orch upgrade status

还可以使用 ceph -s(提供一个简单的进度条)或更详细地使用以下命令监控升级进度

ceph -W cephadm

可以使用以下命令暂停或恢复升级

ceph orch upgrade pause # 暂停 ceph orch upgrade resume # 恢复

或使用以下命令取消

ceph orch upgrade stop

请注意,取消升级只会停止该过程;无法降级回 Pacific 或 Quincy。

升级非 cephadm 集群

注意

  1. 如果您的集群正在运行 Pacific (16.2.x) 或更高版本,您可以选择先将其转换为使用 cephadm,以便升级到 Reef 自动化(参见上文)。有关更多信息,请参阅 https://docs.ceph.net.cn/en/reef/cephadm/adoption/

  2. 如果您的集群正在运行 Pacific (16.2.x) 或更高版本,systemd 单元文件名已更改为包含集群 fsid。要查找集群的正确 systemd 单元文件名,请运行以下命令

    systemctl -l | grep <daemon type>
    

    示例

    $ systemctl -l | grep mon | grep active
    ceph-6ce0347c-314a-11ee-9b52-000af7995d6c@mon.f28-h21-000-r630.service                                           loaded active running   Ceph mon.f28-h21-000-r630 for 6ce0347c-314a-11ee-9b52-000af7995d6c
    
  1. 在升级期间设置 noout 标志。(可选,但建议这样做。)

    ceph osd set noout
    
  2. 通过安装新软件包并重新启动监视器守护程序来升级监视器。例如,在每个监视器主机上

    systemctl restart ceph-mon.target
    

    完成所有监视器的升级后,通过查看 mon 地图中 reef 字符串来验证监视器升级是否完成。该命令

    ceph mon dump | grep min_mon_release
    

    应报告

    min_mon_release 18 (reef)
    

    如果未报告,则表示有一个或多个监视器未升级和重新启动,或者仲裁不包括所有监视器。

  3. 通过安装新软件包并重新启动所有管理器守护程序来升级 ceph-mgr 守护程序。例如,在每个管理器主机上,

    systemctl restart ceph-mgr.target
    

    通过检查 ceph -s 验证 ceph-mgr 守护程序是否正在运行

    ceph -s
    
    ...
    services:
    mon: 3 daemons, quorum foo,bar,baz
    mgr: foo(active), standbys: bar, baz
    ...
    
  4. 通过安装新软件包并在所有 OSD 主机上重新启动 ceph-osd 守护程序来升级所有 OSD

    systemctl restart ceph-osd.target
    
  5. 升级所有 CephFS MDS 守护程序。对于每个 CephFS 文件系统,

    1. 禁用 standby_replay

      ceph fs set <fs_name> allow_standby_replay false
      
    2. 如果从 Pacific <=16.2.5 升级

      ceph config set mon mon_mds_skip_sanity true
      
    3. 将 ranks 数量减少到 1。(如果您计划稍后恢复它,请先记下原始 MDS 守护程序数量。)

      ceph status # ceph fs set <fs_name> max_mds 1
      
    4. 定期检查状态,等待集群停用任何非零 ranks

      ceph status
      
    5. 使用以下命令在适当的主机上关闭所有 standby MDS 守护程序

      systemctl stop ceph-mds@<daemon_name>
      
    6. 确认只有一个 MDS 在线,并且它是您的 FS 的 rank 0

      ceph status
      
    7. 通过安装新软件包并重新启动守护程序来升级最后一个剩余的 MDS 守护程序

      systemctl restart ceph-mds.target
      
    8. 重新启动所有已关闭的 standby MDS 守护程序

      systemctl start ceph-mds.target
      
    9. 恢复卷的原始 max_mds

      ceph fs set <fs_name> max_mds <original_max_mds>
      
    10. 如果从 Pacific <=16.2.5 升级(跟进步骤 5b)

      ceph config set mon mon_mds_skip_sanity false
      
  6. 通过升级软件包并在所有主机上重新启动守护程序来升级所有 radosgw 守护程序

    systemctl restart ceph-radosgw.target
    
  7. 通过禁止 pre-Reef OSD 并启用所有新的 Reef-only 功能来完成升级

    ceph osd require-osd-release reef
    
  8. 如果您在开始时设置了 noout,请务必使用以下命令清除它

    ceph osd unset noout
    
  9. 考虑将您的集群转换为使用 cephadm 部署和编排框架,以简化集群管理和未来的升级。有关将现有集群转换为 cephadm 的更多信息,请参阅 https://docs.ceph.net.cn/en/reef/cephadm/adoption/

升级后

  1. 使用 ceph health 验证集群是否正常。如果您的集群正在运行 Filestore,并且您直接从 Pacific 升级到 Reef,则预计会出现弃用警告。可以使用以下命令暂时抑制此警告

    ceph health mute OSD_FILESTORE
    
  2. 考虑启用 遥测模块,将匿名使用统计信息和崩溃信息发送给 Ceph 上游开发人员。要查看将报告的内容(无需实际将任何信息发送给任何人),

    ceph telemetry preview-all
    

    如果您对报告的数据感到满意,可以使用以下命令选择自动报告高级集群元数据

    ceph telemetry on
    

    可以在 https://telemetry-public.ceph.com/ 找到聚合 Ceph 遥测的公共仪表板。

从较旧版本(如 Octopus)升级

必须先升级到 Pacific (16.2.z)Quincy (17.2.z),然后才能升级到 Reef。

感谢我们的贡献者

我们向 Ceph 社区的所有成员表示感谢,他们通过提出 pull 请求、测试此版本、提供反馈和提出宝贵建议来做出贡献。

如果您有兴趣帮助测试下一个版本 Squid,请加入 #ceph-at-scale Slack 频道。

Reef 版本的发布离不开社区的贡献

Aaryan Porwal ▪ Aashish Sharma ▪ Abhishek Lekshmanan ▪ Adam C. Emerson ▪ Adam King ▪ Adam Kupczyk ▪ Aggelos Toumasis ▪ Aishwarya Mathuria ▪ Alexander Proschek ▪ Alex Handy ▪ Alex Marangone ▪ Alex Ponomarev ▪ Alfonso Martínez ▪ Aliaksei Makarau ▪ Ali Maredia ▪ Amnon Hanuhov ▪ Andreas Teuchert ▪ Andriy Tkachuk ▪ Annabel Li ▪ Anthony D'Atri ▪ Aravind Ramesh ▪ Arthur Outhenin-Chalandre ▪ Aswin Toni ▪ Avan Thakkar ▪ banuchka ▪ Ben Gao ▪ Benoît Knecht ▪ Boris Ranto ▪ Brad Fitzpatrick ▪ Brad Hubbard ▪ Bryan Montalvan ▪ Burt Holzman ▪ caishan ▪ cao lei ▪ Casey Bodley ▪ Christian Kugler ▪ Christopher Hoffman ▪ Christoph Glaubitz ▪ Chunmei Liu ▪ Chunsong Feng ▪ Cole Mitchell ▪ Conrad Hoffmann ▪ Cory Snyder ▪ Dai Zhi Wei ▪ Daniel Gryniewicz ▪ Daniel Persson ▪ Daniel Radjenovic ▪ Dan Mick ▪ Dan van der Ster ▪ Dattaprasad Govekar ▪ David Galloway ▪ Deepak Mahale ▪ Deepika Upadhyay ▪ Dhairya Parmar ▪ dharmendra-jyani ▪ Divyansh Kamboj ▪ Diwakar92 ▪ Dongsheng Yang ▪ Duncan Bellamy ▪ dux ▪ Eneko Lacunza ▪ Eric Ivancich ▪ Ernesto Puerta ▪ Esmaeil Mirvakili ▪ ethanwu ▪ Eunice Lee ▪ Feng Hualong ▪ Francesco Pantano ▪ Francesco Torchia ▪ Francisco J. Solis ▪ Franciszek Stachura ▪ Frank Ederveen ▪ Gabriel BenHanokh ▪ Gabriella S. Roman ▪ Gal Salomon ▪ Ganesh Mahalingam ▪ gaoweinan ▪ gengjichao ▪ Giuseppe Baccini ▪ Greg Farnum ▪ Guillaume Abrioux ▪ Han Fengzhe ▪ Hang Shen ▪ Haomai Wang ▪ haoyixing ▪ Heðin Ejdesgaard ▪ Henry Hirsch ▪ Huber-ming ▪ Huy Nguyen ▪ Igor Fedotov ▪ Ilya Dryomov ▪ Ionut Balutoiu ▪ Iqbal Khan ▪ Jaehoon Shim ▪ James Lakin ▪ James Mcclune ▪ James Page ▪ Jan Sobczak ▪ Jeet Jain ▪ Jeff Layton ▪ J. Eric Ivancich ▪ Jianwei Zhang ▪ Jianxin Li ▪ Jiffin Tony Thottan ▪ jinhong.kim ▪ JinyongHa ▪ João Eduardo Luís ▪ Johannes Liebl ▪ John Mulligan ▪ Jonas Pfefferle ▪ Jos Collin ▪ Josef Johansson ▪ Joseph Sawaya ▪ Josh Durgin ▪ Josh Salomon ▪ Josh Soref ▪ Joshua Baergen ▪ Juan Miguel Olmo Martínez ▪ Judah van der Ster ▪ Justin Caratzas ▪ Kai Hollberg ▪ Kaleb S. Keithley ▪ Kalpesh Pandya ▪ Kamoltat Sirivadhna ▪ Kefu Chai ▪ Kellen Renshaw ▪ Ken Dreyer ▪ Koen Kooi ▪ Konstantin Shalygin ▪ Kotresh Hiremath Ravishankar ▪ krambrod ▪ Krunal Chheda ▪ Kenny Van Alstyne ▪ Kyle McGough ▪ Kyujin Cho ▪ Laura Flores ▪ Laurent Barbe ▪ Lei Zhang ▪ Liav Turkia ▪ lichaochao ▪ liqiang ▪ liuqinfei ▪ Liu Yang ▪ lmgdlmgd ▪ Lorenz Bausch ▪ Luciano Lo Giudice ▪ Lucian Petrut ▪ Luis Domingues ▪ Luís Henriques ▪ Lukas Mayer ▪ luo rixin ▪ Malte Janduda ▪ Manuel Lausch ▪ Marcus Watts ▪ Mark Kogan ▪ Mark Nelson ▪ Martin Ohmacht ▪ Mary Frances ▪ Matan Breizman ▪ Matt Benjamin ▪ Matthew Taylor ▪ Melissa Li ▪ Mer Xuanyi ▪ Miaomiao Liu ▪ Michaela Lang ▪ Michael English ▪ Michael Fritch ▪ Michael J. Kidd ▪ Michal Nasiadka ▪ Mike Perez ▪ Milind Changire ▪ Mingyuan Liang ▪ Mohammad Fatemipour ▪ Mohan Sharma ▪ Moritz Röhrich ▪ Mykola Golub ▪ Myoungwon Oh ▪ Nathan Cutler ▪ N Balachandran ▪ Neeraj Pratap Singh ▪ Neha Ojha ▪ Ngwa Sedrick Meh ▪ Nikhil Kshirsagar ▪ Nikhilkumar Shelke ▪ Niklas Hambüchen ▪ Nitzan Mordechai ▪ Nizamudeen A ▪ Ngwa Sedrick Meh ▪ Omri Zeneva ▪ Ondrej Mosnacek ▪ Or Friedmann ▪ Or Ozeri ▪ Parayya Vastrad ▪ Parth Arora ▪ Patrick C. F. Ernzer ▪ Patrick Donnelly ▪ Patrick Seidensal ▪ Paul Cuzner ▪ Pedro Gonzalez Gomez ▪ Pere Diaz Bou ▪ Pete Zaitcev ▪ Piotr Parczewski ▪ Ponnuvel Palaniyappan ▪ Prasanna Kumar Kalever ▪ Prashant D ▪ Pritha Srivastava ▪ Priya Sehgal ▪ Radoslaw Zarzynski ▪ Rafael Lopez ▪ Ramana Raja ▪ Ranjini Mandyam Narasiodeyar ▪ Redouane Kachach ▪ Richael Zhuang ▪ Rishabh Dave ▪ Robin H. Johnson ▪ Ronen Friedman ▪ Rongqi Sun ▪ Sachin Punadikar ▪ Sage Weil ▪ Sainithin Artham ▪ Sam James ▪ Samuel Just ▪ Sanal Kaarthikeyan ▪ Sarthak Gupta ▪ Satoru Takeuchi ▪ Saurabh Jain ▪ Scott Shambarger ▪ Sebastian Wagner ▪ Sébastien Han ▪ Seena Fallah ▪ Selvakumar ▪ SHANKAR ▪ Shasha Lu ▪ Sheng Qiu ▪ Shilpa Jagannath ▪ shreyanshjain7174 ▪ Shriya Deshmukh ▪ Shun Song ▪ Shu Yu ▪ Sining Wu ▪ Soumya Koduri ▪ Sridhar Seshasayee ▪ Stefan Chivu ▪ Steve Kowalik ▪ stevenhua ▪ Sumedh A. Kulkarni ▪ Sungmin Lee ▪ sunilangadi2 ▪ Sunny Kumar ▪ Svelar ▪ Tamar Shacked ▪ Tao ▪ Tatjana Dehler ▪ Teoman Onay ▪ Thomas Anderson ▪ Tim Serong ▪ Tobias Bossert ▪ Tobias Urdin ▪ Tom Coldrick ▪ Tongliang Deng ▪ Travis Nielsen ▪ Uli Fahrer ▪ umangachapagain ▪ Vallari Agrawal ▪ Vedansh Bhartia ▪ Venky Shankar ▪ Vicente Cheng ▪ Vikhyat Umrao ▪ Ville Ojamo ▪ Volker Theile ▪ Vonesha Frost ▪ Vrushal Chaudhari ▪ Waad Alkhoury ▪ wangfei ▪ Wang Hao ▪ wangtengfei ▪ wangxinyu ▪ wangyingbin ▪ wangyunqing ▪ wanwencong ▪ Wei Wang ▪ weixinwei ▪ Willem Jan Withagen ▪ Wong Hoi Sing Edison ▪ Xavi Garcia ▪ Xiaoliang Yang ▪ Xie Xingguo ▪ Xinyu Huang ▪ Xiubo Li ▪ Xuehan Xu ▪ Yaarit Hatuka ▪ Yang Honggang ▪ ybwang0211 ▪ Yehuda Sadeh ▪ Yibo Cai ▪ Yin Congmin ▪ Yingxin Cheng ▪ Yite Gu ▪ Yixin Jin ▪ Yongseok Oh ▪ Yuli Yang ▪ yuliyang_yewu ▪ Yunfei Guan ▪ Yuri Weinstein ▪ Yuval Lifshitz ▪ Zac Dover ▪ Zack Cerza ▪ zealot ▪ Zhang Song ▪ zhangzhiming ▪ Zhansong Gao ▪ zhikuodu ▪ zhipeng li ▪ Ziye Yang ▪ Zuhair AlSader ▪ 胡玮文 ▪ 郑?°?剑