stream_session::stream_session(inet_address peer_, inet_address connecting_,
int index_, bool keep_ss_table_level_)
: peer(peer_)
, connecting(connecting_)
, conn_handler(shared_from_this())
Calling shared_from_this() inside stream_session's constructor is
problematic. I got
Exiting on unhandled exception of type 'std::bad_weak_ptr': bad_weak_ptr
exceptions, with
auto session = std::make_shared<stream_session>(peer, connecting, size, _keep_ss_table_level)
Also, the logic in connection_handler is not very useful for us. The
sending and receiving of messages are handled using messaging_service.
There is no need to add another layer.
I tried our lw_shared_ptr, the compiler complained endless usage of
incomplete type stream_session. I can not include stream_session.hh
everywhere due to circular dependency.
For now, I'm using std::shared_ptr which works fine.
This patch series adds partial implementation of ByteOrderedPartitioner
and allows choosing it in configuration file.
While ByteOrderedPartitioner is generally not recommended it is used by
some tests in DTEST due to its order guarantees.
Mutation query differs from data query in that returns information
needed to reconcile data slice with that retruned by other data
sources.
There is a generic mutation_query() algorithm introduced, which can
work with any mutation_source.
database::query_mutations() is a shard-local interface for mutation
queries.
The reconcilable_result is introduced as a medium for mutation query
results. It piggy backs on frozen_mutation as a medium for
reconcilable data.
"Fix index name case sensitivity as per Origin commit 68be72f ("Fix
case-sensitivity of index name on CREATE/DROP INDEX") which addressed
CASSANDRA-8365.
Please note that the imported code is from "cassandra-2.2.0-rc2" tag
that points to the following commit:
ebc50d783505854f04f183297ad3009b9095b07e"
Reviewed-by: Glauber Costa <glommer@cloudius-systems.com>
Some of the tests in DTEST take advantage of the fact that
ByteOrderedPartitioner guarantees certain ordering of partition keys.
Signed-off-by: Paweł Dziepak <pdziepak@cloudius-systems.com>
From Pekka:
"This series enables DROP TABLE statement in the front-end. Our
back-end is not really prepared to deal with it so throw "not
implemented" exception from migration manager."
Somewhat simplifies version of the Origin code, since from what I
can see, there is less need for us to do explicit query sends in
the BLM itself, instead we can just go through storage_proxy.
I could be wrong though.
"Implementation of:
* Token func
* Token restriction
* Token relation
* Token cql parsing
This series contains some hefty refactoring of the cql3::restrictions
interfaces, to handle the slightly different conditions of the token
relation. (See individual commit comment)"
"This series adds the hinted handoff and hinted handoff metrics API with a stub
implementation. The API definition was based on the HintedHandOffMetricsMBean
and the HintedHandoffMetrics."
Conflicts:
api/api.cc
configure.py
"This series adds the compaction_manager that is based on the
CompactionManagerMBean and its metrics that is based on the CompactionMetrics.
It contain a stub implementation so that the API can be accessed from the JMX
API.
The doc file can be found:
/api-doc/compaction_manager/"
This adds a stub implementation for the hinted handoff.
The API returns the currect type but with stubed values.
After applying this patch the api-doc will be available at:
/api-doc/hinted_handoff/
The following url will be available:
/hinted_handoff/hints
/hinted_handoff/schedule
/hinted_handoff/pause
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds the swagger definition file for the hinted_handoff.
The API is based on the HintedHandOffMBean definition.
It adds the following command:
st_endpoints_pending_hints
truncate_all_hints
schedule_hint_delivery
pause_hints_delivery
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This, intended for tests, feature allows testing time related event without
need for real time waits.
Signed-off-by: Paweł Dziepak <pdziepak@cloudius-systems.com>
This adds the implementation for the API endpoint_snitch
After this patch the API doc can be found at:
/api-doc/endpoint_snitch_info/
The following url are available:
/snitch/datacenter
/snitch/rack
The get name is stubed
/snitch/name
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds the Swagger definition for the endpoint_snitch_info that is
based on the EndpointSnitchInfoMBean.
The following commands where added:
get_datacenter
get_rack
get_snitch_name
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds a stub implementation for the compaction_manager API.
The methods return the right types but with a stub value.
After this patch the following url will be available:
/compaction_manager/compactions
/compaction_manager/compaction_summary
/compaction_manager/force_user_defined_compaction
/compaction_manager/stop_compaction
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
This adds the Swagger definition file for the compaction_manager.
It is based on the CompactionManagerMBean and contains the following
command:
get_compactions
get_compaction_summary
force_user_defined_compaction
stop_compaction
Signed-off-by: Amnon Heiman <amnon@cloudius-systems.com>
Unit test for NetworkTopologyStrategy class.
Creates a dummy cluster topology: token ring, token_metadata, snitch (RackInferringSnitch).
Then requests a natural endpoints for tokens that lay between each two adjacent ring tokens
and verifies the output.
It also checks the natural_endpoints caching:
1) Verifies that the result is calculated when we query the specific token_ring point
for the first time.
2) Verifies that the result is taken from the cache when we query the specific token_ring
point for the second time.
3) Verifies that the results in (1) and (2) are identical.
4) Verifies that the cache is invalidated after token_metadata::invalidate_cached_rings()
is called.
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
Signed-off-by: Vlad Zolotarov <vladz@cloudius-systems.com>
New in v2:
- Use new location of a sequenced_set.
- Indentation.
- Use all caps in a FIXME word.
"V2 Change how the information is gothered from the CPUs. As a result of the
change, each function call in the parallel_for_each holds its own copy of the
ID, following that the get_collectd_value method was changed to get a const
reference, to prevent the redundant creation of a shared_ptr from the local
copy.
This series adds an API for the collectd. After applying the series the
collectd will be available from the API."