Commit Graph

3107 Commits

Author SHA1 Message Date
Avi Kivity
89e4fb5991 Merge branch 'gleb/merge' of github.com:cloudius-systems/seastar-dev into db
Merge Gleb's merge of the rpc changes into seastar.
2015-05-05 10:41:34 +03:00
Gleb Natapov
78d36eabc2 Merge remote-tracking branch 'origin/master' into tmpmerge
message_service: create object using placement new()

Object reference may point to a unit member that was not properly
created, so assign will not work on it. Use placement new() instead.
2015-05-05 10:39:51 +03:00
Asias He
e5499ec96e README: Add missing yaml-cpp-devel package
db/config.o db/config.cc
db/config.cc:6:27: fatal error: yaml-cpp/yaml.h: No such file or directory
 #include <yaml-cpp/yaml.h>
                           ^
A README for Urchin is added.
2015-05-05 10:09:59 +03:00
Calle Wilund
e1c0ddea93 commitlog: make sure we don't race creating segments
Use a semaphore as gatekeeper to make sure we finish creating a segment
before starting a new one.

Signed-off-by: Calle Wilund <calle@cloudius-systems.com>
2015-05-05 09:59:27 +03:00
Gleb Natapov
2ec7535969 rpc: allow handler to receive non default constructable types
Currently it is not possible because a type is instantiated before been
deserialized. Fix that by allocating space for an object by using
std::aligned_storage.
2015-05-03 19:02:33 +03:00
Avi Kivity
6d4868a357 Merge branch 'fix-bsearch-v2' of github.com:glommer/urchin into db
Fix sstable binary search key compare, from Glauber.
2015-05-01 11:01:43 +03:00
Glauber Costa
08d7a7c3d5 binary search: clarify return value
Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
2015-04-30 15:31:51 -04:00
Glauber Costa
9993344ab8 tests: test the binary search over a full index list
Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
2015-04-30 15:15:36 -04:00
Glauber Costa
1bd12ec2ff binary search: fix token comparator
compare_unsigned cannot be used directly on a token. We need to use the
dht-provided token comparators.

Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
2015-04-30 14:09:45 -04:00
Avi Kivity
9e8f6c4e50 Merge branch 'tgrabiec/cleanups' of github.com:cloudius-systems/seastar-dev into db
Cleanups for 4d1ba11668, from Tomasz.
2015-04-30 20:40:08 +03:00
Tomasz Grabiec
b28d26bc9f murmur_hash: Drop static qualifier from template definition
To avoid multiple definitions in different compilation units. Pointed
out by Avi.
2015-04-30 16:49:50 +02:00
Tomasz Grabiec
d54388e1f6 compound_compat: Remove leftover code
It's a remnant after failed experiment. I forgot to drop it.
2015-04-30 15:40:02 +02:00
Tomasz Grabiec
6c008d825c tests: Add partitioner test to test.py 2015-04-30 15:39:57 +02:00
Tomasz Grabiec
93aab46406 tests: Fix murmur_hash_test 2015-04-30 14:23:24 +02:00
Avi Kivity
a28f0efd9a sstring: add iterator range constructor 2015-04-30 15:03:27 +03:00
Avi Kivity
4d1ba11668 Merge branch 'tgrabiec/fix-decorated-key-order' of github.com:cloudius-systems/seastar-dev into db
Fix decorated_key ordering to match Origin's, from Tomasz.
2015-04-30 14:54:35 +03:00
Tomasz Grabiec
72c327b02f tests: Add partitioner test 2015-04-30 12:02:39 +02:00
Tomasz Grabiec
aec740f895 db: Make decorated_key have ordering compatible with Origin 2015-04-30 12:02:39 +02:00
Gleb Natapov
dfa0f1c003 rcp: put client into an error state when connection is broken 2015-04-30 12:27:57 +03:00
Gleb Natapov
0a47b5f7c9 rpc: return exception as a future instead of throwing in client send path
This simplifies error handling in a client code since it needs to only
check future for an exception and do not put 'try' block around a call
itself.
2015-04-30 12:27:56 +03:00
Tomasz Grabiec
359af7745c dht: murmur3_partitioner: move get_token() implementation to .cc 2015-04-30 11:16:53 +02:00
Tomasz Grabiec
51d26620ca db: Remove comment above partitions map
I think the types are explicit enough now.
2015-04-30 11:16:53 +02:00
Tomasz Grabiec
46e72cbc64 tests: Introduce perf_hash.cc, hashing benchmark
Output on my laptop:

