google-cloud-bigtable 2.6.0 → 2.10.1

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.
Files changed (49) hide show
  1. checksums.yaml +4 -4
  2. data/AUTHENTICATION.md +10 -27
  3. data/CHANGELOG.md +72 -0
  4. data/CONTRIBUTING.md +328 -115
  5. data/EMULATOR.md +1 -1
  6. data/LOGGING.md +1 -1
  7. data/OVERVIEW.md +1 -1
  8. data/lib/google/cloud/bigtable/app_profile/job.rb +4 -4
  9. data/lib/google/cloud/bigtable/app_profile/list.rb +5 -7
  10. data/lib/google/cloud/bigtable/app_profile.rb +20 -21
  11. data/lib/google/cloud/bigtable/backup/job.rb +8 -8
  12. data/lib/google/cloud/bigtable/backup/list.rb +9 -11
  13. data/lib/google/cloud/bigtable/backup.rb +103 -36
  14. data/lib/google/cloud/bigtable/chunk_processor.rb +5 -5
  15. data/lib/google/cloud/bigtable/cluster/job.rb +2 -2
  16. data/lib/google/cloud/bigtable/cluster.rb +15 -15
  17. data/lib/google/cloud/bigtable/column_family.rb +2 -2
  18. data/lib/google/cloud/bigtable/column_family_map.rb +18 -21
  19. data/lib/google/cloud/bigtable/column_range.rb +7 -7
  20. data/lib/google/cloud/bigtable/convert.rb +34 -0
  21. data/lib/google/cloud/bigtable/encryption_info.rb +4 -4
  22. data/lib/google/cloud/bigtable/gc_rule.rb +20 -20
  23. data/lib/google/cloud/bigtable/instance/cluster_map.rb +7 -7
  24. data/lib/google/cloud/bigtable/instance/job.rb +4 -4
  25. data/lib/google/cloud/bigtable/instance.rb +49 -52
  26. data/lib/google/cloud/bigtable/mutation_entry.rb +21 -21
  27. data/lib/google/cloud/bigtable/mutation_operations.rb +34 -34
  28. data/lib/google/cloud/bigtable/policy.rb +4 -4
  29. data/lib/google/cloud/bigtable/project.rb +84 -26
  30. data/lib/google/cloud/bigtable/read_operations.rb +40 -33
  31. data/lib/google/cloud/bigtable/routing_policy.rb +6 -6
  32. data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +30 -29
  33. data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +6 -6
  34. data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +27 -26
  35. data/lib/google/cloud/bigtable/row_filter.rb +28 -28
  36. data/lib/google/cloud/bigtable/row_range.rb +18 -18
  37. data/lib/google/cloud/bigtable/rows_reader.rb +77 -32
  38. data/lib/google/cloud/bigtable/sample_row_key.rb +1 -1
  39. data/lib/google/cloud/bigtable/service.rb +69 -29
  40. data/lib/google/cloud/bigtable/status.rb +2 -2
  41. data/lib/google/cloud/bigtable/table/cluster_state.rb +1 -1
  42. data/lib/google/cloud/bigtable/table/list.rb +2 -2
  43. data/lib/google/cloud/bigtable/table/restore_job.rb +12 -12
  44. data/lib/google/cloud/bigtable/table.rb +42 -40
  45. data/lib/google/cloud/bigtable/value_range.rb +18 -18
  46. data/lib/google/cloud/bigtable/version.rb +1 -1
  47. data/lib/google/cloud/bigtable.rb +28 -7
  48. data/lib/google-cloud-bigtable.rb +6 -2
  49. metadata +15 -113
@@ -63,6 +63,10 @@ module Google
63
63
  # updater_proc is supplied.
64
64
  # @param timeout [Integer]
65
65
  # The default timeout, in seconds, for calls made through this client. Optional.
66
+ # @param channel_selection [Symbol] The algorithm for selecting a channel from the
67
+ # pool of available channels. This parameter can have the following symbols:
68
+ # * `:least_loaded` selects the channel having least number of concurrent streams.
69
+ # @param channel_count [Integer] The number of channels in the pool.
66
70
  # @return [Google::Cloud::Bigtable::Project]
67
71
  #
68
72
  # @example
@@ -70,19 +74,25 @@ module Google
70
74
  #
71
75
  # client = Google::Cloud::Bigtable.new
72
76
  #
