cassie 1.0.0.beta.17 → 1.0.0.beta.21
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/cassie +40 -15
- data/lib/cassie/configuration/templates/cassandra.yml +1 -2
- data/lib/cassie/connection.rb +3 -3
- data/lib/cassie/connection_handler/cluster.rb +1 -1
- data/lib/cassie/connection_handler/sessions.rb +1 -1
- data/lib/cassie/connection_handler.rb +4 -2
- data/lib/cassie/definition.rb +8 -0
- data/lib/cassie/modification.rb +9 -0
- data/lib/cassie/query.rb +3 -15
- data/lib/cassie/statements/README.md +710 -0
- data/lib/cassie/statements/core.rb +23 -0
- data/lib/cassie/{queries/statement/batches.rb → statements/execution/batched_fetching.rb} +7 -11
- data/lib/cassie/{queries/statement → statements/execution}/callbacks.rb +1 -1
- data/lib/cassie/{queries/statement → statements/execution}/consistency.rb +1 -1
- data/lib/cassie/statements/execution/deserialization.rb +13 -0
- data/lib/cassie/{queries/statement → statements/execution}/fetching.rb +10 -21
- data/lib/cassie/{queries/instrumentation/execution.rb → statements/execution/instrumentation.rb} +6 -2
- data/lib/cassie/statements/execution/partition_linking/cursoring_policy.rb +13 -0
- data/lib/cassie/statements/execution/partition_linking/policy_methods.rb +128 -0
- data/lib/cassie/statements/execution/partition_linking/simple_policy.rb +19 -0
- data/lib/cassie/statements/execution/partition_linking.rb +49 -0
- data/lib/cassie/statements/execution/peeking.rb +28 -0
- data/lib/cassie/statements/execution/results/core.rb +11 -0
- data/lib/cassie/statements/execution/results/cursored_result.rb +26 -0
- data/lib/cassie/statements/execution/results/instrumentation.rb +18 -0
- data/lib/cassie/statements/execution/results/modification.rb +12 -0
- data/lib/cassie/statements/execution/results/modification_result.rb +8 -0
- data/lib/cassie/statements/execution/results/peeking.rb +42 -0
- data/lib/cassie/statements/execution/results/peeking_result.rb +10 -0
- data/lib/cassie/statements/execution/results/query_result.rb +9 -0
- data/lib/cassie/statements/execution/results/querying.rb +66 -0
- data/lib/cassie/statements/execution/results/result.rb +23 -0
- data/lib/cassie/statements/execution/results.rb +12 -0
- data/lib/cassie/statements/execution.rb +69 -0
- data/lib/cassie/statements/instrumenting.rb +6 -0
- data/lib/cassie/{queries/logging/building_resources_event.rb → statements/logging/deserialize_event.rb} +4 -4
- data/lib/cassie/statements/logging/deserialize_subscriber.rb +19 -0
- data/lib/cassie/{queries/logging/cql_execution_event.rb → statements/logging/execute_event.rb} +8 -4
- data/lib/cassie/statements/logging/execute_subscriber.rb +19 -0
- data/lib/cassie/statements/logging.rb +12 -0
- data/lib/cassie/statements/modification.rb +14 -0
- data/lib/cassie/statements/query.rb +12 -0
- data/lib/cassie/statements/statement/assignment.rb +51 -0
- data/lib/cassie/statements/statement/assignments.rb +87 -0
- data/lib/cassie/{queries → statements}/statement/conditions.rb +1 -3
- data/lib/cassie/{queries → statements}/statement/deleting.rb +15 -12
- data/lib/cassie/{queries → statements}/statement/inserting.rb +13 -10
- data/lib/cassie/statements/statement/limiting.rb +89 -0
- data/lib/cassie/{queries → statements}/statement/mapping.rb +21 -41
- data/lib/cassie/{queries → statements}/statement/ordering.rb +1 -1
- data/lib/cassie/statements/statement/pagination/cursors.rb +112 -0
- data/lib/cassie/statements/statement/pagination.rb +19 -0
- data/lib/cassie/{queries → statements}/statement/preparation/cache.rb +1 -1
- data/lib/cassie/{queries → statements}/statement/preparation.rb +4 -5
- data/lib/cassie/statements/statement/relation.rb +68 -0
- data/lib/cassie/statements/statement/relations.rb +93 -0
- data/lib/cassie/statements/statement/selection.rb +86 -0
- data/lib/cassie/{queries → statements}/statement/updating.rb +9 -10
- data/lib/cassie/{queries → statements}/statement.rb +10 -20
- data/lib/cassie/statements.rb +9 -0
- data/lib/cassie/testing/fake/definition.rb +11 -0
- data/lib/cassie/testing/fake/modification.rb +11 -0
- data/lib/cassie/testing/fake/result.rb +15 -3
- data/lib/cassie/testing.rb +2 -0
- data/lib/cassie.rb +2 -0
- metadata +57 -34
- data/lib/cassie/queries/README.md +0 -458
- data/lib/cassie/queries/instrumentation/loading.rb +0 -15
- data/lib/cassie/queries/instrumentation.rb +0 -18
- data/lib/cassie/queries/logging/subscription.rb +0 -24
- data/lib/cassie/queries/logging.rb +0 -21
- data/lib/cassie/queries/statement/assignment.rb +0 -36
- data/lib/cassie/queries/statement/assignments.rb +0 -67
- data/lib/cassie/queries/statement/execution.rb +0 -45
- data/lib/cassie/queries/statement/limiting.rb +0 -36
- data/lib/cassie/queries/statement/loading.rb +0 -24
- data/lib/cassie/queries/statement/pagination/cursors.rb +0 -168
- data/lib/cassie/queries/statement/pagination/page_size.rb +0 -7
- data/lib/cassie/queries/statement/pagination.rb +0 -37
- data/lib/cassie/queries/statement/relation.rb +0 -74
- data/lib/cassie/queries/statement/relations.rb +0 -66
- data/lib/cassie/queries/statement/selection.rb +0 -63
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 44bcb0d0fb09b42a535b4e22a6bbc2b54a92af9a
|
4
|
+
data.tar.gz: 20a5acd5604630f500c9b06ba15804be0e9acf54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 18b4e938a675a39a79e63c1dcc6477941a26ac880c077cb4254533f358ceda7acbeff1df015b123652e87c4a1ca19c02d13c7e461dd9acc7e48c5b7b6f64bc17
|
7
|
+
data.tar.gz: 1dcd53f870f9ff37b0878922021648e9b8973b1126f7142dadd4a957fb22f5f9d4c74bd74035d7965958d60c42b623b27d0ce47fb3bf522b9aa50c76e8169795
|
data/bin/cassie
CHANGED
@@ -15,30 +15,36 @@ def start
|
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
|
-
def stop
|
18
|
+
def stop(kill_all=false)
|
19
19
|
runner = Cassie::Support::CommandRunner.new("ps", ["-awx"])
|
20
20
|
runner.run!
|
21
21
|
# | grep cassandra | grep -v grep | awk '{print $1}'`
|
22
22
|
cassandra_awx = runner.output.split("\n").grep(/cassandra/)
|
23
|
-
|
24
|
-
|
23
|
+
pids = cassandra_awx.map{ |p| p.split(' ').first.to_i }
|
24
|
+
|
25
|
+
if pids.empty?
|
25
26
|
puts red("No Cassandra process was found. Is Cassandra running?")
|
26
27
|
exit(1)
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
puts red("
|
28
|
+
elsif pids.length > 1 && !kill_all
|
29
|
+
puts red("Couldn't single out a Cassandra process.")
|
30
|
+
puts red(" - Is cqlsh running?")
|
31
|
+
puts red(" - Kill all cassandra processes with --all")
|
32
|
+
cassandra_awx.each do |p|
|
33
|
+
puts " - #{p.split(' ').first.ljust(5,' ')} | #{p.split(' ').last}"
|
34
|
+
end
|
31
35
|
exit(1)
|
32
36
|
end
|
33
37
|
|
34
38
|
puts("Stopping Cassandra...")
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
39
|
+
pids.each do|pid|
|
40
|
+
Process.kill("TERM", pid)
|
41
|
+
loop do
|
42
|
+
sleep(0.1)
|
43
|
+
begin
|
44
|
+
Process.getpgid( pid )
|
45
|
+
rescue Errno::ESRCH
|
46
|
+
break
|
47
|
+
end
|
42
48
|
end
|
43
49
|
end
|
44
50
|
|
@@ -85,6 +91,20 @@ def dump_structure
|
|
85
91
|
puts "[✓] Cassandra schema written to #{opts[:destination_path]}"
|
86
92
|
end
|
87
93
|
|
94
|
+
def tail_log
|
95
|
+
runner = Cassie::Support::CommandRunner.new("which", ["cassandra"])
|
96
|
+
runner.run!
|
97
|
+
|
98
|
+
bin_path = runner.output.gsub("\n", '')
|
99
|
+
log_path = bin_path.sub('bin/cassandra', 'logs/system.log')
|
100
|
+
puts white("Tailing Cassandra system log, Ctrl-C to stop...")
|
101
|
+
puts " #{log_path}:\n\n"
|
102
|
+
|
103
|
+
args = ['-f', log_path, '>', '/dev/tty']
|
104
|
+
runner = Cassie::Support::CommandRunner.new("tail", args)
|
105
|
+
runner.run!
|
106
|
+
end
|
107
|
+
|
88
108
|
def load_structure
|
89
109
|
opts = {}
|
90
110
|
opts[:source_path] = Cassie.paths[:schema_structure]
|
@@ -97,6 +117,9 @@ def load_structure
|
|
97
117
|
puts "[✓] Cassandra schema loaded from #{opts[:source_path]}"
|
98
118
|
end
|
99
119
|
|
120
|
+
def white(message)
|
121
|
+
"\e[1;37m#{message}\e[0m"
|
122
|
+
end
|
100
123
|
def red(message)
|
101
124
|
"\e[1;31m#{message}\e[0m"
|
102
125
|
end
|
@@ -108,9 +131,11 @@ case ARGV[0]
|
|
108
131
|
when "start"
|
109
132
|
start
|
110
133
|
when "stop"
|
111
|
-
stop
|
134
|
+
stop(ARGV.include?('--all'))
|
112
135
|
when /kick|restart/
|
113
136
|
kick
|
137
|
+
when /tail|log/
|
138
|
+
tail_log
|
114
139
|
when "configuration:generate"
|
115
140
|
generate_config
|
116
141
|
when "structure:dump"
|
@@ -9,14 +9,13 @@ development:
|
|
9
9
|
hosts:
|
10
10
|
- 127.0.0.1
|
11
11
|
port: 9042
|
12
|
-
reconnection_policy: <%%= Cassandra::Reconnection::Policies::Exponential.new(0.5, 60, 2) %>
|
13
12
|
keyspace: <%=app_name%>_development
|
14
13
|
|
15
14
|
test:
|
16
15
|
hosts:
|
17
16
|
- 127.0.0.1
|
18
17
|
port: 9042
|
19
|
-
idle_timeout:
|
18
|
+
idle_timeout: null
|
20
19
|
keyspace: <%=app_name%>_test
|
21
20
|
|
22
21
|
production:
|
data/lib/cassie/connection.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Cassie
|
2
|
-
#
|
3
|
-
#
|
4
|
-
#
|
2
|
+
# Include Cassie::Connection to add #session and #keyspace
|
3
|
+
# convenience methods that conform with object cacheing and reuse
|
4
|
+
# behavior in line with Cassandra best practices
|
5
5
|
module Connection
|
6
6
|
|
7
7
|
extend ActiveSupport::Concern
|
@@ -21,7 +21,7 @@ module Cassie::ConnectionHandler
|
|
21
21
|
_cluster = Cassandra.cluster(config)
|
22
22
|
end
|
23
23
|
|
24
|
-
logger.info "(#{(sec
|
24
|
+
logger.info "(#{(sec*1000).round(2)}ms) Connected to Cassandra cluster #{config[:hosts]}"
|
25
25
|
_cluster
|
26
26
|
end
|
27
27
|
end
|
@@ -20,7 +20,7 @@ module Cassie::ConnectionHandler
|
|
20
20
|
_session = cluster.connect(_keyspace)
|
21
21
|
end
|
22
22
|
|
23
|
-
logger.info "(#{(sec
|
23
|
+
logger.info "(#{(sec*1000).round(2)}ms) Session opened to Cassandra[#{_keyspace}]"
|
24
24
|
@sessions[_keyspace] = _session
|
25
25
|
end
|
26
26
|
end
|
@@ -1,6 +1,8 @@
|
|
1
1
|
module Cassie
|
2
|
-
#
|
3
|
-
#
|
2
|
+
# Extend Cassie::ConnectionHandler to provide cluster and session
|
3
|
+
# cacheing in line with Cassandra best practices.
|
4
|
+
#
|
5
|
+
# The base class must implement `configuration` and `keyspace` methods.
|
4
6
|
module ConnectionHandler
|
5
7
|
require_relative 'connection_handler/cluster'
|
6
8
|
require_relative 'connection_handler/sessions'
|
data/lib/cassie/query.rb
CHANGED
@@ -1,22 +1,10 @@
|
|
1
1
|
module Cassie
|
2
|
-
module Queries
|
3
|
-
end
|
4
2
|
class Query
|
5
|
-
require_relative '
|
6
|
-
require_relative 'queries/instrumentation'
|
7
|
-
require_relative 'queries/logging'
|
3
|
+
require_relative 'statements'
|
8
4
|
|
9
5
|
include Cassie::Connection
|
10
|
-
include
|
11
|
-
include
|
12
|
-
include Queries::Logging
|
13
|
-
|
14
|
-
def initialize(params={})
|
15
|
-
params.each do |attr, value|
|
16
|
-
self.public_send("#{attr}=", value)
|
17
|
-
end
|
6
|
+
include Statements::Core
|
7
|
+
include Statements::Query
|
18
8
|
|
19
|
-
super()
|
20
|
-
end
|
21
9
|
end
|
22
10
|
end
|