Skip to content

Instantly share code, notes, and snippets.

View 9401adarsh's full-sized avatar

Adarsh Ashokan 9401adarsh

  • 01:21 (UTC +05:30)
View GitHub Profile
@9401adarsh
9401adarsh / Google Summer of Code'25: The More The Merrier - Final Project Report.md
Last active August 28, 2025 16:18
This report talks about the feature I delivered as a contributor to Ceph for Google Summer of Code'25.
title date author tags
Improving Persistent Bucket Notifications
2025-08-20
Adarsh Ashokan
ceph
rgw
notifications

start vstart using the following command under build/

MON=1 OSD=1 MDS=0 MGR=0 RGW=1 ../src/vstart.sh -n -d --rgw_port 12000

on aws-cli - set aws-creds based on vstart.sh output.

do the following:

@9401adarsh
9401adarsh / Sharded Topics Testing Plans.md
Last active July 17, 2025 16:32
Testing Document for Topic Creation, Deletion, and Modification for Sharded Queues

Sharded Queue Creation Testing Plan

New Code Tests

Test Case Description Steps Expected Result Pass/Fail
Create Sharded Topic Verify sharded topic creation 1. Create topic with sharding enabled
2. Specify shard count
3. Validate creation
Topic created with correct shard count Pass
Delete Sharded Topic Verify sharded topic deletion 1. Create sharded topic
2. Delete topic
3. Verify cleanup
Topic and all shards deleted completely Pass
Modify Persistent to Non-Persistent Convert topic persistence type 1. Create persistent topic
2. Modify to non-persistent
3. Verify behavior
Topic converted successfully Pass
Change Shard Count Modify number of shards 1. Create topic with N shards2. Change config to M shards3. Apply changes Shard count updated correctly Pass

Sharding Config, Queue - Creation and Deletion on Topic Operations

Configuration Decisions

Sharding Level

  • Config level rather than topic level
  • Provides consistency across all topics

Number of Shards

  • Keep num_shards configurable at config level

Steps to follow:

  • start vstart cluster
$ MON=1 OSD=1 MDS=0 MGR=0 RGW=1 ../src/vstart.sh -n -d
  • on a separate terminal start an HTTP endpoint:
$ wget https://gist.githubusercontent.com/mdonkers/63e115cc0c79b4f6b8b3a6b797e485c7/raw/a6a1d090ac8549dac8f2bd607bd64925de997d40/server.py
$ python server.py 10900