

copied from: https://claude.ai/share/e4bed98a-9049-44b3-9aee-173bba941120
When a Kafka producer sets partitions explicitly, there are several important trade-offs to consider:
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 893.8G 0 disk
└─sda1 8:1 0 893.7G 0 part /
nvme1n1 259:0 0 1.5T 0 disk
nvme0n1 259:1 0 1.5T 0 disk
├─vg_nvme-lv_1 253:0 0 89.4G 0 lvm
├─vg_nvme-lv_2 253:1 0 89.4G 0 lvm
- to enable our extension to the API when using python (boto3 or aws CLI) the following file has to be placed under:
~/.aws/models/s3/2006-03-01/
(the directory should be created if it dioes not exist)- currently there is no generic solution for other client SDKs
aws --endpoint-url http://localhost:8000 s3 mb s3://fish
how much time did this refasctoring work took?
_ Looking at the timestamps in our conversation, the refactoring work took approximately 45-50 minutes from start to finish.
Timeline Breakdown:
Phase 1: Analysis & Planning (5-10 minutes)
this is a followup on: https://gist.github.com/yuvalif/d50bcc3d27121732ffbbafe7b7146112 for an RGW of version "squid" or above, where bucket notifications and topics are synced between zones
MON=1 OSD=1 MDS=0 MGR=0 ../src/test/rgw/test-rgw-multisite.sh 2
export AWS_ACCESS_KEY_ID=1234567890
-- Lua script to auto-tier S3 object PUT requests | |
-- based on this: https://ceph.io/en/news/blog/2024/auto-tiering-ceph-object-storage-part-2/ | |
-- exit script quickly if it is not a PUT request | |
if Request == nil or Request.RGWOp ~= "put_obj" then | |
return | |
end | |
local threshold = 1024*1024 -- 1MB | |
local debug = true |
bin/radosgw-admin user create --display-name "Ka Boom" --tenant boom --uid ka --access_key ka --secret_key boom
AWS_ACCESS_KEY_ID=ka AWS_SECRET_ACCESS_KEY=boom aws --endpoint-url http://localhost:8000 s3 mb s3://fish
The RGW's frontend is an S3 REST API server, and in this project we would like to use a REST API fuzzer to test the RGW for security issues (and other bugs). Would recommend exploring the Restler tool. Very good intro in this video. Feed it with the AWS S3 OpenAPI spec, and see what happens when we let it connect to the RGW.
Persistent bucket notifications are a very useful and powerful feature. To learn more about it, you can look at this tech talk and usecase example.
Persistent notifications are usually better that synchronous notification, due to several reasons: