cassandra 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
data.tar.gz.sig CHANGED
Binary file
data/CHANGELOG CHANGED
@@ -1,4 +1,6 @@
1
1
 
2
+ v0.5.2. Update server version so CommitLog replay is fixed.
3
+
2
4
  v0.5.1. Add bin/cassandra_helper script, to build and start the server for you. Improve build error reporting.
3
5
 
4
6
  v0.5. More API changes. Working temporal comparators.
data/README CHANGED
@@ -15,8 +15,6 @@ The public certificate for this gem is here[http://rubyforge.org/frs/download.ph
15
15
  * compatible UUID and Long classes, for GUID generation
16
16
  * Ruby 1.9 compatibility
17
17
 
18
- This is an alpha release and may not yet support the full set of Cassandra features.
19
-
20
18
  The Github source repository is {here}[http://github.com/fauna/cassandra/]. Patches and contributions are very welcome.
21
19
 
22
20
  == Installation
@@ -25,7 +23,7 @@ You need Ruby 1.8 or 1.9. If you have those, just run:
25
23
 
26
24
  sudo gem install cassandra
27
25
 
28
- Cassandra is a rapidly moving target. In order to get a working server, use the <tt>bin/cassandra_helper</tt> script (requires <tt>git</tt>):
26
+ Cassandra itself is a rapidly moving target. In order to get a working server, use the <tt>bin/cassandra_helper</tt> script:
29
27
 
30
28
  cassandra_helper cassandra
31
29
 
data/Rakefile CHANGED
@@ -16,13 +16,9 @@ unless ENV['FROM_BIN_CASSANDRA_HELPER']
16
16
  end
17
17
  end
18
18
 
19
- REVISION = "15354b4906fd654d58fe50fd01ebf95b69434ba9"
19
+ REVISION = "007df950fc9e9fad255167db74517095a8326f25"
20
20
 
21
- PATCHES = [
22
- "http://issues.apache.org/jira/secure/attachment/12416014/0001-CASSANDRA-356-rename-clean-up-collectColumns-methods.txt",
23
- "http://issues.apache.org/jira/secure/attachment/12416073/0002-v3.patch",
24
- "http://issues.apache.org/jira/secure/attachment/12416074/357-v2.patch",
25
- "http://issues.apache.org/jira/secure/attachment/12416086/357-3.patch"]
21
+ PATCHES = []
26
22
 
27
23
  CASSANDRA_HOME = "#{ENV['HOME']}/cassandra/r#{REVISION[0, 8]}"
28
24
 
data/cassandra.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = %q{cassandra}
5
- s.version = "0.5.1"
5
+ s.version = "0.5.2"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 0.8") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Evan Weaver"]
@@ -179,26 +179,36 @@
179
179
  <ConcurrentReads>8</ConcurrentReads>
180
180
  <ConcurrentWrites>32</ConcurrentWrites>
181
181
 
182
- <!-- Turn on CommitLogSync to improve durability.
183
- When enabled, Cassandra won't ack writes until the commit log
184
- has been synced to disk. This is less necessary in Cassandra
182
+ <!-- CommitLogSync may be either "periodic" or "batch."
183
+ When in batch mode, Cassandra won't ack writes until the commit log
184
+ has been fsynced to disk. It will wait up to CommitLogSyncBatchWindowInMS
185
+ milliseconds for other writes, before performing the sync.
186
+
187
+ This is less necessary in Cassandra
185
188
  than in traditional databases since replication reduces the
186
189
  odds of losing data from a failure after writing the log
187
- entry but before it actually reaches the disk.
190
+ entry but before it actually reaches the disk. So the other
191
+ option is "timed," where wirtes may be acked immediately
192
+ and the CommitLog is simply synced every CommitLogSyncPeriodInMS
193
+ milliseconds.
194
+ -->
195
+ <CommitLogSync>periodic</CommitLogSync>
196
+ <!-- Interval at which to perform syncs of the CommitLog in periodic
197
+ mode. Usually the default of 1000ms is fine; increase it
198
+ only if the CommitLog PendingTasks backlog in jmx shows that
199
+ you are frequently scheduling a second sync while the first
200
+ has not yet been processed.
188
201
  -->
189
- <CommitLogSync>false</CommitLogSync>
202
+ <CommitLogSyncPeriodInMS>1000</CommitLogSyncPeriodInMS>
190
203
  <!-- Delay (in microseconds) during which additional commit log
191
- entries may be written before fsync. This will increase
204
+ entries may be written before fsync in batch mode. This will increase
192
205
  latency slightly, but can vastly improve throughput where
193
206
  there are many writers. Set to zero to disable
194
207
  (each entry will be synced individually).
195
- Reasonable values range from a minimal 100 to even 10000
196
- if throughput matters more than latency. (10000us = 10ms
197
- write latency isn't even that bad by traditional db
198
- standards.)
208
+ Reasonable values range from a minimal 0.1 to 10 or even more
209
+ if throughput matters more than latency.
199
210
  -->
200
- <CommitLogSyncDelay>1000</CommitLogSyncDelay>
201
-
211
+ <!-- <CommitLogSyncBatchWindowInMS>1</CommitLogSyncBatchWindowInMS> -->
202
212
 
203
213
  <!-- Time to wait before garbage-collection deletion markers.
204
214
  Set this to a large enough value that you are confident
@@ -63,7 +63,7 @@ class Cassandra
63
63
  # FIXME Comparable types in range are not enforced
64
64
  predicate = CassandraThrift::SlicePredicate.new(:slice_range =>
65
65
  CassandraThrift::SliceRange.new(
66
- :is_ascending => !reversed,
66
+ :reversed => reversed,
67
67
  :count => count,
68
68
  :start => start.to_s,
69
69
  :finish => finish.to_s))
@@ -12,7 +12,7 @@ require 'cassandra_types'
12
12
  class Client
13
13
  include ::Thrift::Client
14
14
 
15
- def get_slice(keyspace, key, column_parent, predicate, consistency_level)
15
+ def get_slice(keyspace, key, column_parent, predicate, consistency_level)
16
16
  send_get_slice(keyspace, key, column_parent, predicate, consistency_level)
17
17
  return recv_get_slice()
18
18
  end
@@ -188,21 +188,6 @@ require 'cassandra_types'
188
188
  raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'describe_keyspace failed: unknown result')
189
189
  end
190
190
 
191
- def execute_query(query)
192
- send_execute_query(query)
193
- return recv_execute_query()
194
- end
195
-
196
- def send_execute_query(query)
197
- send_message('execute_query', Execute_query_args, :query => query)
198
- end
199
-
200
- def recv_execute_query()
201
- result = receive_message(Execute_query_result)
202
- return result.success unless result.success.nil?
203
- raise ::Thrift::ApplicationException.new(::Thrift::ApplicationException::MISSING_RESULT, 'execute_query failed: unknown result')
204
- end
205
-
206
191
  end
207
192
 
208
193
  class Processor
@@ -333,13 +318,6 @@ require 'cassandra_types'
333
318
  write_result(result, oprot, 'describe_keyspace', seqid)
334
319
  end
335
320
 
336
- def process_execute_query(seqid, iprot, oprot)
337
- args = read_args(iprot, Execute_query_args)
338
- result = Execute_query_result.new()
339
- result.success = @handler.execute_query(args.query)
340
- write_result(result, oprot, 'execute_query', seqid)
341
- end
342
-
343
321
  end
344
322
 
345
323
  # HELPER FUNCTIONS AND STRUCTURES
@@ -793,38 +771,6 @@ require 'cassandra_types'
793
771
 
794
772
  end
795
773
 
796
- class Execute_query_args
797
- include ::Thrift::Struct
798
- QUERY = 1
799
-
800
- ::Thrift::Struct.field_accessor self, :query
801
- FIELDS = {
802
- QUERY => {:type => ::Thrift::Types::STRING, :name => 'query'}
803
- }
804
-
805
- def struct_fields; FIELDS; end
806
-
807
- def validate
808
- end
809
-
810
- end
811
-
812
- class Execute_query_result
813
- include ::Thrift::Struct
814
- SUCCESS = 0
815
-
816
- ::Thrift::Struct.field_accessor self, :success
817
- FIELDS = {
818
- SUCCESS => {:type => ::Thrift::Types::STRUCT, :name => 'success', :class => CassandraThrift::CqlResult}
819
- }
820
-
821
- def struct_fields; FIELDS; end
822
-
823
- def validate
824
- end
825
-
826
- end
827
-
828
774
  end
829
775
 
830
776
  end
@@ -89,26 +89,6 @@ module CassandraThrift
89
89
 
90
90
  end
91
91
 
92
- class CqlResult
93
- include ::Thrift::Struct
94
- ERROR_CODE = 1
95
- ERROR_TXT = 2
96
- RESULT_SET = 3
97
-
98
- ::Thrift::Struct.field_accessor self, :error_code, :error_txt, :result_set
99
- FIELDS = {
100
- ERROR_CODE => {:type => ::Thrift::Types::I32, :name => 'error_code'},
101
- ERROR_TXT => {:type => ::Thrift::Types::STRING, :name => 'error_txt'},
102
- RESULT_SET => {:type => ::Thrift::Types::LIST, :name => 'result_set', :element => {:type => ::Thrift::Types::MAP, :key => {:type => ::Thrift::Types::STRING}, :value => {:type => ::Thrift::Types::STRING}}}
103
- }
104
-
105
- def struct_fields; FIELDS; end
106
-
107
- def validate
108
- end
109
-
110
- end
111
-
112
92
  class NotFoundException < ::Thrift::Exception
113
93
  include ::Thrift::Struct
114
94
 
@@ -202,14 +182,14 @@ module CassandraThrift
202
182
  include ::Thrift::Struct
203
183
  START = 1
204
184
  FINISH = 2
205
- IS_ASCENDING = 3
185
+ REVERSED = 3
206
186
  COUNT = 4
207
187
 
208
- ::Thrift::Struct.field_accessor self, :start, :finish, :is_ascending, :count
188
+ ::Thrift::Struct.field_accessor self, :start, :finish, :reversed, :count
209
189
  FIELDS = {
210
190
  START => {:type => ::Thrift::Types::STRING, :name => 'start'},
211
191
  FINISH => {:type => ::Thrift::Types::STRING, :name => 'finish'},
212
- IS_ASCENDING => {:type => ::Thrift::Types::BOOL, :name => 'is_ascending', :default => true},
192
+ REVERSED => {:type => ::Thrift::Types::BOOL, :name => 'reversed', :default => false},
213
193
  COUNT => {:type => ::Thrift::Types::I32, :name => 'count', :default => 100}
214
194
  }
215
195
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cassandra
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.1
4
+ version: 0.5.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Weaver
metadata.gz.sig CHANGED
Binary file