Commit Graph

2043 Commits

Author SHA1 Message Date
Asias He
59cd37cfa2 gossip: Import gms/HeartBeatState.java 2015-03-09 20:45:19 +08:00
Asias He
0839c6ba35 gossip: Convert gms/GossipDigestAck2.java to C++ 2015-03-09 20:45:19 +08:00
Asias He
ded6db5a19 gossip: Import gms/GossipDigestAck2.java 2015-03-09 09:32:08 +08:00
Asias He
1313116114 gossip: Convert gms/EndpointState.java to C++
Stub only.
2015-03-09 09:32:08 +08:00
Asias He
4ea4fc6687 gossip: Import gms/EndpointState.java 2015-03-09 09:32:08 +08:00
Shlomi Livne
d5b4ec06d6 tests: add commitlog_test
Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
2015-03-08 17:46:16 +02:00
Nadav Har'El
f4b47b0d70 build: Fix whitespace
Fix tabs to spaces in two lines in configure.py

Signed-off-by: Nadav Har'El <nyh@cloudius-systems.com>
2015-03-08 16:10:00 +02:00
Avi Kivity
9b39bd410e Merge branch 'master' of github.com:cloudius-systems/seastar into db 2015-03-08 15:02:24 +02:00
Avi Kivity
e4b5408bbd core: improve apply forwarding
Currently apply() only works with moveable inputs.  Add overloads for
non-moveable inputs (reference and const reference).
2015-03-08 14:58:28 +02:00
Avi Kivity
808ac29cf3 core: mark apply() inline 2015-03-08 14:58:26 +02:00
Shlomi Livne
ee8fa7b07a Block all signals when reactor is deleted
1. Moved all signal handler functions/members into a wrapping class
2. Block all signals on desctuctor call (resetting of signal handler is
not enough since some signals will arive even if we reset signal handler
to SIG_DFL e.g. timer)

Fixes use-after-free when a signal is caught after the reactor is
destroyed.

Signed-off-by: Shlomi Livne <shlomi@cloudius-systems.com>
2015-03-08 09:20:32 +02:00
Gleb Natapov
4d286f0504 core: drop superfluous qualifier from then_wrapped 2015-03-06 12:52:11 +02:00
Avi Kivity
11dfbdfaf5 Merge branch 'tgrabiec/futurize' of github.com:cloudius-systems/seastar-dev
Unify future callback specialization for callback return values, from
Tomasz.
2015-03-06 12:40:17 +02:00
Tomasz Grabiec
7502f2a3a3 tests: Add test for returning bare values from callbacks 2015-03-06 11:35:56 +01:00
Tomasz Grabiec
af82e23c75 core: Use futurize<> to unify then_wrapped() specializations 2015-03-06 11:35:56 +01:00
Tomasz Grabiec
a232b7e6c5 core: Use futurize<> to unify future::then() specializations
As a side benefit, returning non-void non-future is now allowed:

 future<int> x() {
     return later().then([] {
         return 3;
     });
 }
2015-03-06 11:35:56 +01:00
Tomasz Grabiec
f25d7ac068 core: Add futurize::apply()
Invokes given function wrapping the result in a future if necessary.
2015-03-06 11:35:56 +01:00
Tomasz Grabiec
422d642cf4 core: Add futurize::primise_type 2015-03-06 11:35:56 +01:00
Tomasz Grabiec
f5485c667d core: Move futurize<> to future.hh 2015-03-06 11:35:56 +01:00
Gleb Natapov
5d1b10d97a core: properly propogate exception in do_until()
[avi: use std::move(f).then_wrapped() until patch removing rvalue
      qualification from then_wrapped() lands]
2015-03-06 12:12:19 +02:00
Raphael S. Carvalho
41846256d8 tests: fix fileiotest
engine() cannot be called before the local_engine was constructed because it
dereferences the pointer local_engine to create a reference.
Consequently, the following error can be seen while running fileiotest:
./core/reactor.hh:854:13: runtime error: reference binding to null pointer of
type 'struct reactor' ASAN:SIGSEGV

Let's switch the test to use app_template.

Signed-off-by: Raphael S. Carvalho <raphaelsc@cloudius-systems.com>
2015-03-06 10:06:16 +02:00
Avi Kivity
5bff24c292 db: constify standard data_types
Lest someone accidentally move them away or assign into them.
2015-03-05 22:20:04 +02:00
Tomasz Grabiec
3db3207b85 Merge branch seastar-dev.git 'collections'
Collections support from Avi.
2015-03-05 20:25:48 +01:00
Avi Kivity
6126670078 mutation_test: test maps 2015-03-05 20:03:57 +02:00
Avi Kivity
b77a52398f db: fix merge_cells using wrong column_definition
merge_cells() always used the regular column_definition, even when called
for a static row.

