Skip to content

Conversation

@shehabgamin
Copy link
Contributor

@shehabgamin shehabgamin commented Nov 15, 2025

  • Updates to Sail 0.4.2 and removes installation from source
  • Hopefully closes Sail: OOM on t3a.small machine. #593
  • Adds an empty c8g.4xlarge results file. If only four hardware configurations are allowed, would it be okay to remove c6a.metal in favor of c8g.4xlarge?

cc @alexey-milovidov @rschu1ze

@shehabgamin shehabgamin marked this pull request as ready for review November 15, 2025 04:05
@alexey-milovidov
Copy link
Member

If only four hardware configurations are allowed

Right now we test everything on c7a.metal-48xl, c6a.metal, c6a.4xlarge, c6a.2xlarge, c6a.xlarge, c6a.large, t3a.small, c8g.metal-48xl, c8g.4xlarge (9 machines). It's ok to submit some of them, as the result will be regenerated.

@rschu1ze
Copy link
Member

rschu1ze commented Nov 15, 2025

@shehabgamin Before merging, I like to ask something. There was some earlier discussion about lukewarm vs. cold runs, please see #692 and the linked bug.

I see that the Sail submission does this:

server = SparkConnectServer()
server.start()
_, port = server.listening_address

in sail/query.py.

  1. Is Sail is a persistent server which runs in the background?

  2. If yes, is the server terminated between the three runs for each query?

If the answer to 2. is "no", kindly adjust the script so it does true cold runs - thanks! (I already pushed a commit which removes the "lukewarm" tag).

@shehabgamin
Copy link
Contributor Author

@shehabgamin Before merging, I like to ask something. There was some earlier discussion about lukewarm vs. cold runs, please see #692 and the linked bug.

I see that the Sail submission does this:

server = SparkConnectServer()
server.start()
_, port = server.listening_address

in sail/query.py.

1. Is Sail is a persistent server which runs in the background?

2. If yes, is the server terminated between the three runs for each query?

If the answer to 2. is "no", kindly adjust the script so it does true cold runs - thanks! (I already pushed a commit which removes the "lukewarm" tag).

@rschu1ze

  1. Yes, SparkConnectServer.start() (ref) launches the Sail server in a background thread inside the same Python process.
  2. Yes, a brand new Sail server instance is created for each query, because run.sh invokes query.py once per query.
  3. And yes, the Sail server is terminated between runs, because when query.py exits, the process ends and the background thread (and underlying Sail server instance) dies with it.

@rschu1ze rschu1ze merged commit 9d39c21 into ClickHouse:main Nov 16, 2025
@rschu1ze
Copy link
Member

I updated the Sail submission: #698

@rschu1ze
Copy link
Member

@alexey-milovidov To update the json result files (9 files per system), I currently copy the output from play.clickhouse.com manually into the JSON files. This is too tedious. I see that you did large update PRs (e.g this this this) - are you using some extra automation which I could re-use as well?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sail: OOM on t3a.small machine.

3 participants