37 error_detail::raise<std::invalid_argument>(
"COLA destination secondary requires a main");
41 if (!
main) error_detail::raise<std::invalid_argument>(
"COLA secondary destination requires an existing main");
93 Compose compose = {}, std::optional<std::uint64_t> common = P::value_width)
112 std::uint64_t
step(std::uint64_t budget = 1) {
117 return index_->step(budget);
119 }
catch (...) {
failed_ =
true;
throw; }
124 error_detail::raise<std::logic_error>(
"COLA local stage is not ready for finalization");
127 merged_ = std::make_shared<native_type const>(
merge_->finish());
138 main_ = std::make_shared<index_type const>(
index_->finish());
146 }
catch (...) {
failed_ =
true;
throw; }
150 if (!
done()) error_detail::raise<std::logic_error>(
"COLA local merge is not ready");
158 std::unique_ptr<index_builder_type>
index_;
165 if (!source) error_detail::raise<std::invalid_argument>(
"null COLA local merge source");
171 error_detail::raise<std::invalid_argument>(
"invalid COLA destination plan");
176 error_detail::raise<std::logic_error>(
"COLA local merge is no longer active");
Declares dual-target main/secondary fractional indexes for COLA.
Definition active_engine.h:18
cola_destination_kind
Definition cola_local_merge.h:25
cola_merge_phase
Definition cola_local_merge.h:26
Merges ordered native streams incrementally with policy-specific value composition.
Definition cola_local_merge.h:31
static cola_destination_plan for_secondary(pair_type main)
Definition cola_local_merge.h:40
cola_destination_plan(cola_destination_kind kind, pair_type main, native_pointer secondary)
Definition cola_local_merge.h:51
native_pointer secondary_target() const noexcept
Definition cola_local_merge.h:46
pair_type main_target() const noexcept
Definition cola_local_merge.h:45
native_pointer secondary_
Definition cola_local_merge.h:50
pair_type main_
Definition cola_local_merge.h:49
cola_destination_kind kind_
Definition cola_local_merge.h:48
cola_destination_kind kind() const noexcept
Definition cola_local_merge.h:44
static cola_destination_plan for_main(pair_type main={}, native_pointer secondary={})
Definition cola_local_merge.h:35
typename cola_index< P >::native_pointer native_pointer
Definition cola_local_merge.h:34
P policy_type
Definition cola_local_merge.h:32
typename cola_index< P >::pair_type pair_type
Definition cola_local_merge.h:33
Definition cola_index.h:496
std::shared_ptr< native_array const > native_pointer
Definition cola_index.h:322
std::shared_ptr< cola_index const > pair_type
Definition cola_index.h:323
Definition cola_local_merge.h:81
std::uint64_t step(std::uint64_t budget=1)
Definition cola_local_merge.h:112
bool failed_
Definition cola_local_merge.h:162
P policy_type
Definition cola_local_merge.h:82
void start_carrier()
Definition cola_local_merge.h:178
cola_local_merge_job & operator=(cola_local_merge_job const &)=delete
typename index_type::pair_type pair_type
Definition cola_local_merge.h:86
cola_merge_phase phase_
Definition cola_local_merge.h:161
pair_type main_
Definition cola_local_merge.h:160
void finish_stage()
Definition cola_local_merge.h:121
cola_local_merge_job(cola_local_merge_job const &)=delete
native_merge_builder< P, native_type, Compose > merge_type
Definition cola_local_merge.h:89
native_pointer secondary_
Definition cola_local_merge.h:159
native_pointer newer_
Definition cola_local_merge.h:155
cola_merge_phase phase() const noexcept
Definition cola_local_merge.h:101
native_pointer merged_
Definition cola_local_merge.h:159
static native_pointer checked(native_pointer source)
Definition cola_local_merge.h:164
bool failed() const noexcept
Definition cola_local_merge.h:102
typename index_type::native_pointer native_pointer
Definition cola_local_merge.h:85
std::unique_ptr< merge_type > merge_
Definition cola_local_merge.h:157
void require_active() const
Definition cola_local_merge.h:174
pair_type carrier_
Definition cola_local_merge.h:160
result_type finish()
Definition cola_local_merge.h:148
bool done() const noexcept
Definition cola_local_merge.h:104
cola_local_merge_job(native_pointer older, native_pointer newer, plan_type plan, Compose compose={}, std::optional< std::uint64_t > common=P::value_width)
Definition cola_local_merge.h:92
cola_local_merge_job(cola_local_merge_job &&) noexcept=default
plan_type plan_
Definition cola_local_merge.h:156
static plan_type checked(plan_type plan)
Definition cola_local_merge.h:168
std::unique_ptr< index_builder_type > index_
Definition cola_local_merge.h:158
bool finished() const noexcept
Definition cola_local_merge.h:103
bool stage_done() const noexcept
Definition cola_local_merge.h:105
native_pointer older_
Definition cola_local_merge.h:155
Definition cola_local_merge.h:55
P policy_type
Definition cola_local_merge.h:56
pair_type carrier
Definition cola_local_merge.h:62
native_pointer secondary
Definition cola_local_merge.h:61
typename cola_index< P >::pair_type pair_type
Definition cola_local_merge.h:57
native_pointer merged_native
Definition cola_local_merge.h:59
typename cola_index< P >::native_pointer native_pointer
Definition cola_local_merge.h:58
pair_type main
Definition cola_local_merge.h:60
Definition native_merge.h:174
Definition profile.h:1168
static profile_array build(std::span< profile_record const > records, std::span< std::uint64_t const > prefix_ceilings={}, std::uint64_t restart_factor=0)
Definition profile.h:1173