77
+ # rubocop:disable Metrics/CyclomaticComplexity
78
+ # rubocop:disable Metrics/AbcSize
73
79
  def self.new project_id: nil,
74
80
  credentials: nil,
75
81
  emulator_host: nil,
76
82
  scope: nil,
77
83
  endpoint: nil,
78
84
  endpoint_admin: nil,
79
- timeout: nil
80
- project_id ||= default_project_id
81
- scope ||= configure.scope
82
- timeout ||= configure.timeout
85
+ timeout: nil,
86
+ channel_selection: nil,
87
+ channel_count: nil
88
+ project_id ||= default_project_id
89
+ scope ||= configure.scope
90
+ timeout ||= configure.timeout
83
91
  emulator_host ||= configure.emulator_host
84
- endpoint ||= configure.endpoint
92
+ endpoint ||= configure.endpoint
85
93
  endpoint_admin ||= configure.endpoint_admin
94
+ channel_selection ||= configure.channel_selection
95
+ channel_count ||= configure.channel_count
86
96
 
87
97
  return new_with_emulator project_id, emulator_host, timeout if emulator_host
88
98
 
@@ -90,10 +100,15 @@ module Google
90
100
  project_id = resolve_project_id project_id, credentials
91
101
  raise ArgumentError, "project_id is missing" if project_id.empty?
92
102
 
93
- service = Bigtable::Service.new \
94
- project_id, credentials, host: endpoint, host_admin: endpoint_admin, timeout: timeout
103
+ service = Bigtable::Service.new project_id, credentials, host: endpoint,
104
+ host_admin: endpoint_admin, timeout: timeout,
105
+ channel_selection: channel_selection,
106
+ channel_count: channel_count
95
107
  Bigtable::Project.new service
96
108
  end
109
+ # rubocop:enable Metrics/CyclomaticComplexity
110
+ # rubocop:enable Metrics/AbcSize
111
+
97
112
 
98
113
  ##
99
114
  # Configure the Google Cloud Bigtable library.
@@ -109,11 +124,17 @@ module Google
109
124
  # parameter `keyfile` is considered deprecated, but may also be used.)
110
125
  # * `scope` - (String, Array<String>) The OAuth 2.0 scopes controlling
111
126
  # the set of resources and operations that the connection can access.
127
+ # * `quota_project` - (String) The project ID for a project that can be
128
+ # used by client libraries for quota and billing purposes.
112
129
  # * `timeout` - (Integer) Default timeout to use in requests.
113
130
  # * `endpoint` - (String) Override of the endpoint host name, or `nil`
114
131
  # to use the default endpoint.
115
132
  # * `endpoint_admin` - (String) Override of the admin service endpoint
116
133
  # host name, or `nil` to use the default admin endpoint.
134
+ # * `channel_selection` - (Symbol) The algorithm for selecting a channel from the
135
+ # pool of available channels. This parameter can have the following symbols:
136
+ # `:least_loaded` selects the channel having least number of concurrent streams.
137
+ # * `channel_count` - (Integer) The number of channels in the pool.
117
138
  #
118
139
  # @return [Google::Cloud::Config] The configuration object the
119
140
  # Google::Cloud::Bigtable library uses.
@@ -65,11 +65,13 @@ module Google
65
65
  # bigtable = gcloud.bigtable
66
66
  #
67
67
  def bigtable scope: nil, timeout: nil, credentials: nil
68
+ credentials ||= @keyfile
69
+ timeout ||= @timeout
68
70
  Google::Cloud.bigtable(
69
71
  project_id: @project,
70
- credentials: (credentials || @keyfile),
72
+ credentials: credentials,
71
73
  scope: scope,
72
- timeout: (timeout || @timeout)
74
+ timeout: timeout
73
75
  )
74
76
  end
75
77
 
@@ -171,4 +173,6 @@ Google::Cloud.configure.add_config! :bigtable do |config|
171
173
  config.add_field! :emulator_host, default_emulator, match: String, allow_nil: true
172
174
  config.add_field! :endpoint, "bigtable.googleapis.com", match: String
173
175
  config.add_field! :endpoint_admin, "bigtableadmin.googleapis.com", match: String
176
+ config.add_field! :channel_selection, :least_loaded, match: Symbol
177
+ config.add_field! :channel_count, 1, match: Integer
174
178
  end