$ build/release/tests/perf/perf_hash
Timing fixed hash...
28671657.15 tps
28720930.45 tps
28622017.20 tps
28677088.01 tps
29223543.70 tps
Timing iterator hash...
22023042.57 tps
21953352.04 tps
21393787.05 tps
21613837.10 tps
21563284.57 tps
2015-04-30 11:16:53 +02:00
Tomasz Grabiec
ce78aef19a tests: Introduce murmur_hash_test.cc 2015-04-30 11:16:53 +02:00
Tomasz Grabiec
5fc149d454 utils: murmur_hash: Add input iterator based hash3_x64_128() version 2015-04-30 11:16:53 +02:00
Tomasz Grabiec
9197914697 utils: Fix indentation in murmur_hash.hh
We don't indent namespaces.
2015-04-30 11:16:53 +02:00
Tomasz Grabiec
ad05bb92d1 compound: Add compound::is_prefixable 2015-04-30 11:16:53 +02:00
Tomasz Grabiec
71e580c9c6 tests: keys: Add compatibility layer tests 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
82882779b6 keys: Expose compatibility layer with Origin in partition_key 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
e7c282fdf2 tests: Add tests for compound adaptors 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
89dca2eee4 compound: Introduce legacy format adaptors 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
c78b2b1e0d compound: Introduce components() method 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
7d45a472aa compound: Implement iterator::operator->() 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
6f536382b8 compound: Mark and document component iterator as InputIterator 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
6a9c49ee47 compound: Implement postfix incrementation in the component iterator 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
8d2233fb33 compound: Add method for checking if type is compound or not
Will be used by legacy comparator.
2015-04-30 11:16:52 +02:00
Tomasz Grabiec
08a17496a3 keys: Move get_component() to compound_wrapper
It's an operation which is valid for any compound, not only
partition_key.
2015-04-30 11:16:52 +02:00
Tomasz Grabiec
0559062893 types: Introduce lexicographical_tri_compare() 2015-04-30 11:16:52 +02:00
Tomasz Grabiec
b28ded72eb Merge branch 'dev/penberg/query-local-fixes' from seastar-dev.git
Cleanups from Pekka.
2015-04-30 10:12:27 +02:00
Pekka Enberg
26dd7c7cac service: Avoid schema ID lookup in storage_proxy::query_local()
It's unneeded because we already looked up the schema. Spotted by Tomek.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-04-30 10:15:45 +03:00
Pekka Enberg
73928c27a5 service: Fix storage_proxy::query_local() to return static columns
Spotted by Tomek.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-04-30 10:14:51 +03:00
Pekka Enberg
3e605f1c8c service: Fix storage_proxy::query_local() to return clustering keys
Spotted by Tomek.

Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-04-30 10:14:47 +03:00
Calle Wilund
992a6ea21e Collectd: Use initializer lists + declare < and == operators for clang
Makes scollectd compile on clang++ 3.5.0
2015-04-30 10:00:07 +03:00
Avi Kivity
2dda4673a3 Merge branch 'calle/cassandra-config' of github.com:cloudius-systems/seastar-dev into db
Configuration support, from Calle:

* Config object reading cassandra.yaml + command line opts.
* Tracks config source (none, cmd line, yaml)
* Added to main + database
* Used with commit log
2015-04-29 19:25:37 +03:00
Calle Wilund
2f4e7a00f6 Use db/config object in main, database etc
* Uses config object to augument/impl options parsing
* Database now holds config obj
* Commitlog can now be inited with global config obj.
2015-04-29 18:01:17 +02:00
Gleb Natapov
2e54725017 rpc: allow handler to return a type without default constructor
Currently it is not possible because a type is instantiated before been
deserialized. Fix that by allocating space for an object by using
std::aligned_storage.
2015-04-29 18:58:07 +03:00
Calle Wilund
5054892657 Cassandra compatible "config" object
* Based on the property set of cassandra 2.1
* Structure mapping all "known" cassandra.yaml config properties
* YAML and command line parsing of opts.
* Tracks is-set? and set-from-where?
* Uses giant macros to make Avi happy.
2015-04-29 17:00:15 +02:00
Calle Wilund
63ea446849 Collectd: Use initializer lists + declare < and == operators for clang
Makes scollectd compile on clang++ 3.5.0
2015-04-29 17:00:14 +02:00
Avi Kivity
509d8a188e Merge branch 'cleanup-sst' of github.com:glommer/urchin into db
Sstable cleanup, from Glauber (privatize some functions).
2015-04-29 16:49:59 +03:00
Glauber Costa
34d099dfbf sstables: make read_summary_entry private
Signed-off-by: Glauber Costa <glommer@cloudius-systems.com>
2015-04-29 09:47:19 -04:00