Commit 4432da55 authored by Mark Chao's avatar Mark Chao

Merge branch '339141-remove-internal-id-feature-flag' into 'master'

Remove use_insert_all_in_internal_id feature flag

See merge request gitlab-org/gitlab!69598
parents cf825e60 26a8a7ff
...@@ -223,7 +223,6 @@ class InternalId < ApplicationRecord ...@@ -223,7 +223,6 @@ class InternalId < ApplicationRecord
# If another process was faster in doing this, we'll end up with that record # If another process was faster in doing this, we'll end up with that record
# when we do the lookup after the insert. # when we do the lookup after the insert.
def create_record def create_record
if Feature.enabled?(:use_insert_all_in_internal_id, default_enabled: :yaml)
scope[:project].save! if scope[:project] && !scope[:project].persisted? scope[:project].save! if scope[:project] && !scope[:project].persisted?
scope[:namespace].save! if scope[:namespace] && !scope[:namespace].persisted? scope[:namespace].save! if scope[:namespace] && !scope[:namespace].persisted?
...@@ -234,24 +233,11 @@ class InternalId < ApplicationRecord ...@@ -234,24 +233,11 @@ class InternalId < ApplicationRecord
last_value: initial_value(subject, scope) last_value: initial_value(subject, scope)
} }
InternalId.insert_all([attributes]) InternalId.insert(attributes)
lookup
else
begin
subject.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
InternalId.create!(
**scope,
usage: usage_value,
last_value: initial_value(subject, scope)
)
end
rescue ActiveRecord::RecordNotUnique
lookup lookup
end end
end end
end
end
class ImplicitlyLockingInternalIdGenerator class ImplicitlyLockingInternalIdGenerator
# Generate next internal id for a given scope and usage. # Generate next internal id for a given scope and usage.
...@@ -344,7 +330,6 @@ class InternalId < ApplicationRecord ...@@ -344,7 +330,6 @@ class InternalId < ApplicationRecord
end end
def create_record!(subject, scope, usage, value) def create_record!(subject, scope, usage, value)
if Feature.enabled?(:use_insert_all_in_internal_id, default_enabled: :yaml)
scope[:project].save! if scope[:project] && !scope[:project].persisted? scope[:project].save! if scope[:project] && !scope[:project].persisted?
scope[:namespace].save! if scope[:namespace] && !scope[:namespace].persisted? scope[:namespace].save! if scope[:namespace] && !scope[:namespace].persisted?
...@@ -355,21 +340,11 @@ class InternalId < ApplicationRecord ...@@ -355,21 +340,11 @@ class InternalId < ApplicationRecord
last_value: value last_value: value
} }
result = InternalId.insert_all([attributes]) result = InternalId.insert(attributes)
raise RecordAlreadyExists if result.empty? raise RecordAlreadyExists if result.empty?
value value
else
begin
subject.transaction(requires_new: true) do # rubocop:disable Performance/ActiveRecordSubtransactions
internal_id = InternalId.create!(**scope, usage: usage, last_value: value)
internal_id.last_value
end
rescue ActiveRecord::RecordNotUnique
raise RecordAlreadyExists
end
end
end end
def arel_table def arel_table
......
---
name: use_insert_all_in_internal_id
introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/68617
rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/339141
milestone: '14.3'
type: development
group: group::project management
default_enabled: false
...@@ -243,44 +243,16 @@ RSpec.describe InternalId do ...@@ -243,44 +243,16 @@ RSpec.describe InternalId do
stub_feature_flags(generate_iids_without_explicit_locking: false) stub_feature_flags(generate_iids_without_explicit_locking: false)
end end
context 'when the insert all feature flag is enabled' do
before do
stub_feature_flags(use_insert_all_in_internal_id: true)
end
it_behaves_like 'a monotonically increasing id generator'
end
context 'when the insert all feature flag is disabled' do
before do
stub_feature_flags(use_insert_all_in_internal_id: false)
end
it_behaves_like 'a monotonically increasing id generator' it_behaves_like 'a monotonically increasing id generator'
end end
end
context 'when the explicit locking feature flag is enabled' do context 'when the explicit locking feature flag is enabled' do
before do before do
stub_feature_flags(generate_iids_without_explicit_locking: true) stub_feature_flags(generate_iids_without_explicit_locking: true)
end end
context 'when the insert all feature flag is enabled' do
before do
stub_feature_flags(use_insert_all_in_internal_id: true)
end
it_behaves_like 'a monotonically increasing id generator'
end
context 'when the insert all feature flag is disabled' do
before do
stub_feature_flags(use_insert_all_in_internal_id: false)
end
it_behaves_like 'a monotonically increasing id generator' it_behaves_like 'a monotonically increasing id generator'
end end
end
describe '#increment_and_save!' do describe '#increment_and_save!' do
let(:id) { create(:internal_id) } let(:id) { create(:internal_id) }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment