Tomasz Grabiec
88053b3bc9
tests: sstables: Replace sleep with accurate synchronzation
...
Message-Id: <1533545829-31109-1-git-send-email-tgrabiec@scylladb.com >
2018-08-06 10:09:39 +01:00
Avi Kivity
bb79eccf55
tests: sstable_mutation_test: hack around leak during sstable close
...
sstable close is an asychronous operation launched in the background,
so we can't wait for it. If the test ends before all operations are
complete, the background operations are detected as leaks.
We need either a proper close(), or maybe a sstables::quiesce() that
waits until there are no sstables alive on the shard, but until then,
a hack.
2018-07-23 12:40:46 +03:00
Vladimir Krivopalov
054eb2df66
tests: Rename sstable_assertions.hh -> tests/index_reader_assertions.hh
...
The previous name of the file is moreover confusing as we have several
sstable_assertions classes throughout tests but this header only
contains a class for index reader assertions.
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-07-20 13:50:17 -07:00
Tomasz Grabiec
c46813717c
tests: sstables: Check that reading large index pages does not cause large allocations
...
Reproducer of #3597 .
Message-Id: <1531914040-5427-1-git-send-email-tgrabiec@scylladb.com >
2018-07-18 14:56:41 +03:00
Avi Kivity
2582f53b44
Merge "database and API: Add column_family::get_sstables_by_key" from Amnon
...
"
This is series is for nodetool getsstables.
This patch is based on:
8daaf9833a
With some minor adjustments because of the code change in sstables.
The idea is to allow searching for all the sstables that contains a
given key.
After this patch if there is a table t1 in keyspace k1 and it has a key
called aa.
curl -X GET "http://localhost:10000/column_family/sstables/by_key/k1%3At1?key=aa "
Will return the list of sstables file names that contains that key.
"
* 'amnon/sstable_for_key_v4' of github.com:scylladb/seastar-dev:
Add the API implementation to get_sstables_by_key
api: column_family.json make the get_sstables_for_key doc clearer
column_family: Add the get_sstables_by_partition_key method
sstable test: add has_partition_key test
sstable: Add has_partition_key method
keys_test: add a test for nodetool_style string
keys: Add from_nodetool_style_string factory method
2018-06-10 16:53:56 +03:00
Amnon Heiman
b8e5029991
sstable test: add has_partition_key test
...
This patch adds a test to the has_partition_key method, it creates an
sstable with a partition key and then used that key in the
has_partition_key method to verify that it is there.
It creates a different key and use that to verify that a non exist key
return false.
2018-06-10 16:12:12 +03:00
Paweł Dziepak
418c159057
treewide: require type to copy atomic_cell
2018-05-31 15:51:11 +01:00
Paweł Dziepak
27014a23d7
treewide: require type info for copying atomic_cell_or_collection
2018-05-31 15:51:11 +01:00
Paweł Dziepak
e9d6fc48ac
treewide: require type for creating atomic_cell
2018-05-31 15:51:11 +01:00
Piotr Sarna
fe02c3d0e2
database, sstables, tests: add large_partition_handler
...
This commit makes database, sstables and tests aware
of which large_partition_handler they use.
Proper large_partition_handler is retrievable from config information
and is based on existing compaction_large_partition_warning_threshold_mb
entry. Right now CQL TABLE variant of large_partition_handler is used
in the database.
Tests use a NOP version of large_partition_handler, which does not
depend on CQL queries at all.
2018-05-04 14:38:13 +02:00
Vladimir Krivopalov
b3572acd6e
A few improvements to encoding_stats structure.
...
- Use the same default epoch as Origin
- Use default value for the encoding_stats parameter in sstable::write_components()
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
Message-Id: <846c6d2cbb97d2dd25968cb00b8557c86ff5e35c.1524854727.git.vladimir@scylladb.com >
2018-04-27 22:03:38 +03:00
Vladimir Krivopalov
948c4d79d3
Collect encoding statistics for memtable updates.
...
We keep track of all updates and store the minimal values of timestamps,
TTLs and local deletion times across all the inserted data.
These values are written as a part of serialization_header for
Statistics.db and used for delta-encoding values when writing Data.db
file in SSTables 3.0 (mc) format.
For #1969 .
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
2018-04-25 15:39:14 -07:00
Calle Wilund
b1edf75c8b
types: Make seastar::inet_address the "native" type for CQL inet.
...
Fixes #3187
Requires seastar "inet_address: Add constructor and conversion function
from/to IPv4"
Implements support IPv6 for CQL inet data. The actual data stored will
now vary between 4 and 16 bytes. gms::inet_address has been augumented
to interop with seastar::inet_address, though of course actually trying
to use an Ipv6 address there or in any of its tables with throw badly.
Tests assuming ipv4 changed. Storing a ipv4_address should be
transparent, as it now "widens". However, since all ipv4 is
inet_address, but not vice versa, there is no implicit overloading on
the read paths. I.e. tests and system_keyspace (where we read ip
addresses from tables explicitly) are modified to use the proper type.
Message-Id: <20180424161817.26316-1-calle@scylladb.com >
2018-04-24 23:12:07 +01:00
Vladimir Krivopalov
3a9cb54c76
Merge the pair of index_readers into just one tracking a range.
...
Historically, we had two index_readers per a sstable_mutation_reader,
one for the lower bound and one for the upper bound. Most of public
members of the index_reader class were only called on either of those.
With the changes introduced in #2981 , two readers are even more tied
together as they now have a shared-per-pair list of index pages that
needs proper cleanup and was protruding woefully into the caller code.
This fix re-structures index_reader so that it now keeps track of both
lower and upper bounds. The shared_index_lists structure is encapsulated
within index_reader and becomes an internal detail rather than a
liability.
Fixes #3220 .
Tests: unit (debug, release)
+
Tested using cassandra-stress commands from #3189 .
perf_fast_forward results indicate there is no performance degradation
caused by thix fix.
=========================== Baseline ===================================
running: large-partition-skips
Testing scanning large partition with skips.
Reads whole range interleaving reads with skips according to read-skip pattern:
read skip time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
1 0 0.494458 1000000 2022418 1018 126960 27 0 0 0 0 0 0 0 97.6%
1 1 1.754717 500000 284946 997 127064 6 0 0 3 3 0 0 0 99.9%
1 8 0.551664 111112 201413 997 127064 6 0 0 3 3 0 0 0 99.7%
1 16 0.383888 58824 153232 1001 127080 10 0 0 5 5 0 0 0 99.5%
1 32 0.289073 30304 104832 997 127064 28 0 0 3 3 0 0 0 99.3%
1 64 0.236963 15385 64926 997 127064 122 0 0 3 3 0 0 0 99.2%
1 256 0.172901 3892 22510 997 127064 217 0 0 3 3 0 0 0 95.5%
1 1024 0.117570 976 8301 997 127064 235 0 0 3 3 0 0 0 49.0%
1 4096 0.085811 245 2855 664 27172 375 274 0 3 3 0 0 0 21.4%
64 1 0.512781 984616 1920149 1142 127064 139 0 0 3 3 0 0 0 98.7%
64 8 0.479232 888896 1854833 1001 127080 10 0 0 5 5 0 0 0 99.6%
64 16 0.451193 800000 1773078 997 127064 6 0 0 3 3 0 0 0 99.6%
64 32 0.408684 666688 1631305 997 127064 6 0 0 3 3 0 0 0 99.5%
64 64 0.351906 500032 1420924 997 127064 14 0 0 3 3 0 0 0 99.5%
64 256 0.227008 200000 881026 997 127064 211 0 0 3 3 0 0 0 99.1%
64 1024 0.125803 58880 468032 997 127064 290 0 0 3 3 0 0 0 65.1%
64 4096 0.098155 15424 157139 703 27856 401 267 0 3 3 0 0 0 25.8%
running: large-partition-slicing
Testing slicing of large partition:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000701 1 1427 9 296 6 4 0 3 3 0 0 0 12.4%
0 32 0.000698 32 45827 9 296 6 3 0 3 3 0 0 0 13.9%
0 256 0.000808 256 316920 10 328 6 3 0 3 3 0 0 0 24.9%
0 4096 0.004368 4096 937697 25 808 14 3 0 3 3 0 0 0 45.9%
500000 1 0.001196 1 836 13 412 9 4 0 3 3 0 0 0 22.7%
500000 32 0.001200 32 26664 13 412 9 4 0 3 3 0 0 0 22.2%
500000 256 0.001503 256 170338 14 444 10 4 0 3 3 0 0 0 25.3%
500000 4096 0.004351 4096 941465 30 956 20 4 0 3 3 0 0 0 50.7%
running: large-partition-slicing-clustering-keys
Testing slicing of large partition using clustering keys:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000625 1 1601 7 176 6 0 0 3 3 0 0 0 23.2%
0 32 0.000604 32 53016 7 176 6 0 0 3 3 0 0 0 24.7%
0 256 0.000695 256 368498 8 180 6 0 0 3 3 0 0 0 36.4%
0 4096 0.004083 4096 1003106 20 692 12 1 0 3 3 0 0 0 47.0%
500000 1 0.001198 1 835 12 516 9 3 0 3 3 0 0 0 22.8%
500000 32 0.000981 32 32631 12 388 9 3 0 3 3 0 0 0 29.2%
500000 256 0.001320 256 194011 13 384 10 3 0 3 3 0 0 0 29.0%
500000 4096 0.003944 4096 1038567 25 840 17 2 0 3 3 0 0 0 52.2%
running: large-partition-slicing-single-key-reader
Testing slicing of large partition, single-partition reader:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000849 1 1178 9 488 6 0 0 3 3 0 0 0 16.5%
0 32 0.000661 32 48415 9 296 6 0 0 3 3 0 0 0 22.2%
0 256 0.000756 256 338648 10 328 6 0 0 3 3 0 0 0 33.3%
0 4096 0.004147 4096 987610 22 840 12 1 0 3 3 0 0 0 47.9%
500000 1 0.001041 1 960 13 476 9 3 0 3 3 0 0 0 25.9%
500000 32 0.001020 32 31375 13 412 9 3 0 3 3 0 0 0 29.1%
500000 256 0.001265 256 202373 14 444 10 3 0 3 3 0 0 0 32.0%
500000 4096 0.004121 4096 994014 30 988 18 3 0 3 3 0 0 0 52.7%
running: large-partition-select-few-rows
Testing selecting few rows from a large partition:
stride rows time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
1000000 1 0.000668 1 1498 9 296 6 4 0 3 3 0 0 0 19.8%
500000 2 0.000976 2 2048 13 412 9 4 0 3 3 0 0 0 29.0%
250000 4 0.001408 4 2842 18 572 12 6 0 3 3 0 0 0 28.8%
125000 8 0.002004 8 3993 29 912 19 10 0 3 3 0 0 0 34.0%
62500 16 0.002883 16 5551 50 1584 32 18 0 3 3 0 0 0 41.9%
2 500000 1.053215 500000 474737 1138 127080 120 0 0 5 5 0 0 0 99.7%
running: large-partition-forwarding
Testing forwarding with clustering restriction in a large partition:
pk-scan time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
yes 0.002717 2 736 24 2684 8 16 0 3 3 0 0 0 19.7%
no 0.001004 2 1992 13 412 8 2 0 3 3 0 0 0 30.2%
running: small-partition-skips
Testing scanning small partitions with skips.
Reads whole range interleaving reads with skips according to read-skip pattern:
read skip time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
-> 1 0 1.466523 1000000 681885 1369 139732 33 1 0 0 0 0 0 0 99.7%
-> 1 1 12.792183 500000 39086 6235 177736 5155 0 0 5123 7663 0 0 0 96.4%
-> 1 8 3.451431 111112 32193 6235 177736 5155 0 0 5123 9673 0 0 0 84.8%
-> 1 16 2.223815 58824 26452 6234 177704 5154 0 0 5122 9965 0 0 0 75.0%
-> 1 32 1.512511 30304 20036 6233 177680 5155 1 0 5123 10090 0 0 0 61.8%
-> 1 64 1.129465 15385 13621 6227 177464 5154 0 0 5122 10159 0 0 0 49.5%
-> 1 256 0.733282 3892 5308 6211 175464 5178 24 0 5122 10220 0 0 0 33.8%
-> 1 1024 0.397302 976 2457 5946 142152 5369 217 0 5120 10235 0 0 0 32.1%
-> 1 4096 0.187746 245 1305 5499 81992 5296 142 0 5122 10240 0 0 0 46.8%
-> 64 1 2.428488 984616 405444 7332 177736 5155 25 0 5123 5208 0 0 0 79.9%
-> 64 8 2.262876 888896 392817 6235 177736 5155 0 0 5123 5654 0 0 0 78.1%
-> 64 16 2.137544 800000 374261 6234 177732 5154 0 0 5122 6110 0 0 0 77.1%
-> 64 32 1.862466 666688 357960 6235 177736 5155 0 0 5123 6844 0 0 0 73.7%
-> 64 64 1.547757 500032 323069 6234 177728 5155 0 0 5123 7651 0 0 0 68.7%
-> 64 256 0.914612 200000 218672 6233 177704 5154 0 0 5122 9202 0 0 0 55.5%
-> 64 1024 0.475472 58880 123835 6229 177492 5154 5 0 5122 9930 0 0 0 45.4%
-> 64 4096 0.271239 15424 56865 6158 169480 5257 114 0 5115 10142 0 0 0 44.1%
running: small-partition-slicing
Testing slicing small partitions:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.003209 1 312 3 260 2 7 0 1 1 0 0 0 15.5%
0 32 0.004205 32 7610 16 1428 10 0 0 5 5 0 0 0 15.7%
0 256 0.009830 256 26042 97 8572 62 0 0 31 31 0 0 0 18.7%
0 4096 0.015471 4096 264748 100 8704 64 0 0 32 32 0 0 0 48.4%
500000 1 0.003654 1 274 34 492 33 0 0 32 64 0 0 0 28.7%
500000 32 0.004287 32 7464 40 1260 36 0 0 32 64 0 0 0 26.0%
500000 256 0.009598 256 26673 100 8748 64 4 0 32 64 0 0 0 20.6%
500000 4096 0.014151 4096 289449 119 7892 85 0 0 53 64 0 0 0 54.1%
======================== With the patch ================================
running: large-partition-skips
Testing scanning large partition with skips.
Reads whole range interleaving reads with skips according to read-skip pattern:
read skip time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
1 0 0.468887 1000000 2132711 1018 126960 29 0 0 0 0 0 0 0 98.4%
1 1 1.735113 500000 288166 1001 127080 10 0 0 5 5 0 0 0 99.9%
1 8 0.535616 111112 207447 997 127064 6 0 0 3 3 0 0 0 99.6%
1 16 0.365487 58824 160947 1001 127080 15 0 0 5 5 0 0 0 99.5%
1 32 0.272208 30304 111326 997 127064 21 0 0 3 3 0 0 0 99.3%
1 64 0.224049 15385 68668 997 127064 208 0 0 3 3 0 0 0 99.1%
1 256 0.159247 3892 24440 997 127064 250 0 0 3 3 0 0 0 94.7%
1 1024 0.102107 976 9559 997 127064 292 0 0 3 3 0 0 0 53.6%
1 4096 0.084310 245 2906 664 27172 371 273 0 3 3 0 0 0 20.2%
64 1 0.508340 984616 1936923 1142 127064 129 0 0 3 3 0 0 0 98.1%
64 8 0.470369 888896 1889786 997 127064 6 0 0 3 3 0 0 0 99.6%
64 16 0.439917 800000 1818526 1001 127080 10 0 0 5 5 0 0 0 99.6%
64 32 0.397938 666688 1675358 997 127064 6 0 0 3 3 0 0 0 99.5%
64 64 0.344144 500032 1452972 997 127064 18 0 0 3 3 0 0 0 99.4%
64 256 0.219996 200000 909107 997 127064 251 0 0 3 3 0 0 0 99.1%
64 1024 0.124294 58880 473715 997 127064 284 1 0 3 3 0 0 0 62.2%
64 4096 0.097580 15424 158065 703 27856 400 267 0 3 3 0 0 0 25.3%
running: large-partition-slicing
Testing slicing of large partition:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000733 1 1365 9 296 6 4 0 3 3 0 0 0 19.3%
0 32 0.000705 32 45417 9 296 6 3 0 3 3 0 0 0 15.3%
0 256 0.000830 256 308364 10 328 6 3 0 3 3 0 0 0 26.7%
0 4096 0.004631 4096 884529 25 808 14 3 0 3 3 0 0 0 48.1%
500000 1 0.001184 1 845 13 412 9 4 0 3 3 0 0 0 23.7%
500000 32 0.001199 32 26690 13 412 9 4 0 3 3 0 0 0 21.9%
500000 256 0.001530 256 167296 14 444 10 4 0 3 3 0 0 0 26.8%
500000 4096 0.004379 4096 935474 30 956 19 4 0 3 3 0 0 0 51.5%
running: large-partition-slicing-clustering-keys
Testing slicing of large partition using clustering keys:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000620 1 1614 7 176 6 0 0 3 3 0 0 0 27.4%
0 32 0.000625 32 51218 7 176 6 0 0 3 3 0 0 0 27.0%
0 256 0.000701 256 365148 8 180 6 0 0 3 3 0 0 0 35.2%
0 4096 0.004063 4096 1008130 20 692 12 1 0 3 3 0 0 0 47.6%
500000 1 0.001208 1 827 12 516 9 3 0 3 3 0 0 0 24.3%
500000 32 0.000973 32 32876 12 388 9 3 0 3 3 0 0 0 28.7%
500000 256 0.001315 256 194612 13 384 10 3 0 3 3 0 0 0 29.0%
500000 4096 0.003950 4096 1037068 25 840 17 2 0 3 3 0 0 0 52.7%
running: large-partition-slicing-single-key-reader
Testing slicing of large partition, single-partition reader:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.000844 1 1185 9 488 6 0 0 3 3 0 0 0 16.5%
0 32 0.000656 32 48753 9 296 6 0 0 3 3 0 0 0 23.1%
0 256 0.000751 256 341011 10 328 6 0 0 3 3 0 0 0 34.0%
0 4096 0.004173 4096 981632 22 840 12 1 0 3 3 0 0 0 47.0%
500000 1 0.001036 1 966 13 476 9 3 0 3 3 0 0 0 25.4%
500000 32 0.001014 32 31573 13 412 9 3 0 3 3 0 0 0 27.4%
500000 256 0.001280 256 200044 14 444 10 3 0 3 3 0 0 0 31.8%
500000 4096 0.004081 4096 1003746 30 988 18 3 0 3 3 0 0 0 51.6%
running: large-partition-select-few-rows
Testing selecting few rows from a large partition:
stride rows time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
1000000 1 0.000668 1 1498 9 296 6 3 0 3 3 0 0 0 21.7%
500000 2 0.000958 2 2088 13 412 9 4 0 3 3 0 0 0 27.7%
250000 4 0.001495 4 2676 18 572 12 6 0 3 3 0 0 0 25.8%
125000 8 0.002069 8 3866 29 912 19 10 0 3 3 0 0 0 30.8%
62500 16 0.002856 16 5603 50 1584 32 18 0 3 3 0 0 0 41.7%
2 500000 1.063129 500000 470310 1138 127080 120 0 0 5 5 0 0 0 99.7%
running: large-partition-forwarding
Testing forwarding with clustering restriction in a large partition:
pk-scan time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
yes 0.002567 2 779 24 2684 8 16 0 3 3 0 0 0 21.5%
no 0.001013 2 1975 13 412 8 2 0 3 3 0 0 0 28.9%
running: small-partition-skips
Testing scanning small partitions with skips.
Reads whole range interleaving reads with skips according to read-skip pattern:
read skip time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
-> 1 0 1.349959 1000000 740763 1369 139732 33 1 0 0 0 0 0 0 99.7%
-> 1 1 12.640751 500000 39555 8144 191168 7064 0 0 7032 11481 0 0 0 96.2%
-> 1 8 3.404269 111112 32639 6651 180660 5571 0 0 5539 10505 0 0 0 84.5%
-> 1 16 2.175424 58824 27040 6434 179116 5354 0 0 5322 10365 0 0 0 74.3%
-> 1 32 1.493365 30304 20292 6335 178404 5257 0 0 5225 10294 0 0 0 61.1%
-> 1 64 1.112168 15385 13833 6256 177672 5183 0 0 5151 10217 0 0 0 48.7%
-> 1 256 0.719282 3892 5411 6211 175464 5178 24 0 5122 10220 0 0 0 33.3%
-> 1 1024 0.393236 976 2482 5946 142152 5369 217 0 5120 10235 0 0 0 30.7%
-> 1 4096 0.185284 245 1322 5499 81992 5296 142 0 5122 10240 0 0 0 44.7%
-> 64 1 2.356711 984616 417792 7361 177944 5184 21 0 5152 5266 0 0 0 79.1%
-> 64 8 2.192331 888896 405457 6253 177868 5173 0 0 5141 5690 0 0 0 77.2%
-> 64 16 2.029835 800000 394121 6245 177812 5165 0 0 5133 6132 0 0 0 75.7%
-> 64 32 1.806448 666688 369060 6245 177808 5165 0 0 5133 6864 0 0 0 72.6%
-> 64 64 1.508492 500032 331478 6242 177788 5163 0 0 5131 7667 0 0 0 67.7%
-> 64 256 0.892881 200000 223994 6233 177704 5154 0 0 5122 9202 0 0 0 54.2%
-> 64 1024 0.465715 58880 126429 6229 177492 5154 0 0 5122 9930 0 0 0 44.0%
-> 64 4096 0.266582 15424 57858 6158 169480 5257 114 0 5115 10142 0 0 0 42.3%
running: small-partition-slicing
Testing slicing small partitions:
offset read time (s) frags frag/s aio (KiB) blocked dropped idx hit idx miss idx blk c hit c miss c blk cpu
0 1 0.003113 1 321 3 260 2 0 0 1 1 0 0 0 13.4%
0 32 0.004166 32 7682 16 1428 10 0 0 5 5 0 0 0 14.9%
0 256 0.009813 256 26088 97 8572 62 0 0 31 31 0 0 0 18.4%
0 4096 0.014798 4096 276794 100 8704 64 0 0 32 32 0 0 0 46.3%
500000 1 0.003700 1 270 34 492 33 0 0 32 64 0 0 0 28.4%
500000 32 0.004030 32 7940 40 1260 36 0 0 32 64 0 0 0 27.8%
500000 256 0.009514 256 26908 100 8748 64 0 0 32 64 0 0 0 20.2%
500000 4096 0.013368 4096 306413 119 7892 85 0 0 53 64 0 0 0 53.6%
Signed-off-by: Vladimir Krivopalov <vladimir@scylladb.com >
Message-Id: <a72818f79ca4081a606424545b0053fa581d49e7.1522173144.git.vladimir@scylladb.com >
2018-03-29 15:23:31 +03:00
Avi Kivity
03c22ad524
Merge "Support for Cassandra 2.2 (LA) SSTable formats" from Daniel
...
"
These patches add support for C* 2.2 file(name) format.
Namely:
* It forces Scylla to write files in la format.
* Adds storage-service feature for them.
* cf and ks are determined from directory, not from file-name (for 2.2 format).
* Adds some other fixes to make dtest happy.
* Unit tests work with la format or with both formats.
"
* 'danfiala/filename-format-2.2-v4' of https://github.com/hagrid-the-developer/scylla :
tests/sstables: Tests use la format or iterate over both formats.
tests/sstables: Helper functions support 2.2 format directory structure.
stables: Use 2.2 (la) format as a default format to store sstables if it is enabled by feature-bits.
storage_service: Support la sstable storage format as a feature.
sstables: make_descriptor accepts sstable-directory, because it is necessary to determine cf and ks in 2.2 format.
sstables: Throw more detail exception for unknown item in reverse_map.
sstables/compaction: Suppress NaN in a report of a throughput.
2018-03-19 17:49:44 +02:00
Daniel Fiala
4d703f9c6a
tests/sstables: Tests use la format or iterate over both formats.
...
Signed-off-by: Daniel Fiala <daniel@scylladb.com >
2018-03-19 14:12:10 +01:00
Avi Kivity
3f5a8229ac
tests: fix for sstable::get_index_reader() removal
...
71495691aa removed sstable::get_index_reader(),
but forgot to update its callers in tests/. Update the callers to construct
a temporary shared_index_list and create the index_reader directly.
This is none too clean, but shared_index_lists needs to be retired, and then
the changes in this patch can go away too.
Tests: unit (release)
Message-Id: <20180211164739.17862-1-avi@scylladb.com >
2018-02-11 17:53:08 +00: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
José Guilherme Vanz
380bc0aa0d
Swap arguments order of mutation constructor
...
Swap arguments in the mutation constructor keeping the same standard
from the constructor variants. Refs #3084
Signed-off-by: José Guilherme Vanz <guilherme.sft@gmail.com >
Message-Id: <20180120000154.3823-1-guilherme.sft@gmail.com >
2018-01-21 12:58:42 +02:00
Piotr Jastrzebski
d266eaa01e
mutation_source: rename make_flat_mutation_reader to make_reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-19 09:30:12 +01:00
Piotr Jastrzebski
0d382e89d7
test_writing_combined_stream_with_tombstones_at_the_same_position: use flat reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-18 07:32:59 +01:00
Piotr Jastrzebski
d6aede88d3
test_can_write_and_read_non_compound_range_tombstone_as_compound: use flat reader
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2018-01-18 07:32:59 +01:00
Raphael S. Carvalho
2b0b703615
tests: sstable_mutation_test: fix sstable write in tests due to use of non-local keys
...
that's required after fa5a26f12d on because sstable write fails when sharding
metadata is empty due to lack of keys that belong to current shard.
make_local_key* were moved to header to avoid compiling sstable_utils.cc into
all those tests that rely on simple_schema.hh, which is a lot.
Signed-off-by: Raphael S. Carvalho <raphaelsc@scylladb.com >
Message-Id: <20180116052052.7819-1-raphaelsc@scylladb.com >
2018-01-16 09:28:12 +02:00
Tomasz Grabiec
42ec01661c
tests: sstables: Add test for writing combined stream with range tombstones at same position
2017-12-22 11:06:34 +01:00
Piotr Jastrzebski
570703a169
read_mutation_from_flat_mutation_reader: don't take schema_ptr
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2017-12-21 11:47:07 +01:00
Paweł Dziepak
15ad148604
tests/sstable: stop using read_range_rows()
...
read_range_rows() is deprecated by read_range_rows_flat().
2017-12-05 14:53:14 +00:00
Paweł Dziepak
de8ebd6752
tests/sstables: use read_row_flat() instead of read_row()
2017-12-05 14:53:14 +00:00
Paweł Dziepak
582bacbd81
tests/sstable_mutation_test: get flat_mutation_readers from mutation sources
2017-12-05 14:52:32 +00:00
Paweł Dziepak
77a4231147
tests/sstable: stop using read_row() with sstable::key
2017-12-05 14:47:46 +00:00
Duarte Nunes
13fc26214e
tests/sstable_mutation_test: Verify we can write/read non-correct RTs
...
Add test to verify we can write and read non-compound tombstones and
compound ones for backward compatibility.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-29 14:17:50 +01:00
Jesse Haber-Kucharsky
fb0866ca20
Move thread_local declarations out of main.cc
...
Since `disk-error-handler.hh` defines these global variables `extern`,
it makes sense to declare them in the `disk-error-handler.cc` instead of
`main.cc`.
This means that test files don't have to declare them.
Fixes #2735 .
Signed-off-by: Jesse Haber-Kucharsky <jhaberku@scylladb.com >
Message-Id: <1eed120bfd9bb3647e03fe05b60c871de2df2a86.1511810004.git.jhaberku@scylladb.com >
2017-11-27 20:27:42 +01:00
Duarte Nunes
4a6ffa3f5c
tests/sstable_mutation_test: Change make_reader to make_flat_reader
...
A merge conflict between 596ebaed1f and
bd1efbc25c caused the test to fail to
build.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-25 15:23:36 +00:00
Tomasz Grabiec
596ebaed1f
Merge "Convert sstable writers to flat mutation readers" from Paweł
...
The following patches convert sstable writers to use flat mutation
readers instead of the legacy mutation_reader interface.
Writers were already using flat consumer interface and used
consume_flattened_in_thread(), so most of the work was limited to
providing an appropriate equivalent for flat mutation readers.
* https://github.com/pdziepak/scylla.git flat_mutation_reader-sstable-write/v1:
flat_mutation_reader: move consumer_adapter out of consume()
flat_mutation_reader: introduce consume_in_thread()
tests/flat_mutation_reader: test consume_in_thread()
sstables: switch write_components() to flat_mutation_reader
streamed_mutation: drop streamed_mutation_returning()
sstables: convert compaction to flat_mutation_reader
mutation_reader: drop consume_flattened_in_thread()
2017-11-24 16:05:21 +01:00
Paweł Dziepak
11b32276e6
sstables: switch write_components() to flat_mutation_reader
2017-11-23 18:14:31 +00:00
Duarte Nunes
5aa5780701
tests/sstable_mutation_test: Verify promoted index is not generated
...
Verify we don't generated a promoted index if the schema lacks
clustering keys.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-23 16:45:54 +00:00
Duarte Nunes
f9a76084e9
tests/sstable_mutation_test: Ensure range tombstone serializes correctly
...
This patch ensures range tombstones are correctly serialized for dense
non-compound schemas.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-23 16:45:54 +00:00
Duarte Nunes
e612f71ed6
tests/sstable_mutation_test: Verify promoted index repeats tombstones
...
Both for compact and non-compact storage schemas.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-23 16:45:54 +00:00
Duarte Nunes
d8af9ffe5a
tests/sstable_mutation_test: Verify promoted index serializes correctly
...
For different types of schemas.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-23 16:45:54 +00:00
Duarte Nunes
19cd65a681
tests/sstable_*: Start the storage service for some cases
...
We will need to check the cluster's enabled features when writing
range tombstones.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-11-23 16:45:53 +00:00
Piotr Jastrzebski
da2f2164e9
sstable_mutation_test: use read_rows_flat instead of read_rows
...
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2017-11-22 15:48:57 +01:00
Piotr Jastrzebski
ea449c9cce
Replace sstables::mutation_reader with ::mutation_reader
...
This will make migration to flat_mutation_reader much
easier and sstables::mutation_reader is going away with
this migration anyway.
Signed-off-by: Piotr Jastrzebski <piotr@scylladb.com >
2017-11-15 10:40:01 +01:00
Avi Kivity
f7023501d6
treewide: use shared_sstable, make_sstable in place of lw_shared_ptr<sstable>
...
Since shared_sstable is going to be its own type soon, we can't use the old alias.
2017-09-12 10:43:05 +03:00
Avi Kivity
5ebb15b9d4
sstable_mutation_test: add missing include
2017-09-12 10:43:05 +03:00
Duarte Nunes
4c9206ba2f
tests/sstable_mutation_test: Don't use moved-from object
...
Fix a bug introduced in dbbb9e93d and exposed by gcc6 by not using a
moved-from object. Twice.
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
Message-Id: <20170802161033.4213-1-duarte@scylladb.com >
2017-08-03 09:45:49 +03:00
Duarte Nunes
dbbb9e93da
tests/sstable_mutation_test: Test promoted index blocks are monotonic
...
Reproduces #2333
Signed-off-by: Duarte Nunes <duarte@scylladb.com >
2017-07-27 18:23:58 +02:00
Tomasz Grabiec
a9237c1666
schema: Revert back to the 1.7 layout of static compact tables in memory
...
We are using C* 3.x compatible layout in schema tables but want to
keep using the 1.7 layout in memory for compatibility during rolling
upgrade. This patch switches the schema and schema_builder classes
back to the old layout. Translation of layout happens when converting
to/from schema mutations.
Notable changes:
1) Includes a revert of commit 6260f31e08
"thrift: Update CQL mapping of static CFs".
2) Brings back the "default_validation_class" schema attribute. In v3
it can be dervied from column definitions, but in v2 it can't, so
we have to store it.
3) legacy_schema_migrator and schema_builder don't have to do
conversions to v3, this is now handled by the v3_columns
class. schema_builder works with the same layout as schema, that
is v2.
4) Includes a revert of commit 66991a7ccb
"v3 schema test fixes"
Fixes #2555 .
2017-07-19 09:52:15 +02:00
Avi Kivity
555621b537
Disentable memtables from sstables
...
Remove sstable::write_components(memtable), replacing it with a helper.
Fixes #2354
Message-Id: <20170624142639.16662-1-avi@scylladb.com >
2017-06-26 09:37:11 +02:00
Tomasz Grabiec
f3a6d94398
sstables: Introduce sstable::as_mutation_source()
...
Adaptors extracted from existing testing code.
Message-Id: <1495729508-30081-1-git-send-email-tgrabiec@scylladb.com >
2017-05-25 19:30:20 +03:00
Tomasz Grabiec
3c509308ab
range_tombstone_list: Merge adjacent range tombstones in apply()
...
Needed for equivalence to work correctly with difference and addition:
m1 + (m2 - m1) = m1 + m2
Fixes #2158 .
2017-05-23 13:16:03 +02:00
Calle Wilund
66991a7ccb
v3 schema test fixes
2017-05-10 16:44:48 +00:00