fluent-plugin-aliyun-odps 0.0.9 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 3db6116eb96dd0bcba4322be5691dda1db3b8c84
4
- data.tar.gz: eccbe6c58ce579d2b88de9a19742520bf749fdcf
3
+ metadata.gz: 24f7ee66fa1af9233ffca9aa110d10c6e74cf4d7
4
+ data.tar.gz: 7dd141195033863d501c3e2be9ecc0e0e2075c94
5
5
  SHA512:
6
- metadata.gz: 7475f393381c276de37b1ca0df214db31fdb72eb60857cf29bc5038118dab497c1e28d1ad52ad303bb4756fd0fea3ce4d6b7fe98d288e8a8504b9fb04c74d52b
7
- data.tar.gz: 7f0a56ac253cb3c88b4328c4d7a83c000a912034ca4290b8d4c0de8de972a16336d4df13a3a5e8fdfe697472f945ea3c19917a3f0d283ac3508f6692aeda85a2
6
+ metadata.gz: 749bc9bfc987581ed7bbbff279ba61a695a3138ddb11a1f8c3d8d3588eee60d1c3c67a0aebb4fffa144215869827dcc9abb029551f6a9b87d75ebc55eaf4ea9e
7
+ data.tar.gz: 87ab9ea47266abb85bf222195cd64210a6fd9284864cec71964bd405da8fcd53bcfa68cc1802615024642e97ea71281b205a0069c6a22f890eec972cd750c546
@@ -9,4 +9,6 @@ Add error msg when add partition fail, support fast crc
9
9
  0.0.8
10
10
  Add abandon mode, fix fluent retry bug, fix partition mixed mode bug.
11
11
  0.0.9
12
- Hotfix retry log error bug.
12
+ Hotfix retry log error bug.
13
+ 0.1.0
14
+ Add partition when catch NoSuchPartition.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.9
1
+ 0.1.0
@@ -97,15 +97,6 @@ module Fluent
97
97
  @client = OdpsDatahub::StreamClient.new(odpsConfig, config[:project], @table)
98
98
  @client.loadShard(@shard_number)
99
99
  @client.waitForShardLoad
100
- partitionMaps=@client.getPartitionList
101
- @partitionList=[]
102
- for map in partitionMaps do
103
- partitionName=''
104
- map.each { |k, v|
105
- partitionName+=k+"="+v+","
106
- }
107
- @partitionList<<partitionName.chomp(",")
108
- end
109
100
  rescue => e
110
101
  raise "loadShard failed,"+e.message
111
102
  end
@@ -180,7 +171,7 @@ module Fluent
180
171
  end
181
172
 
182
173
  rescue => e
183
- raise "Failed to format the data:"+e.backtrace.inspect.to_s
174
+ raise "Failed to format the data:"+ e.message + " " +e.backtrace.inspect.to_s
184
175
  end
185
176
  }
186
177
 
@@ -188,19 +179,11 @@ module Fluent
188
179
  #multi thread
189
180
  sendThread = Array.new
190
181
  unless @partition.blank? then
191
- partitions.each { |k, v|
192
- #if the partition is not exist, create one
193
- unless @partitionList.include?(k)
194
- @client.addPartition(k)
195
- @partitionList << k
196
- @log.info "add partition "+k
197
- end
198
- }
199
182
  for thread in 0..@thread_number-1
200
183
  sendThread[thread] = Thread.start(thread) do |threadId|
201
- retryTime = @retry_time
202
- begin
203
- partitions.each { |k, v|
184
+ partitions.each { |k, v|
185
+ retryTime = @retry_time
186
+ begin
204
187
  sendCount = v.size/@thread_number
205
188
  restCount = 0
206
189
  if threadId == @thread_number-1
@@ -208,27 +191,34 @@ module Fluent
208
191
  end
209
192
  @client.createStreamArrayWriter().write(v[sendCount*threadId..sendCount*(threadId+1)+restCount-1], k)
210
193
  @log.info "Successfully import "+(sendCount+restCount).to_s+" data to partition:"+k+",table:"+@table+" at threadId:"+threadId.to_s
211
- }
212
- rescue => e
213
- # reload shard
214
- if e.message.include? "ShardNotReady" or e.message.include? "InvalidShardId"
215
- @log.warn "write failed, msg:" + e.message + ", reload shard."
216
- @client.loadShard(@shard_number)
217
- @client.waitForShardLoad
218
- end
219
- if retryTime > 0
220
- @log.warn "Fail to write, retry in " + @retry_interval.to_s + "sec. Error at threadId:"+threadId.to_s+" Msg:"+e.message
221
- sleep(@retry_interval)
222
- retryTime -= 1
223
- retry
224
- else
225
- if (@abandon_mode)
226
- @log.error "Retry failed, abandon this pack. Msg:" + e.message
194
+ rescue => e
195
+ # reload shard
196
+ if e.message.include? "ShardNotReady" or e.message.include? "InvalidShardId"
197
+ @log.warn "write failed, msg:" + e.message + ", reload shard."
198
+ @client.loadShard(@shard_number)
199
+ @client.waitForShardLoad
200
+ elsif e.message.include? "NoSuchPartition"
201
+ begin
202
+ @client.addPartition(k)
203
+ @log.info "add partition "+ k
204
+ rescue => ex
205
+ @log.error "add partition failed"+ ex.message
206
+ end
207
+ end
208
+ if retryTime > 0
209
+ @log.warn "Fail to write, retry in " + @retry_interval.to_s + "sec. Error at threadId:"+threadId.to_s+" Msg:"+e.message
210
+ sleep(@retry_interval)
211
+ retryTime -= 1
212
+ retry
227
213
  else
228
- raise e
214
+ if (@abandon_mode)
215
+ @log.error "Retry failed, abandon this pack. Msg:" + e.message
216
+ else
217
+ raise e
218
+ end
229
219
  end
230
220
  end
231
- end
221
+ }
232
222
  end
233
223
  end
234
224
  else
@@ -273,7 +263,7 @@ module Fluent
273
263
  end
274
264
  rescue => e
275
265
  # ignore other exceptions to use Fluentd retry
276
- raise "write records failed,"+e.backtrace.inspect.to_s
266
+ raise "write records failed," + e.message + " " +e.backtrace.inspect.to_s
277
267
  end
278
268
  end
279
269
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fluent-plugin-aliyun-odps
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.9
4
+ version: 0.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Xiao Dong
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-01-05 00:00:00.000000000 Z
12
+ date: 2016-01-06 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: fluentd