Benchmark¶
250M collection with full-event payload¶
Collection parameters:
Collection size: 250_000_000
Collection entity: Luna Platform event
Vector parameters: Luna Platform face descriptor, version 65
Payload:
The full-event payload has been added to the collection. Event create times are distributed evenly over 2 months, gender and age are distributed evenly within acceptable ranges.
Payload example:
{
"event_id": "3cd1c820-5a07-4316-aaec-3be0572009f8",
"account_id": "00000000-0000-4000-b000-316351263689",
"create_time": "2025-07-15T20:00:00.518400-04:00",
"end_time": "2025-07-15T20:00:00.518400-04:00",
"external_id": "",
"handler_id": "00000100-0001-42c5-a42d-2a4d884ccd83",
"source": null,
"stream_id": null,
"top_match": null,
"match_result": null,
"face_detections": null,
"body_detections": null,
"face_id": null,
"attach_result": [],
"gender": 1,
"age": 32,
"emotion": null,
"ethnic_group": 2,
"tags": null,
"user_data": "",
"location": {
"city": null,
"area": null,
"district": null,
"street": null,
"house_number": null,
"geo_position": null
},
"mask": null,
"track_id": null,
"liveness": null,
"deepfake": null,
"body_basic_attributes": null,
"upper_body": null,
"lower_body": null,
"accessories": null,
"meta": null
}
Collection indexes built:
PUT /collections/1839577008682386853/index?wait=true
{"field_name": "create_time", "field_schema": "datetime"}
PUT /collections/1839577008682386853/index?wait=true
{"field_name": "age", "field_schema": "integer"}
PUT /collections/1839577008682386853/index?wait=true
{"field_name": "gender", "field_schema": "integer"}
Hardware details:
Processor: Intel(R) Xeon(R) Gold 6240R CPU @ 2.40GHz, 96 cpu
Memory: RAM 376G
The Luna Python Matcher Proxy integration performance benchmark results:
filter case |
filtered share, % |
concurrency |
RPS |
mean time, s |
95% time, s |
max time, s |
|---|---|---|---|---|---|---|
no filters |
100 |
1 |
0,69 |
1,417 |
1,580 |
1,721 |
no filters |
100 |
10 |
0,72 |
13,326 |
15,472 |
16,107 |
create time |
25 |
1 |
0,73 |
1,342 |
1,681 |
2,419 |
create time |
25 |
10 |
2,01 |
4,936 |
6,187 |
7,505 |
create time |
10 |
1 |
0,82 |
1,226 |
1,375 |
1,974 |
create time |
10 |
10 |
6,09 |
1,629 |
1,811 |
1,857 |
create time |
1,5 |
1 |
2,94 |
0,351 |
0,387 |
0,423 |
create time |
1,5 |
10 |
26.53 |
0,369 |
0,414 |
0,465 |
gender |
50 |
1 |
0,58 |
1,7 |
2,530 |
2,586 |
gender |
50 |
1 |
0,81 |
11,960 |
13,593 |
13,833 |
time + gender |
12,5 |
1 |
1,07 |
0,823 |
1,494 |
1,746 |
time + gender |
12,5 |
10 |
2,45 |
4,005 |
4,773 |
5,761 |
age |
1 |
1 |
1,19 |
0,818 |
0,99 |
1,163 |
age |
1 |
10 |
2,08 |
4,734 |
4,909 |
5,600 |
50M collection with minimal-event payload¶
Collection parameters:
Collection size: 50_000_000
Collection entity: Luna Platform event
Vector parameters: Luna Platform face descriptor, version 65
Payload:
The minimal-event payload has been added to the collection.
Payload example:
{
"event_id": "3cd1c820-5a07-4316-aaec-3be0572009f8"
}
Hardware details:
Processor: Intel(R) Xeon(R) Gold 6240R CPU @ 2.40GHz, 96 cpu
Memory: RAM 376G
The Luna Python Matcher Proxy integration performance benchmark results:
filter case |
filtered share, % |
exact search |
concurrency |
RPS |
mean time, s |
95% time, s |
max time, s |
|---|---|---|---|---|---|---|---|
no filters |
100 |
true |
1 |
1,38 |
0,730 |
0,769 |
0,784 |
no filters |
100 |
true |
10 |
4,71 |
2,172 |
2,464 |
2,569 |
For comparison, another Luna Python Matcher Proxy integration - Cached matcher (Matcherlib) performance benchmark results:
Note
The Cached matcher (Matcherlib) does not support filtering and works only on face lists, but to enable comparison, a similar case is simulated. Search is performed on a face list of a similar size with minimal targets and no enrichment.
filter case |
filtered share, % |
exact search |
concurrency |
RPS |
mean time, s |
95% time, s |
max time, s |
|---|---|---|---|---|---|---|---|
no filters |
100 |
true |
1 |
3,57 |
0,280 |
0,286 |
0,291 |
no filters |
100 |
true |
10 |
3,88 |
2,521 |
3,444 |
4,357 |