google-cloud-bigtable 0.6.2 → 1.0.2
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/AUTHENTICATION.md +4 -26
- data/CHANGELOG.md +85 -0
- data/CONTRIBUTING.md +1 -1
- data/OVERVIEW.md +388 -19
- data/lib/google-cloud-bigtable.rb +19 -22
- data/lib/google/bigtable/admin/v2/bigtable_table_admin_services_pb.rb +1 -1
- data/lib/google/bigtable/v2/bigtable_pb.rb +3 -0
- data/lib/google/bigtable/v2/bigtable_services_pb.rb +1 -1
- data/lib/google/cloud/bigtable.rb +11 -17
- data/lib/google/cloud/bigtable/admin.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/bigtable_instance_admin_client.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/bigtable_table_admin_client.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/credentials.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_instance_admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/bigtable_table_admin.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/instance.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/bigtable/admin/v2/table.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/iam_policy.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/options.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/iam/v1/policy.rb +7 -6
- data/lib/google/cloud/bigtable/admin/v2/doc/google/longrunning/operations.rb +2 -2
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/any.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/duration.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/empty.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/field_mask.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/protobuf/timestamp.rb +1 -1
- data/lib/google/cloud/bigtable/admin/v2/doc/google/rpc/status.rb +7 -55
- data/lib/google/cloud/bigtable/admin/v2/doc/google/type/expr.rb +1 -1
- data/lib/google/cloud/bigtable/app_profile.rb +162 -96
- data/lib/google/cloud/bigtable/app_profile/job.rb +5 -8
- data/lib/google/cloud/bigtable/app_profile/list.rb +18 -12
- data/lib/google/cloud/bigtable/chunk_processor.rb +24 -36
- data/lib/google/cloud/bigtable/cluster.rb +45 -18
- data/lib/google/cloud/bigtable/cluster/job.rb +3 -7
- data/lib/google/cloud/bigtable/cluster/list.rb +22 -20
- data/lib/google/cloud/bigtable/column_family.rb +18 -231
- data/lib/google/cloud/bigtable/column_family_map.rb +426 -0
- data/lib/google/cloud/bigtable/column_range.rb +15 -7
- data/lib/google/cloud/bigtable/convert.rb +12 -4
- data/lib/google/cloud/bigtable/errors.rb +4 -1
- data/lib/google/cloud/bigtable/gc_rule.rb +188 -69
- data/lib/google/cloud/bigtable/instance.rb +209 -189
- data/lib/google/cloud/bigtable/instance/cluster_map.rb +17 -13
- data/lib/google/cloud/bigtable/instance/job.rb +6 -5
- data/lib/google/cloud/bigtable/instance/list.rb +18 -13
- data/lib/google/cloud/bigtable/longrunning_job.rb +7 -1
- data/lib/google/cloud/bigtable/mutation_entry.rb +36 -39
- data/lib/google/cloud/bigtable/mutation_operations.rb +90 -73
- data/lib/google/cloud/bigtable/policy.rb +9 -5
- data/lib/google/cloud/bigtable/project.rb +87 -196
- data/lib/google/cloud/bigtable/read_modify_write_rule.rb +15 -10
- data/lib/google/cloud/bigtable/read_operations.rb +42 -59
- data/lib/google/cloud/bigtable/routing_policy.rb +172 -0
- data/lib/google/cloud/bigtable/row.rb +32 -21
- data/lib/google/cloud/bigtable/row_filter.rb +80 -35
- data/lib/google/cloud/bigtable/row_filter/chain_filter.rb +119 -68
- data/lib/google/cloud/bigtable/row_filter/condition_filter.rb +8 -2
- data/lib/google/cloud/bigtable/row_filter/interleave_filter.rb +117 -66
- data/lib/google/cloud/bigtable/row_filter/simple_filter.rb +24 -9
- data/lib/google/cloud/bigtable/row_range.rb +5 -0
- data/lib/google/cloud/bigtable/rows_mutator.rb +14 -21
- data/lib/google/cloud/bigtable/rows_reader.rb +23 -18
- data/lib/google/cloud/bigtable/sample_row_key.rb +6 -3
- data/lib/google/cloud/bigtable/service.rb +200 -253
- data/lib/google/cloud/bigtable/status.rb +76 -0
- data/lib/google/cloud/bigtable/table.rb +158 -262
- data/lib/google/cloud/bigtable/table/cluster_state.rb +17 -6
- data/lib/google/cloud/bigtable/table/list.rb +16 -9
- data/lib/google/cloud/bigtable/v2.rb +2 -2
- data/lib/google/cloud/bigtable/v2/bigtable_client.rb +13 -13
- data/lib/google/cloud/bigtable/v2/credentials.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/bigtable.rb +17 -14
- data/lib/google/cloud/bigtable/v2/doc/google/bigtable/v2/data.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/any.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/protobuf/wrappers.rb +1 -1
- data/lib/google/cloud/bigtable/v2/doc/google/rpc/status.rb +7 -55
- data/lib/google/cloud/bigtable/value_range.rb +19 -13
- data/lib/google/cloud/bigtable/version.rb +1 -1
- metadata +67 -25
- data/lib/google/cloud/bigtable/table/column_family_map.rb +0 -70
@@ -17,10 +17,12 @@
|
|
17
17
|
|
18
18
|
require "google/cloud/bigtable/app_profile/list"
|
19
19
|
require "google/cloud/bigtable/app_profile/job"
|
20
|
+
require "google/cloud/bigtable/routing_policy"
|
20
21
|
|
21
22
|
module Google
|
22
23
|
module Cloud
|
23
24
|
module Bigtable
|
25
|
+
##
|
24
26
|
# # AppProfile
|
25
27
|
#
|
26
28
|
# A configuration object describing how Cloud Bigtable should treat traffic
|
@@ -33,7 +35,7 @@ module Google
|
|
33
35
|
#
|
34
36
|
# instance = bigtable.instance("my-instance")
|
35
37
|
#
|
36
|
-
# app_profile =
|
38
|
+
# app_profile = instance.app_profile("my-app-profile")
|
37
39
|
#
|
38
40
|
# # Update
|
39
41
|
# app_profile.description = "User data instance app profile"
|
@@ -58,88 +60,115 @@ module Google
|
|
58
60
|
@changed_fields = {}
|
59
61
|
end
|
60
62
|
|
61
|
-
|
63
|
+
##
|
64
|
+
# The unique identifier for the project to which the app profile belongs.
|
62
65
|
#
|
63
66
|
# @return [String]
|
67
|
+
#
|
64
68
|
def project_id
|
65
69
|
@grpc.name.split("/")[1]
|
66
70
|
end
|
67
71
|
|
68
|
-
|
72
|
+
##
|
73
|
+
# The unique identifier for the instance to which the app profile belongs.
|
69
74
|
#
|
70
75
|
# @return [String]
|
76
|
+
#
|
71
77
|
def instance_id
|
72
78
|
@grpc.name.split("/")[3]
|
73
79
|
end
|
74
80
|
|
81
|
+
##
|
75
82
|
# The unique identifier for the app profile.
|
76
83
|
#
|
77
84
|
# @return [String]
|
85
|
+
#
|
78
86
|
def name
|
79
87
|
@grpc.name.split("/")[5]
|
80
88
|
end
|
81
89
|
|
82
|
-
|
83
|
-
#
|
90
|
+
##
|
91
|
+
# The full path for the app profile resource. Values are of the form:
|
92
|
+
# `projects/<project_id>/instances/<instance_id>/appProfiles/<app_profile_name>`.
|
84
93
|
#
|
85
94
|
# @return [String]
|
95
|
+
#
|
86
96
|
def path
|
87
97
|
@grpc.name
|
88
98
|
end
|
89
99
|
|
100
|
+
##
|
90
101
|
# Etag for optimistic concurrency control.
|
91
102
|
#
|
92
103
|
# @return [String]
|
104
|
+
#
|
93
105
|
def etag
|
94
106
|
@grpc.etag
|
95
107
|
end
|
96
108
|
|
97
|
-
|
109
|
+
##
|
110
|
+
# Description of the app profile.
|
98
111
|
#
|
99
112
|
# @return [String]
|
113
|
+
#
|
100
114
|
def description
|
101
115
|
@grpc.description
|
102
116
|
end
|
103
117
|
|
104
|
-
|
118
|
+
##
|
119
|
+
# Sets the description of the app profile.
|
105
120
|
#
|
106
121
|
# @param text [String] Description text
|
122
|
+
#
|
107
123
|
def description= text
|
108
124
|
@grpc.description = text
|
109
125
|
@changed_fields["description"] = "description"
|
110
126
|
end
|
111
127
|
|
112
|
-
|
128
|
+
##
|
129
|
+
# Gets the multi-cluster routing policy, if present.
|
130
|
+
#
|
131
|
+
# @return [Google::Cloud::Bigtable::MultiClusterRoutingUseAny, nil]
|
113
132
|
#
|
114
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
|
115
133
|
def multi_cluster_routing
|
116
|
-
@grpc.multi_cluster_routing_use_any
|
134
|
+
return nil unless @grpc.multi_cluster_routing_use_any
|
135
|
+
|
136
|
+
Google::Cloud::Bigtable::MultiClusterRoutingUseAny.new
|
117
137
|
end
|
118
138
|
|
119
|
-
|
139
|
+
##
|
140
|
+
# Gets the single cluster routing policy, if present.
|
141
|
+
#
|
142
|
+
# @return [Google::Cloud::Bigtable::SingleClusterRouting, nil]
|
120
143
|
#
|
121
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting]
|
122
144
|
def single_cluster_routing
|
123
|
-
@grpc.single_cluster_routing
|
145
|
+
return nil unless @grpc.single_cluster_routing
|
146
|
+
|
147
|
+
Google::Cloud::Bigtable::SingleClusterRouting.new(
|
148
|
+
@grpc.single_cluster_routing.cluster_id,
|
149
|
+
@grpc.single_cluster_routing.allow_transactional_writes
|
150
|
+
)
|
124
151
|
end
|
125
152
|
|
126
|
-
|
153
|
+
##
|
154
|
+
# Sets the routing policy for the app profile.
|
127
155
|
#
|
128
|
-
# @param policy [Google::
|
129
|
-
# The routing policy for all read/write requests that use this app profile.
|
130
|
-
# A value must be explicitly set.
|
156
|
+
# @param policy [Google::Cloud::Bigtable::RoutingPolicy]
|
157
|
+
# The routing policy for all read/write requests that use this app profile. A value must be explicitly set.
|
131
158
|
#
|
132
159
|
# Routing Policies:
|
133
|
-
# *
|
134
|
-
#
|
135
|
-
#
|
136
|
-
# read-your-writes
|
137
|
-
#
|
138
|
-
#
|
139
|
-
#
|
140
|
-
#
|
141
|
-
#
|
142
|
-
#
|
160
|
+
# * {Google::Cloud::Bigtable::MultiClusterRoutingUseAny} - Read/write
|
161
|
+
# requests may be routed to any cluster in the instance and will
|
162
|
+
# fail over to another cluster in the event of transient errors or
|
163
|
+
# delays. Choosing this option sacrifices read-your-writes
|
164
|
+
# consistency to improve availability.
|
165
|
+
# * {Google::Cloud::Bigtable::SingleClusterRouting} - Unconditionally
|
166
|
+
# routes all read/write requests to a specific cluster. This option
|
167
|
+
# preserves read-your-writes consistency but does not improve
|
168
|
+
# availability. Value contains `cluster_id` and optional field
|
169
|
+
# `allow_transactional_writes`.
|
170
|
+
#
|
171
|
+
# @example Set multi cluster routing policy.
|
143
172
|
# require "google/cloud/bigtable"
|
144
173
|
#
|
145
174
|
# bigtable = Google::Cloud::Bigtable.new
|
@@ -149,7 +178,7 @@ module Google
|
|
149
178
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
150
179
|
# app_profile.routing_policy = routing_policy
|
151
180
|
#
|
152
|
-
# @example Set single cluster routing policy
|
181
|
+
# @example Set single cluster routing policy.
|
153
182
|
# require "google/cloud/bigtable"
|
154
183
|
#
|
155
184
|
# bigtable = Google::Cloud::Bigtable.new
|
@@ -157,31 +186,62 @@ module Google
|
|
157
186
|
# app_profile = instance.app_profile("my-app-profile")
|
158
187
|
#
|
159
188
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
160
|
-
# "my-instance-cluster-1"
|
189
|
+
# "my-instance-cluster-1",
|
161
190
|
# allow_transactional_writes: true
|
162
191
|
# )
|
163
192
|
# app_profile.routing_policy = routing_policy
|
164
193
|
#
|
165
194
|
def routing_policy= policy
|
166
|
-
|
167
|
-
|
168
|
-
@grpc.single_cluster_routing =
|
195
|
+
routing_policy_grpc = policy.to_grpc
|
196
|
+
if routing_policy_grpc.is_a? Google::Bigtable::Admin::V2::AppProfile::SingleClusterRouting
|
197
|
+
@grpc.single_cluster_routing = routing_policy_grpc
|
169
198
|
@changed_fields["routing_policy"] = "single_cluster_routing"
|
170
199
|
else
|
171
|
-
@grpc.multi_cluster_routing_use_any =
|
200
|
+
@grpc.multi_cluster_routing_use_any = routing_policy_grpc
|
172
201
|
@changed_fields["routing_policy"] = "multi_cluster_routing_use_any"
|
173
202
|
end
|
174
203
|
end
|
175
204
|
|
176
|
-
|
205
|
+
##
|
206
|
+
# Gets the routing policy for all read/write requests that use the app
|
207
|
+
# profile.
|
208
|
+
#
|
209
|
+
# Routing Policies:
|
210
|
+
# * {Google::Cloud::Bigtable::MultiClusterRoutingUseAny} - Read/write
|
211
|
+
# requests may be routed to any cluster in the instance and will
|
212
|
+
# fail over to another cluster in the event of transient errors or
|
213
|
+
# delays. Choosing this option sacrifices read-your-writes
|
214
|
+
# consistency to improve availability.
|
215
|
+
# * {Google::Cloud::Bigtable::SingleClusterRouting} - Unconditionally
|
216
|
+
# routes all read/write requests to a specific cluster. This option
|
217
|
+
# preserves read-your-writes consistency but does not improve
|
218
|
+
# availability. Value contains `cluster_id` and optional field
|
219
|
+
# `allow_transactional_writes`.
|
220
|
+
#
|
221
|
+
# @return [Google::Cloud::Bigtable::RoutingPolicy]
|
222
|
+
#
|
223
|
+
# @example
|
224
|
+
# require "google/cloud/bigtable"
|
225
|
+
#
|
226
|
+
# bigtable = Google::Cloud::Bigtable.new
|
227
|
+
#
|
228
|
+
# instance = bigtable.instance("my-instance")
|
229
|
+
#
|
230
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
177
231
|
#
|
178
|
-
#
|
232
|
+
# app_profile = instance.create_app_profile(
|
233
|
+
# "my-app-profile",
|
234
|
+
# routing_policy,
|
235
|
+
# description: "App profile for user data instance"
|
236
|
+
# )
|
237
|
+
# puts app_profile.routing_policy
|
179
238
|
#
|
180
239
|
def routing_policy
|
181
|
-
|
240
|
+
single_cluster_routing || multi_cluster_routing
|
182
241
|
end
|
183
242
|
|
184
|
-
|
243
|
+
##
|
244
|
+
# Deletes the app profile.
|
185
245
|
#
|
186
246
|
# @param ignore_warnings [Boolean]
|
187
247
|
# Default value is false. If true, ignore safety checks when deleting
|
@@ -194,7 +254,8 @@ module Google
|
|
194
254
|
# bigtable = Google::Cloud::Bigtable.new
|
195
255
|
#
|
196
256
|
# instance = bigtable.instance("my-instance")
|
197
|
-
#
|
257
|
+
#
|
258
|
+
# app_profile = instance.app_profile("my-app-profile")
|
198
259
|
#
|
199
260
|
# app_profile.delete(ignore_warnings: true) # Ignore warnings.
|
200
261
|
#
|
@@ -203,27 +264,26 @@ module Google
|
|
203
264
|
#
|
204
265
|
def delete ignore_warnings: false
|
205
266
|
ensure_service!
|
206
|
-
service.delete_app_profile
|
207
|
-
instance_id,
|
208
|
-
name,
|
209
|
-
ignore_warnings: ignore_warnings
|
210
|
-
)
|
267
|
+
service.delete_app_profile instance_id, name, ignore_warnings: ignore_warnings
|
211
268
|
true
|
212
269
|
end
|
213
270
|
|
214
|
-
|
271
|
+
##
|
272
|
+
# Updates the app profile.
|
215
273
|
#
|
216
274
|
# @param ignore_warnings [Boolean]
|
217
275
|
# Default value is false. If true, ignore safety checks when updating
|
218
276
|
# the app profile.
|
219
277
|
# @return [Google::Cloud::Bigtable::AppProfile::Job]
|
220
278
|
#
|
221
|
-
# @example
|
279
|
+
# @example
|
222
280
|
# require "google/cloud/bigtable"
|
223
281
|
#
|
224
282
|
# bigtable = Google::Cloud::Bigtable.new
|
225
283
|
#
|
226
|
-
#
|
284
|
+
# instance = bigtable.instance("my-instance")
|
285
|
+
#
|
286
|
+
# app_profile = instance.app_profile("my-app-profile")
|
227
287
|
#
|
228
288
|
# app_profile.description = "User data instance app profile"
|
229
289
|
# app_profile.routing_policy = \
|
@@ -238,17 +298,13 @@ module Google
|
|
238
298
|
# app_profile = job.app_profile
|
239
299
|
# end
|
240
300
|
#
|
241
|
-
#
|
242
|
-
# job = app_profile.save(ignore_warnings: true)
|
243
|
-
# job.wait_until_done!
|
244
|
-
#
|
245
|
-
# @example Update with single cluster routing
|
301
|
+
# @example Update with single cluster routing.
|
246
302
|
# require "google/cloud/bigtable"
|
247
303
|
#
|
248
304
|
# bigtable = Google::Cloud::Bigtable.new
|
249
305
|
#
|
250
306
|
# instance = bigtable.instance("my-instance")
|
251
|
-
# app_profile =
|
307
|
+
# app_profile = instance.app_profile("my-app-profile")
|
252
308
|
#
|
253
309
|
# app_profile.description = "User data instance app profile"
|
254
310
|
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
@@ -261,10 +317,6 @@ module Google
|
|
261
317
|
#
|
262
318
|
# job.done? #=> false
|
263
319
|
# job.reload!
|
264
|
-
# job.done? #=> false
|
265
|
-
#
|
266
|
-
# # Reload job until completion.
|
267
|
-
# job.wait_until_done!
|
268
320
|
# job.done? #=> true
|
269
321
|
#
|
270
322
|
# if job.error?
|
@@ -273,52 +325,62 @@ module Google
|
|
273
325
|
# app_profile = job.app_profile
|
274
326
|
# puts app_profile.name
|
275
327
|
# end
|
276
|
-
|
328
|
+
#
|
277
329
|
def save ignore_warnings: false
|
278
330
|
ensure_service!
|
279
|
-
update_mask = Google::Protobuf::FieldMask.new
|
280
|
-
|
281
|
-
)
|
282
|
-
grpc = service.update_app_profile(
|
283
|
-
@grpc,
|
284
|
-
update_mask,
|
285
|
-
ignore_warnings: ignore_warnings
|
286
|
-
)
|
331
|
+
update_mask = Google::Protobuf::FieldMask.new paths: @changed_fields.values
|
332
|
+
grpc = service.update_app_profile @grpc, update_mask, ignore_warnings: ignore_warnings
|
287
333
|
@changed_fields.clear
|
288
|
-
AppProfile::Job.from_grpc
|
334
|
+
AppProfile::Job.from_grpc grpc, service
|
289
335
|
end
|
290
336
|
alias update save
|
291
337
|
|
292
|
-
|
338
|
+
##
|
339
|
+
# Reloads the app profile data.
|
293
340
|
#
|
294
341
|
# @return [Google::Cloud::Bigtable::AppProfile]
|
295
|
-
|
342
|
+
#
|
296
343
|
def reload!
|
297
|
-
@grpc = service.get_app_profile
|
344
|
+
@grpc = service.get_app_profile instance_id, name
|
298
345
|
self
|
299
346
|
end
|
300
347
|
|
301
|
-
|
348
|
+
##
|
349
|
+
# Creates an instance of the multi cluster routing policy.
|
350
|
+
#
|
351
|
+
# Read/write requests may be routed to any cluster in the instance and
|
352
|
+
# will fail over to another cluster in the event of transient errors or
|
353
|
+
# delays. Choosing this option sacrifices read-your-writes consistency
|
354
|
+
# to improve availability.
|
302
355
|
#
|
303
|
-
#
|
304
|
-
#
|
305
|
-
#
|
306
|
-
#
|
307
|
-
# @return [Google::Bigtable::Admin::V2::AppProfile::MultiClusterRoutingUseAny]
|
356
|
+
# @return [Google::Cloud::Bigtable::MultiClusterRoutingUseAny]
|
357
|
+
#
|
358
|
+
# @example
|
359
|
+
# require "google/cloud/bigtable"
|
308
360
|
#
|
309
|
-
#
|
361
|
+
# bigtable = Google::Cloud::Bigtable.new
|
310
362
|
#
|
311
|
-
#
|
363
|
+
# instance = bigtable.instance("my-instance")
|
364
|
+
#
|
365
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.multi_cluster_routing
|
366
|
+
#
|
367
|
+
# app_profile = instance.create_app_profile(
|
368
|
+
# "my-app-profile",
|
369
|
+
# routing_policy,
|
370
|
+
# description: "App profile for user data instance"
|
371
|
+
# )
|
372
|
+
# puts app_profile.routing_policy
|
312
373
|
#
|
313
374
|
def self.multi_cluster_routing
|
314
|
-
Google::Bigtable::
|
375
|
+
Google::Cloud::Bigtable::MultiClusterRoutingUseAny.new
|
315
376
|
end
|
316
377
|
|
317
|
-
|
378
|
+
##
|
379
|
+
# Creates an instance of the single cluster routing policy.
|
318
380
|
#
|
319
381
|
# Unconditionally routes all read/write requests to a specific cluster.
|
320
|
-
# This option preserves read-your-writes consistency but does not
|
321
|
-
# availability.
|
382
|
+
# This option preserves read-your-writes consistency but does not
|
383
|
+
# improve availability.
|
322
384
|
#
|
323
385
|
# @param cluster_id [String]
|
324
386
|
# The cluster to which read/write requests should be routed.
|
@@ -327,25 +389,29 @@ module Google
|
|
327
389
|
# allowed by this app profile. It is unsafe to send these requests to
|
328
390
|
# the same table/row/column in multiple clusters.
|
329
391
|
# Default value is false.
|
330
|
-
# @return [Google::Bigtable::
|
392
|
+
# @return [Google::Cloud::Bigtable::SingleClusterRouting]
|
331
393
|
#
|
332
|
-
# @example
|
394
|
+
# @example
|
395
|
+
# require "google/cloud/bigtable"
|
333
396
|
#
|
334
|
-
# Google::Cloud::Bigtable
|
397
|
+
# bigtable = Google::Cloud::Bigtable.new
|
335
398
|
#
|
336
|
-
#
|
337
|
-
#
|
338
|
-
#
|
399
|
+
# instance = bigtable.instance("my-instance")
|
400
|
+
#
|
401
|
+
# routing_policy = Google::Cloud::Bigtable::AppProfile.single_cluster_routing(
|
402
|
+
# "my-instance-cluster-1",
|
339
403
|
# allow_transactional_writes: true
|
340
404
|
# )
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
405
|
+
#
|
406
|
+
# app_profile = instance.create_app_profile(
|
407
|
+
# "my-app-profile",
|
408
|
+
# routing_policy,
|
409
|
+
# description: "App profile for user data instance"
|
410
|
+
# )
|
411
|
+
# puts app_profile.routing_policy
|
412
|
+
#
|
413
|
+
def self.single_cluster_routing cluster_id, allow_transactional_writes: false
|
414
|
+
Google::Cloud::Bigtable::SingleClusterRouting.new cluster_id, allow_transactional_writes
|
349
415
|
end
|
350
416
|
|
351
417
|
# @private
|
@@ -356,7 +422,7 @@ module Google
|
|
356
422
|
# @param service [Google::Cloud::Bigtable::Service]
|
357
423
|
# @return [Google::Cloud::Bigtable::Table]
|
358
424
|
def self.from_grpc grpc, service
|
359
|
-
new
|
425
|
+
new grpc, service
|
360
426
|
end
|
361
427
|
|
362
428
|
protected
|