Fix by parametrizing it with a method to get the column_definition.
2015-03-05 19:59:59 +02:00
Avi Kivity
6f6b1fdb00 schema: add static_column_at()
Parallels regular_column_at().
2015-03-05 19:59:18 +02:00
Avi Kivity
de2e9f9eea db: fix wrong row updated by merge_cells()
merge_cells() is called for both static and clustered rows, yet it always
updates the static row.

Fix by updating the row passed by the caller.
2015-03-05 19:57:34 +02:00
Avi Kivity
bb0d2a4f03 db: fix mutation::set_*_cell() applied twice to same column
With a collection, setting two separate elements in a collection would
cause the second to override the first.  This also applies, with much
smaller effect, to normal cells (for example, updating the same counter
twice, or issuing two updates to the same cell but with different timestamps,
via thrift).

Fix by merging the two values rather than replacing the old one.
2015-03-05 19:04:02 +02:00
Avi Kivity
42a9c0f7d3 atomic_cell: export merge_column 2015-03-05 19:03:29 +02:00
Vlad Zolotarov
e7e58d446c DPDK: Explicitly set Rx mempool mbuf_data_room_size
This value is passed as an opaque parameter of the rte_pktmbuf_pool_init().
It should equal to a buffer size + RTE_PKTMBUF_HEADROOM.
The default value is 2K + RTE_PKTMBUF_HEADROOM.
PMD is using this value minus RTE_PKTMBUF_HEADROOM for configuring the Rx
data buffers' size when it configures the Rx HW ring.

Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
2015-03-05 18:39:17 +02:00
Avi Kivity
98f2a51df9 db: implement collection mutation merging
Only for maps, as they are the only collection implemented at present.
2015-03-05 18:11:37 +02:00
Avi Kivity
5dbfe39399 Add combine() template
Similar to std::merge(), merges two sorted sequences. Duplicates, however,
are merged using a binary function parameter rather than duplicated.
2015-03-05 18:11:37 +02:00
Avi Kivity
df22293baf atomic_cell: export compare_atomic_cell_for_merge
Will be used for merging maps.
2015-03-05 18:11:37 +02:00
Avi Kivity
ded878212c db: simplify mutation_partition::apply()
Since merging cells is a different operation for atomic cells and
collections, move it into compare_for_merge(), which is where we check
the column type.  Rename compare_for_merge to merge_column(), since it
now does more than compares.
2015-03-05 18:11:37 +02:00
Avi Kivity
a6b692612a cql3: convert grammer for setting a collection element 2015-03-05 18:11:37 +02:00
Avi Kivity
1fcce7cdcb cql3: convert operation::set_element 2015-03-05 18:11:37 +02:00
Avi Kivity
7a94b0c0a3 cql3: convert maps::setter_by_key
Basic operation to set a single map element to a value.
2015-03-05 18:11:31 +02:00
Avi Kivity
07cb1f0a9c Merge branch 'asias/gossip' of github.com:cloudius-systems/seastar-dev into db
More gossip work from Asias.
2015-03-05 17:23:56 +02:00
Avi Kivity
ebf35c435b Merge branch 'penberg/schema-altering-statement-execute' of github.com:cloudius-systems/seastar-dev into db
From Pekka:

"This series converts schema_altering_statement::execute() to C++ in
preparation for create keyspace support."
2015-03-05 17:20:41 +02:00
Avi Kivity
4602d86dc9 cql3: convert maps::key_spec_of/maps::value_spec_of 2015-03-05 15:31:52 +02:00
Avi Kivity
b5571e4c18 db: implement map_type (partial) 2015-03-05 15:31:50 +02:00
Pekka Enberg
817486d27f cql3: Convert schema_altering_statement::execute() to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-05 15:06:31 +02:00
Pekka Enberg
670e146798 transport: Add schema_change result message
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-05 15:06:31 +02:00
Pekka Enberg
e153483cbb transport: Convert Event to C++
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-05 15:06:31 +02:00
Pekka Enberg
4483504d8c transport: Import Event.java
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-05 15:06:31 +02:00
Pekka Enberg
73905ff7c4 transport: Add missing include to result_message.hh
Signed-off-by: Pekka Enberg <penberg@cloudius-systems.com>
2015-03-05 15:06:31 +02:00
Avi Kivity
56d5c24a6a db: implement CollectionType (partial) 2015-03-05 14:04:19 +02:00
Avi Kivity
b14d9f1f02 mutation: support for collections
We simply store the collection mutation as we do atomic cells -- merging
will be done by the consumer.
2015-03-05 14:03:36 +02:00
Avi Kivity
57b6d4ada5 atomic_cell: add collection support
We leave interpretation to the backing type (map/set/list), so there is
not much code here.
2015-03-05 14:03:36 +02:00
Avi Kivity
2f8be37fca atomic_cell_or_collection: allow construction from atomic_cell
Since an atomic_cell has an is-a relationship to atomic_cell_or_collection,
we can allow direct conversion.  Type information is only lost, not added.
2015-03-05 14:03:36 +02:00