Skip to content

Commit 4a715a3

Browse files
Copilotmykaul
andcommitted
Add clarifying comments about paging behavior
Explain that system.local always has exactly 1 row and will never require additional pages, while system.peers might need multiple pages only for very large clusters (>1000 nodes). This addresses the concern about serial page fetching - in practice, there's no performance degradation because: 1. First pages are fetched in parallel via wait_for_responses 2. system.local never has additional pages (always 1 row) 3. system.peers rarely has additional pages (only for >1000 nodes) 4. Additional pages within a query must be serial (CQL protocol) Co-authored-by: mykaul <4655593+mykaul@users.noreply.github.com>
1 parent d7ac847 commit 4a715a3

1 file changed

Lines changed: 6 additions & 0 deletions

File tree

cassandra/cluster.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3660,6 +3660,8 @@ def _try_connect(self, host):
36603660
peers_query, timeout=self._timeout)
36613661

36623662
# Fetch all pages if there are more results
3663+
# Note: system.local always has exactly 1 row, so it will never have additional pages
3664+
# system.peers might have multiple pages for very large clusters (>1000 nodes)
36633665
peers_result = self._fetch_all_pages(connection, peers_result, peers_query, self._timeout)
36643666
local_result = self._fetch_all_pages(connection, local_result, local_query, self._timeout)
36653667

@@ -3841,6 +3843,8 @@ def _refresh_node_list_and_token_map(self, connection, preloaded_results=None,
38413843
peers_query, local_query, timeout=self._timeout)
38423844

38433845
# Fetch all pages if there are more results
3846+
# Note: system.local always has exactly 1 row, so it will never have additional pages
3847+
# system.peers might have multiple pages for very large clusters (>1000 nodes)
38443848
peers_result = self._fetch_all_pages(connection, peers_result, peers_query, self._timeout)
38453849
local_result = self._fetch_all_pages(connection, local_result, local_query, self._timeout)
38463850

@@ -4148,6 +4152,8 @@ def wait_for_schema_agreement(self, connection=None, preloaded_results=None, wai
41484152
peers_query, local_query, timeout=timeout)
41494153

41504154
# Fetch all pages if there are more results
4155+
# Note: system.local always has exactly 1 row, so it will never have additional pages
4156+
# system.peers might have multiple pages for very large clusters (>1000 nodes)
41514157
peers_result = self._fetch_all_pages(connection, peers_result, peers_query, timeout)
41524158
local_result = self._fetch_all_pages(connection, local_result, local_query, timeout)
41534159
except OperationTimedOut as timeout:

0 commit comments

Comments
 (0)