metadata CHANGED
@@ -1,31 +1,31 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google-cloud-bigtable
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.0
4
+ version: 2.10.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Google LLC
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-05-03 00:00:00.000000000 Z
11
+ date: 2024-03-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: google-cloud-bigtable-admin-v2
14
+ name: concurrent-ruby
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0.0'
19
+ version: '1.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0.0'
26
+ version: '1.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: google-cloud-bigtable-v2
28
+ name: google-cloud-bigtable-admin-v2
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
@@ -39,131 +39,33 @@ dependencies:
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0.0'
41
41
  - !ruby/object:Gem::Dependency
42
- name: google-cloud-core
42
+ name: google-cloud-bigtable-v2
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '1.5'
47
+ version: '0.14'
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
- version: '1.5'
55
- - !ruby/object:Gem::Dependency
56
- name: google-style
57
- requirement: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - "~>"
60
- - !ruby/object:Gem::Version
61
- version: 1.25.1
62
- type: :development
63
- prerelease: false
64
- version_requirements: !ruby/object:Gem::Requirement
65
- requirements:
66
- - - "~>"
67
- - !ruby/object:Gem::Version
68
- version: 1.25.1
69
- - !ruby/object:Gem::Dependency
70
- name: minitest
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '5.14'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '5.14'
54
+ version: '0.14'
83
55
  - !ruby/object:Gem::Dependency
84
- name: minitest-focus
85
- requirement: !ruby/object:Gem::Requirement
86
- requirements:
87
- - - "~>"
88
- - !ruby/object:Gem::Version
89
- version: '1.1'
90
- type: :development
91
- prerelease: false
92
- version_requirements: !ruby/object:Gem::Requirement
93
- requirements:
94
- - - "~>"
95
- - !ruby/object:Gem::Version
96
- version: '1.1'
97
- - !ruby/object:Gem::Dependency
98
- name: minitest-rg
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - "~>"
102
- - !ruby/object:Gem::Version
103
- version: '5.2'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - "~>"
109
- - !ruby/object:Gem::Version
110
- version: '5.2'
111
- - !ruby/object:Gem::Dependency
112
- name: redcarpet
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: '3.0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: '3.0'
125
- - !ruby/object:Gem::Dependency
126
- name: simplecov
127
- requirement: !ruby/object:Gem::Requirement
128
- requirements:
129
- - - "~>"
130
- - !ruby/object:Gem::Version
131
- version: '0.9'
132
- type: :development
133
- prerelease: false
134
- version_requirements: !ruby/object:Gem::Requirement
135
- requirements:
136
- - - "~>"
137
- - !ruby/object:Gem::Version
138
- version: '0.9'
139
- - !ruby/object:Gem::Dependency
140
- name: yard
141
- requirement: !ruby/object:Gem::Requirement
142
- requirements:
143
- - - "~>"
144
- - !ruby/object:Gem::Version
145
- version: '0.9'
146
- type: :development
147
- prerelease: false
148
- version_requirements: !ruby/object:Gem::Requirement
149
- requirements:
150
- - - "~>"
151
- - !ruby/object:Gem::Version
152
- version: '0.9'
153
- - !ruby/object:Gem::Dependency
154
- name: yard-doctest
56
+ name: google-cloud-core
155
57
  requirement: !ruby/object:Gem::Requirement
156
58
  requirements:
157
59
  - - "~>"
158
60
  - !ruby/object:Gem::Version
159
- version: 0.1.13
160
- type: :development
61
+ version: '1.5'
62
+ type: :runtime
161
63
  prerelease: false
162
64
  version_requirements: !ruby/object:Gem::Requirement
163
65
  requirements:
164
66
  - - "~>"
165
67
  - !ruby/object:Gem::Version
166
- version: 0.1.13
68
+ version: '1.5'
167
69
  description: google-cloud-bigtable is the official library for Cloud Bigtable API.
168
70
  email: googleapis-packages@google.com
169
71
  executables: []
@@ -242,14 +144,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
242
144
  requirements:
243
145
  - - ">="
244
146
  - !ruby/object:Gem::Version
245
- version: '2.5'
147
+ version: '2.7'
246
148
  required_rubygems_version: !ruby/object:Gem::Requirement
247
149
  requirements:
248
150
  - - ">="
249
151
  - !ruby/object:Gem::Version
250
152
  version: '0'
251
153
  requirements: []
252
- rubygems_version: 3.2.16
154
+ rubygems_version: 3.5.6
253
155
  signing_key:
254
156
  specification_version: 4
255
157
  summary: API Client library for Cloud Bigtable API