serhiy-bzhezytskyy opened a new pull request, #21:
URL: https://github.com/apache/solr-orbit-workloads/pull/21

   ### Description
   
   OpenSearch Benchmark's `nyc_taxis` — the workload this one was ported from — 
defines `date_histogram_fixed_interval` with `"fixed_interval": "60d"`, and 
OpenSearch anchors a fixed interval on the epoch rather than on the query. This 
port asks Solr for `"+30DAY"`, starting at the query's own lower bound:
   
   ```json
   "gap": "+30DAY",
   "start": "2015-01-01T00:00:00Z",
   ```
   
   So the operation reports buckets of half the width, on different edges. 
Nothing fails and no document is lost — the sum over buckets is right — but the 
shape of the histogram, which is what this operation exists to measure, is not 
the shape OpenSearch Benchmark measures.
   
   Two separate corrections are needed, and the first alone is not enough:
   
   ```
   shipped    start=2015-01-01  gap=+30DAY   13 buckets   differs
   width only start=2015-01-01  gap=+60DAY    7 buckets   differs
   this fix   start=2014-11-06  gap=+60DAY    8 buckets   identical to 
OpenSearch
   ```
   
   `2014-11-06T00:00:00Z` is the last 60-day boundary from `1970-01-01` that is 
not after the corpus. Solr counts gaps from `start`, so that is where the 
bucket edges have to begin for them to fall on the instants OpenSearch uses. 
The buckets before the data are empty and `mincount: 1` drops them, so the 
response still starts at the first bucket that holds documents — `2014-11-06`, 
which is where the OpenSearch Benchmark run's first bucket also starts.
   
   ### Which reference
   
   The `nyc_taxis` notes in `nyc_taxis/README.md` say "upstream" four times 
without saying upstream of what, and here it matters: Elastic's `rally-tracks` 
carries a workload of the same name whose values have diverged from OpenSearch 
Benchmark's.
   
   ```
   operation                          OSB    rally-tracks
   date_histogram_fixed_interval      60d    10d
   date_histogram_calendar_interval   month  week
   date_histogram_agg                 day    day
   ```
   
   Checked against `rally-tracks`, this change would look wrong. The port 
follows OpenSearch Benchmark throughout — the shipped 
`date_histogram_calendar_interval` is `+1MONTH`, which is OSB's `month` and not 
rally's `week` — so this adds one sentence to the README naming that repository 
as the reference, once for the whole table.
   
   ### Measured
   
   Both shipped files, both engines, the same 300,649 documents: the operation 
body from this repository is sent to Solr 10.0.0, the OpenSearch Benchmark 
operation body to OpenSearch 3.8.0. Nothing is reconstructed by the harness — 
it reads the two `operations/default.json` files and posts what it finds.
   
   ```
                 Solr                    OpenSearch
     2014-11-06T00:00:00   2996  |  2014-11-06 00:00:00   2996
     2015-01-05T00:00:00  52666  |  2015-01-05 00:00:00  52666
     2015-03-06T00:00:00  54062  |  2015-03-06 00:00:00  54062
     2015-05-05T00:00:00  51300  |  2015-05-05 00:00:00  51300
     2015-07-04T00:00:00  45290  |  2015-07-04 00:00:00  45290
     2015-09-02T00:00:00  47561  |  2015-09-02 00:00:00  47561
     2015-11-01T00:00:00  46009  |  2015-11-01 00:00:00  46009
     2015-12-31T00:00:00    756  |  2015-12-31 00:00:00    756
   ```
   
   8 buckets against 8, identical edges and identical counts. Both bucket sums 
are 300,640, which is Solr's `numFound`, so no matched document falls outside a 
bucket on either side. OpenSearch reports `hits.total.value: 10000` here 
because of its default `track_total_hits` cap — the comparison is between the 
bucket sums, not that number.
   
   The two sibling operations were checked the same way and need no change: 
`date_histogram_calendar_interval` agrees on 12 buckets and 
`date_histogram_facet` on 21, counts identical. A calendar month and a day are 
already aligned by `start: 2015-01-01`, so only the fixed interval was off.
   
   ### What this does not show
   
   The counts above are a 300,649-document sample, not the full corpus. The 
bucket edges do not depend on how much of the corpus is loaded, and neither 
does the agreement between the two engines, but the numbers inside the buckets 
obviously do.
   
   ### Related
   
   None to close. This is the `date_histogram_fixed_interval` difference I 
recorded in #18 as wanting its own PR with its own measurement.
   
   apache/solr-orbit#77 makes the converter emit `+60DAY` for a 
`fixed_interval: 60d` instead of silently defaulting to `+1MONTH`, so the value 
corrected here is one the converter can now produce rather than one only 
present by hand. Neither PR needs the other, and the remaining difference 
between the generated operation and this file — the facet window, still 
`NOW/YEAR-10YEAR` — is being handled separately over there.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to