You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/nbi.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -380,3 +380,7 @@ $ ais ls ais://.sys-inventory --props chunked,size
380
380
NAME CHUNKED SIZE
381
381
aws/@#/training-data-v5/inv-Tp4nR7kWx yes 1.28GiB
382
382
```
383
+
384
+
## Performance
385
+
386
+
A latency-vs-scale benchmark comparing NBI listing, AIS regular listing, and direct S3 access (boto3) from 1K to 80K objects is available at [`python/tests/perf/nbi/`](../python/tests/perf/nbi/README.md).
Measures listing latency of [Native Bucket Inventory (NBI)](../../../../docs/nbi.md) against two baselines — AIS regular listing and direct S3 access via boto3 — across bucket sizes from 1K to 80K objects.
4
+
5
+
## Background
6
+
7
+
| Path | How it works |
8
+
|---|---|
9
+
|**AIS Regular**| Client sends one request to the AIS proxy. One designated target walks `ListObjectsV2` sequentially (1000 keys/page) and returns the aggregated result. |
10
+
|**NBI creation**| A one-time job that walks S3 (same as Regular) and writes the full bucket namespace as binary inventory chunks on each target's local disk. |
11
+
|**NBI listing**| Subsequent listings read the pre-built inventory chunks from local disk — no S3 calls. |
12
+
|**S3 Direct**| Client calls boto3 `ListObjectsV2` in a pagination loop directly against S3 (MaxKeys=1000, same page size as AIS). |
13
+
14
+
## Setup
15
+
16
+
### 1. Connect to the cluster
17
+
18
+
```bash
19
+
export AIS_ENDPOINT=http://<proxy>:51080
20
+
ais show cluster
21
+
```
22
+
23
+
### 2. Generate source objects (one-time)
24
+
25
+
Objects are 1-byte files uploaded via `aisloader` to an S3-backed bucket. The subdirectory prefix isolates each scale point so they can coexist in the same bucket.
0 commit comments