Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pkg/storage: enable EFOS, excise on snapshot, ingest splitting #116330

Closed
wants to merge 1 commit into from

Conversation

nicktrav
Copy link
Collaborator

The following three cluster settings were introduced in the 23.2 cycle, and are disabled by default in that release:

  • storage.experimental.eventually_file_only_snapshots.enabled,
  • kv.snapshot_receiver.excise.enabled,
  • storage.ingest_split.enabled.

Enable all three by default, in preparation for 24.1.

Fixes #115432.

Copy link

blathers-crl bot commented Dec 13, 2023

It looks like your PR touches production code but doesn't add or edit any test code. Did you consider adding tests to your PR?

🦉 Hoot! I am a Blathers, a bot for CockroachDB. My owner is dev-inf.

@cockroach-teamcity
Copy link
Member

This change is Reviewable

@nicktrav
Copy link
Collaborator Author

Going to wait until cockroachdb/pebble#3147 makes its way up into Cockroach before landing this.

@nicktrav nicktrav force-pushed the nickt.storage-env-vars branch 2 times, most recently from ee7a715 to 9af9bc7 Compare December 13, 2023 19:50
Copy link
Member

@itsbilal itsbilal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM once the underlying bugfix lands

@@ -144,9 +144,9 @@ var UseExciseForSnapshots = settings.RegisterBoolSetting(
var IngestSplitEnabled = settings.RegisterBoolSetting(
settings.SystemOnly,
"storage.ingest_split.enabled",
"set to true to use ingest-time splitting to lower write-amplification (experimental)",
"set to false to disable ingest-time splitting to lower write-amplification (experimental)",
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: it currently sounds like disabling ingest-time splitting is the experimental option. We could probably reword this as "set to false to disable experimental ingest-time splitting that lowers write-amp", or drop the experimental altogether seeing as if it's defaulting to true, we should be able to stand behind it by the time 24.1 comes out.

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done.

@nicktrav nicktrav force-pushed the nickt.storage-env-vars branch 2 times, most recently from b8ff822 to 705f454 Compare December 13, 2023 20:48
itsbilal added a commit to itsbilal/cockroach that referenced this pull request Dec 18, 2023
cockroachdb/pebble@48b54c29 sstable: fix incorrect range key mask in virtualLast()

Informs cockroachdb#116330.

Release note: None.

Epic: none
craig bot pushed a commit that referenced this pull request Dec 18, 2023
116633: server: dynamically increase compaction concurrency during downloads r=dt a=dt

Early in an online restore, a workload may not be able to utilize
all CPU due to the high latency of accessing still-remote data meaning
that many or most queries spend most of their time waiting rather than
executing. During this phase, increasing the compaciton concurrency can
expedite getting data downloaded, to reduce that latency and improve the
workload performance.

However later in the download phase, when more of the most accessed data
has been downloaded, the workload itself may be able to execute fast enough
that it requires the majority of available CPU. At this point, excessive
CPU usage by download compactions will actually negatively impact the workload
performance.

Thus it is desirable to maximize compaction concurrency when CPU is available
but reduce it when becomes scarce.

This change introduces an additional goroutine to the download call that
monitors CPU usage and adjusts compaction concurrency up and down based on
the CPU usage being below 70% or above 80% respectively.

Release note: none.
Epic: none.

116670: go.mod: bump Pebble to 48b54c29d8fe r=RaduBerinde a=itsbilal

cockroachdb/pebble@48b54c29 sstable: fix incorrect range key mask in virtualLast()

Informs #116330.

Release note: None.

Epic: none

Co-authored-by: David Taylor <[email protected]>
Co-authored-by: Bilal Akhtar <[email protected]>
The following three cluster settings were introduced in the 23.2 cycle,
and are disabled by default in that release:

- `storage.experimental.eventually_file_only_snapshots.enabled`,
- `kv.snapshot_receiver.excise.enabled`,
- `storage.ingest_split.enabled`.

Enable all three by default, in preparation for 24.1.

Fixes cockroachdb#115432.

Release note: None.
@nicktrav nicktrav force-pushed the nickt.storage-env-vars branch from 705f454 to 4dd06b5 Compare December 18, 2023 20:15
@nicktrav nicktrav marked this pull request as ready for review December 18, 2023 20:15
@nicktrav nicktrav requested a review from a team as a code owner December 18, 2023 20:15
@nicktrav nicktrav requested a review from RaduBerinde December 18, 2023 20:15
Copy link
Member

@itsbilal itsbilal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

itsbilal added a commit to itsbilal/cockroach that referenced this pull request Dec 20, 2023
Previously, we'd fall back to the 3 second consistency
checker EventuallyFileOnlySnapshot (EFOS) wait in roachtests,
which was slowing all of
them down when we ran every replica through the consistency
checker in post-test assertions. This change speeds up that
consistency check in roachtest post-test assertions by
flipping a new cluster setting to speed up EFOS waits for
consistency checks after a roachtest finishes.

Epic: none
Unblocks cockroachdb#116330.

Release note: None
@itsbilal
Copy link
Member

#116892 will unblock the tests in this PR.

itsbilal added a commit to itsbilal/cockroach that referenced this pull request Dec 21, 2023
Previously, we'd fall back to the 3 second consistency
checker EventuallyFileOnlySnapshot (EFOS) wait in roachtests,
which was slowing all of
them down when we ran every replica through the consistency
checker in post-test assertions. This change speeds up that
consistency check in roachtest post-test assertions by
flipping a new cluster setting to speed up EFOS waits for
consistency checks after a roachtest finishes.

Epic: none
Unblocks cockroachdb#116330.

Release note: None
craig bot pushed a commit that referenced this pull request Dec 21, 2023
116089: changefeedccl: support attributes in pubsub sink r=jayshrivastava a=jayshrivastava

This change adds support for including the table name along with each row/batch
sent by the v2 pubsub sink (enabled by default). The table name is passed
inside pubsub attributes. Attributes are stored in a `map[string]string` and passed
emitted alongside each with each message/batch.

To enable this feature, the uri parameter `with_table_name_attribute=true` must be added
to the sink uri.

The key for the table name in the attribute map will be `TABLE_NAME`. Because
this change needs to be backported, it is as small as possible to minimize risk.
This feature can be expanded upon later to be more generic (ex. use changefeed
options instead of env var, use cdc queries to specify custom attributes,
use a generic metadata struct instead of tablename string, pass metadata
to different sinks and not just pubsub etc). Because this feature will be expanded
in the future, the release note is intentionally left blank.

Release note: None
Closes: #115426

116892: storage: add setting to seed up consistency checks in tests r=RaduBerinde a=itsbilal

Previously, we'd fall back to the 3 second consistency checker EventuallyFileOnlySnapshot (EFOS) wait in roachtests, which was slowing all of
them down when we ran every replica through the consistency checker in post-test assertions. This change speeds up that consistency check in roachtest post-test assertions by flipping a new cluster setting to speed up EFOS waits for consistency checks after a roachtest finishes.

Epic: none
Unblocks #116330.

Release note: None

Co-authored-by: Jayant Shrivastava <[email protected]>
Co-authored-by: Bilal Akhtar <[email protected]>
@itsbilal
Copy link
Member

itsbilal commented Jan 3, 2024

Closing as #117116 has landed.

@itsbilal itsbilal closed this Jan 3, 2024
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.

storage: enable excise-on-snapshot and EFOS by default
3 participants