Vladimir Krivopalov
b91c3fd47e
Use advance_past for single partition upper bound.
...
Instead of advancing to the next partition, try first find the more
precise position using promoted index blocks.
advance_past() only seeks within currently available PI blocks (or reads
the first batch, if never read before) and uses the position if found,
otherwise resorts to advance_to_next_partition()
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:57:45 -08:00
Vladimir Krivopalov
6f8c6a0933
Remove obsolete types and methods.
...
These types and methods are no longer in use since the index_reader is
now consuming promoted index incrementally.
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:57:35 -08:00
Vladimir Krivopalov
0a7a56edd5
Simplify continuous_data_consumer::consume_input() interface.
...
Remove redundant input parameter as continuous_data_consumer derivatives
would only use themselves as a context. So take it internally and make
the function regular (non-template) and having no parameters.
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:57:26 -08:00
Vladimir Krivopalov
7e15e436de
Parse promoted index entries lazily upon request rather than immediately.
...
Now promoted index is converted into an input_stream and skipped over
instead of being consumed immediately and stored as a single buffer.
The only part that is read right away is the deletion time as it is
likely to be there in the already read buffer and reading it should both
be cheap and prevent from reading the whole promoted index if only
deletion time mark is needed.
When accessed, promoted index is parsed in chunks, buffer by buffer, to
limit memory consumption.
Fixes #2981
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:57:15 -08:00
Vladimir Krivopalov
9fdf4b24b5
Add helper input streams: buffer_input_stream and prepended_input_stream.
...
buffer_input_stream is a simple input_stream wrapping a single
temporary_buffer.
prepended_input_stream suits for the case when some data has been read
into a buffer and the rest is still in a stream. It accepts a buffer and
a data_source and first reads from the buffer and then, when it ends,
proceeds reading from the data_source.
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:57:04 -08:00
Vladimir Krivopalov
5dca3100ed
Support skipping over bytes from input stream in parsers based on continuous_data_consumer
...
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:56:55 -08:00
Vladimir Krivopalov
ebdcffab1a
Add performance tests for large partition slicing using clustering keys.
...
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-01-29 11:56:35 -08:00
Takuya ASADA
5f835be3aa
dist/common/scripts/scylla_io_setup: check data_file_directories existance before running iotune
...
Currently we don't check data_file_directories existance before running iotune,
therefore it's shows unclear error message.
To make the message better, check the directory existance on scylla_io_setup.
Fixes #3137
Signed-off-by: Takuya ASADA <syuu@scylladb.com >
Message-Id: <1517200647-6347-1-git-send-email-syuu@scylladb.com >
2018-01-29 18:11:12 +02:00
Avi Kivity
3ce5ad3c7c
Merge seastar upstream
...
* seastar d03896d...770c450 (10):
> tls_test: Fix echo test not setting server trust store
> tls: Do not restrict re-handshake to client
> tls: Actually verify client certificate if requested
> rwlock: add method for determining if an rwlock is locked
> metrics: Add missing `break` to metric_value::operator+()
> memory: fix error injector throwing from noexcept memory allocator functions
> systemwide_memory_barrier: don't use mprotect() on ARM
> sharded: Add const version of sharded::local()
> Add const overloads of front() and back() to the circular_buffer.
> Remove unused lambda captures
Fixes #3072
2018-01-29 15:28:44 +02:00
Botond Dénes
12b1520415
exponential_backoff_retry::do_until_value(): restore indentation
...
Deferred from previous patch.
Signed-off-by: Botond Dénes <bdenes@scylladb.com >
Message-Id: <a10053f6c0ed8a24a74e51f1df4e9a5acf59922d.1517222195.git.bdenes@scylladb.com >
2018-01-29 10:50:01 +00:00
Botond Dénes
e0c082616a
exponential_backoff_retry::do_until_value(): fix use-after-move
...
The exponential_backoff_retry instance is captured by move and is then
indirectly moved again as repeat_until_value() moves the lambda its
passed into its internal state. This caused problems as internal
lambdas store references to the instance and these references go stale
after the move.
To fix this keep hold of the existential_backoff_retry instance in an
enclosing do_with() to make it safe for internal lambdas to reference
it.
Indentation will be fixed by the next patch.
Signed-off-by: Botond Dénes <bdenes@scylladb.com >
Message-Id: <adc49d25a6176756d60e092f3713c0c897732382.1517222195.git.bdenes@scylladb.com >
2018-01-29 10:50:01 +00:00
Duarte Nunes
bfe5a8e96f
utils/managed_vector: Return reference to emplaced element
...
We are in 2018, after all.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
Message-Id: <20180126105417.54285-1-duarte@scylladb.com >
2018-01-26 13:49:56 +01:00
Duarte Nunes
269a4aec23
test.py: Rename streamed_mutation_test
...
96c97ad1db changed the name of the test,
but didn't update the test.py file.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2018-01-26 01:04:23 +01:00
Tomasz Grabiec
1219120c00
Merge cleanup of non-flat mutation readers from Piotr
...
Removes uses of obsolete mutation_reader and streamed_mutation.
Superseded by flat_mutation_reader.
* seastar-dev.git haaawk/cleanup:
Rename streamed_mutation* files to mutation_fragment*
Delete unused streamed_mutation
Delete unused consume_all(streamed_mutation&)
Delete unused fill_buffer_from<streamed_mutation>
Delete unused do_consume_streamed_mutation_flattened
streamed_mutation: delete operator<<
streamed_mutation: delete unused make_forwardable
Delete unused streamed_mutation_opt
Delete unused check_order_of_fragments
Delete unused streamed_mutation_from_mutation
Move test_abandoned_flat_mutation_reader_from_mutation to
Change test_abandoned_streamed_mutation_from_mutation
test_mutation_merger_conforms_to_mutation_source: use flat reader
Delete unused consume(streamed_mutation&)
Delete unused mutation_from_streamed_mutation(streamed_mutation_opt)
Delete unused mutation_from_streamed_mutation(streamed_mutation&)
Delete test_mutation_from_streamed_mutation_from_mutation
Delete unused freeze(streamed_mutation)
Delete test_freezing_streamed_mutations
streamed_mutation: delete unused transform
test_schema_upgrader_is_equivalent_with_mutation_upgrade: use flat reader
streamed_mutation: delete unused consume_mutation_fragments_until
Delete unused merge_mutations
Delete test_mutation_merger
Delete unused make_empty_streamed_mutation
Delete unused streamed_mutation_from_forwarding_streamed_mutation
Delete unused streamed_mutation_assertions
Turn test_streamed_mutation_fragments_have_monotonic_positions
Delete run_conversion_to_mutation_reader_tests
Delete unused assert_that(streamed_mutation_opt)
Delete unused assert_that(streamed_mutation)
Delete unused mutation_reader
perf_fast_forward: delete unused consume_all
Delete unused consume(mutation_reader&, Consumer)
Remove unused mutation_reader_assertions
Remove unused query_state::reader
Delete unused make_reader_returning
Delete unused make_reader_returning_many
Delete unused make_empty_reader
Delete unused mutation_reader_from_flat_mutation_reader
Delete unused flat_mutation_reader_from_mutation_reader
Delete tests for mutation readers converters
dummy_incremental_selector: use flat reader
Delete unused streamed_mutation_from_flat_mutation_reader
perf_fast_forward: use flat reader in test_forwarding_with_restriction
perf_fast_forward: use flat reader in slice_partitions
perf_fast_forward: use flat reader in slice_rows_single_key
perf_fast_forward: use flat reader in test_reading_all
perf_fast_forward: use flat reader in slice_rows
perf_fast_forward: add consume_all_with_next_partition
perf_fast_forward: use flat reader in scan_with_stride_partitions
perf_fast_forward: use flat reader in scan_rows_with_stride
perf_fast_forward: add assert_partition_start
perf_fast_forward: add consume_all(flat_mutation_reader&)
partition_checksum::compute_legacy: use only flat reader
row_cache: rename make_flat_reader to make_reader
row_cache: Delete unused make_reader
test_mvcc: use flat reader
test_cache_population_and_clear_race: use flat reader
test_cache_population_and_update_race: use flat reader
test_continuity_flag_and_invalidate_race: use flat reader
test_update_failure: use flat reader
row_cache_test: use flat reader in verify_has
row_cache_test: use flat reader in has_key
test_sliced_read_row_presence: use flat reader
test_lru: use flat reader
test_update_invalidating: use flat reader
test_scan_with_partial_partitions: use flat reader
test_cache_populates_partition_tombstone: use flat reader
test_tombstone_merging_in_partial_partition: use flat reader
consume_all,populate_range: use flat reader
test_readers_get_all_data_after_eviction: use flat reader
test_tombstones_are_not_missed_when_range_is_invalidated: use flat reader
test_exception_safety_of_reads: use flat reader
test_exception_safety_of_transitioning_from_underlying_read_to_read_from_cache: use flat reader
test_exception_safety_of_partition_scan: use flat reader
test_concurrent_population_before_latest_version_iterator: use flat reader
test_concurrent_populating_partition_range_reads: use flat reader
test_random_row_population: use flat reader
test_continuity_is_populated_when_read_overlaps_with_older_version: use flat reader
test_continuity_population_with_multicolumn_clustering_key: use flat reader
test_continuity_is_populated_for_single_row_reads: use flat reader
flat_mutation_reader_assertions: add produces_compacted
test_concurrent_setting_of_continuity_on_read_upper_bound: use flat reader
test_reading_from_random_partial_partition: use flat reader
test_tombstone_merging_of_overlapping_tombstones_in_many_versions: use flat reader
test_concurrent_reads_and_eviction: use flat reader
test_eviction: use flat reader
test_random_partition_population: use flat reader
test_single_key_queries_after_population_in_reverse_order: use flat reader
test_query_of_incomplete_range_goes_to_underlying: use flat reader
test_cache_delegates_to_underlying_only_once_with_single_partition: use flat reader
test_cache_uses_continuity_info_for_single_partition_query: use flat reader
test_cache_delegates_to_underlying_only_once_empty_single_partition_query: use flat reader
test_cache_delegates_to_underlying_only_once_empty_full_range: use flat reader
test_cache_works_after_clearing: use flat reader
test_cache_delegates_to_underlying: use flat reader
cache_flat_mutation_reader_test: use flat reader
row_cache_alloc_stress: use flat reader
2018-01-24 21:54:08 +01:00
Piotr Jastrzebski
1f9df7aade
Fix master
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 21:00:51 +01:00
Piotr Jastrzebski
96c97ad1db
Rename streamed_mutation* files to mutation_fragment*
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
d590a063c6
Delete unused streamed_mutation
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
6f468802f4
Delete unused consume_all(streamed_mutation&)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
970a863950
Delete unused fill_buffer_from<streamed_mutation>
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
28c36d8884
Delete unused do_consume_streamed_mutation_flattened
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
6c6068f1da
streamed_mutation: delete operator<<
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
f907073bde
streamed_mutation: delete unused make_forwardable
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
a346b32584
Delete unused streamed_mutation_opt
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
7161781586
Delete unused check_order_of_fragments
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
41b23a619e
Delete unused streamed_mutation_from_mutation
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
795102a0f8
Move test_abandoned_flat_mutation_reader_from_mutation to
...
flat_mutation_reader_test.cc
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
6b78956563
Change test_abandoned_streamed_mutation_from_mutation
...
to test_abandoned_flat_mutation_reader_from_mutation
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
9e06711805
test_mutation_merger_conforms_to_mutation_source: use flat reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
916a9c339c
Delete unused consume(streamed_mutation&)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
d9cbb9fedc
Delete unused mutation_from_streamed_mutation(streamed_mutation_opt)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
759271f866
Delete unused mutation_from_streamed_mutation(streamed_mutation&)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
a39ddc8cf6
Delete test_mutation_from_streamed_mutation_from_mutation
...
It tests mutation_from_streamed_mutation that is no longer
used and will be removed in the next patch.
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
a1cf4b4cae
Delete unused freeze(streamed_mutation)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
0f78e9c24a
Delete test_freezing_streamed_mutations
...
It tests freeze(streamed_mutation) which is no longer used
and will be removed in the next patch.
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
05ae4f5d15
streamed_mutation: delete unused transform
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:49 +01:00
Piotr Jastrzebski
1c12884fba
test_schema_upgrader_is_equivalent_with_mutation_upgrade: use flat reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
eec6c2efb5
streamed_mutation: delete unused consume_mutation_fragments_until
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
ca905d38b1
Delete unused merge_mutations
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
8abbabef30
Delete test_mutation_merger
...
merge_mutations is no longer used and will be removed
by the next patch.
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
b82f00fafb
Delete unused make_empty_streamed_mutation
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
fb42022f03
Delete unused streamed_mutation_from_forwarding_streamed_mutation
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
5959337234
Delete unused streamed_mutation_assertions
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
8bdc74c9e2
Turn test_streamed_mutation_fragments_have_monotonic_positions
...
into test_mutation_reader_fragments_have_monotonic_positions
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
a546cfd0d5
Delete run_conversion_to_mutation_reader_tests
...
It's no longer needed because converters are no longer used.
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
05ed42c08d
Delete unused assert_that(streamed_mutation_opt)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
912a38d60b
Delete unused assert_that(streamed_mutation)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
61f0ac257f
Delete unused mutation_reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
a944a1f7f1
perf_fast_forward: delete unused consume_all
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
9ce48bc5fc
Delete unused consume(mutation_reader&, Consumer)
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00
Piotr Jastrzebski
7729bc5e7b
Remove unused mutation_reader_assertions
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-24 20:56:48 +01:00