cassie 1.0.0.beta.17 → 1.0.0.beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|