flydata 0.2.24 → 0.2.25

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c6418100e744a1d2e8b56aa267859c01fd27b320
4
- data.tar.gz: 49d47ce3f12d3a0128cb2facb1d6a1da96dcd0c7
3
+ metadata.gz: 950ac222e77c45b7dfb9a65f2921d612d78d0a56
4
+ data.tar.gz: 50e414cced803f9a3ebf279ebef5c5b0409607b6
5
5
  SHA512:
6
- metadata.gz: 1a63f2132dd06a44904d4ddacf305466466f498c2823da2ff5b84b2054ee28745f4627be3484bd82c723304f0ccf5408b16ba6da0d0841b34691287ab7d2e2b1
7
- data.tar.gz: 604b769fda44673787567480d1075bb4913886389bb8a641642de37d0de16d7e17ae58b98f8058f786dbc33ad099d2b81f04e65af4e2b29a4d18828db3954a6c
6
+ metadata.gz: c9ead00fb45d5f022632e7e59d9b128e9c44b7878e85c6a9796aae0b77e9f5d41bcb83812ef5c32058a1372d5c87be5dc6e9febe4d6416d7e81e2ba8564c2dc3
7
+ data.tar.gz: f1f36e0bb8354c5580e8be6df19f7f2bf4c23714420b28d9a0a74cd84d9d83dbc692c371503db66376dd42825d9ddab9ff505490f63169d11af818cb59f3b613
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.24
1
+ 0.2.25
data/flydata.gemspec CHANGED
@@ -2,14 +2,16 @@
2
2
  # DO NOT EDIT THIS FILE DIRECTLY
3
3
  # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
4
  # -*- encoding: utf-8 -*-
5
+ # stub: flydata 0.2.25 ruby lib
5
6
 
6
7
  Gem::Specification.new do |s|
7
8
  s.name = "flydata"
8
- s.version = "0.2.24"
9
+ s.version = "0.2.25"
9
10
 
10
11
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
12
+ s.require_paths = ["lib"]
11
13
  s.authors = ["Koichi Fujikawa", "Masashi Miyazaki", "Matthew Luu", "Mak Inada", "Sriram NS"]
12
- s.date = "2014-12-18"
14
+ s.date = "2014-12-21"
13
15
  s.description = "FlyData Agent"
14
16
  s.email = "sysadmin@flydata.com"
15
17
  s.executables = ["fdmysqldump", "flydata", "serverinfo"]
@@ -143,8 +145,7 @@ Gem::Specification.new do |s|
143
145
  ]
144
146
  s.homepage = "http://flydata.com/"
145
147
  s.licenses = ["All right reserved."]
146
- s.require_paths = ["lib"]
147
- s.rubygems_version = "2.0.14"
148
+ s.rubygems_version = "2.2.2"
148
149
  s.summary = "FlyData Agent"
149
150
 
150
151
  if s.respond_to? :specification_version then
@@ -92,6 +92,7 @@ module Flydata
92
92
  delete_files.flatten.each do |path|
93
93
  FileUtils.rm(path) if File.exists?(path)
94
94
  end
95
+ sync_fm.close
95
96
  log_info_stdout("Reset completed successfully.")
96
97
  end
97
98
 
@@ -142,6 +143,7 @@ module Flydata
142
143
  de = retrieve_data_entry
143
144
  sync_fm = Flydata::FileUtil::SyncFileManager.new(de)
144
145
  binlog_path = sync_fm.binlog_path
146
+ sync_fm.close
145
147
  `touch #{binlog_path}`
146
148
  log_info_stdout("Created an empty binlog position file.")
147
149
  log_info_stdout("-> #{binlog_path}")
@@ -169,6 +171,7 @@ module Flydata
169
171
  sync_fm = Flydata::FileUtil::SyncFileManager.new(de)
170
172
  dump_pos_info = sync_fm.load_dump_pos
171
173
  fp = sync_fm.dump_file_path
174
+ sync_fm.close
172
175
 
173
176
  # status is parsing but dumpfile doesn't exist due to streaming -> raise error
174
177
  if dump_pos_info[:status] == STATUS_PARSING && !File.exists?(fp)
@@ -297,6 +300,7 @@ module Flydata
297
300
  parse_mysqldump_and_send(mysqldump_io, dp, de, sync_fm, db_bytesize)
298
301
  end
299
302
  wait_for_mysqldump_processed(dp, de, sync_fm)
303
+ sync_fm.close
300
304
  complete
301
305
  end
302
306
 
@@ -553,6 +557,7 @@ Thank you for using FlyData!
553
557
  else
554
558
  raise "Initial sync status is not complete. Try running 'flydata sync'."
555
559
  end
560
+ sync_fm.close
556
561
  end
557
562
 
558
563
  def generate_json(mysql_table, values)
@@ -578,6 +583,7 @@ Thank you for using FlyData!
578
583
  mp['initial_sync'] = rs[:initial_sync]
579
584
  mp['tables'] = rs[:tables]
580
585
  end
586
+ sync_fm.close
581
587
  de
582
588
  end
583
589
 
@@ -72,7 +72,7 @@ class MysqlBinlogFlydataInput < MysqlBinlogInput
72
72
  @tables << table unless @tables.include?(table)
73
73
  @omit_events[table] = [:delete]
74
74
  end
75
- sync_fm = Flydata::FileUtil::SyncFileManager.new(nil) # Passing nil for data_entry as this class does not use methods which require data_entry
75
+ @sync_fm = Flydata::FileUtil::SyncFileManager.new(nil) # Passing nil for data_entry as this class does not use methods which require data_entry
76
76
 
77
77
  table_meta = Mysql::TableMeta.new(
78
78
  mysql_url: mysql_url, database: @database, tables: @tables)
@@ -80,7 +80,7 @@ class MysqlBinlogFlydataInput < MysqlBinlogInput
80
80
 
81
81
  @context = Mysql::Context.new(
82
82
  database: @database, tables: @tables,
83
- tag: @tag, sync_fm: sync_fm, omit_events: @omit_events,
83
+ tag: @tag, sync_fm: @sync_fm, omit_events: @omit_events,
84
84
  table_meta: table_meta,
85
85
  )
86
86
  @record_dispatcher = Mysql::FlydataBinlogRecordDispatcher.new(@context)
@@ -169,6 +169,7 @@ EOS
169
169
  $log.error "Unable to stop Kodama"
170
170
  end
171
171
  end
172
+ @sync_fm.close
172
173
  end
173
174
 
174
175
  def wait_till_safe_to_stop
@@ -6,6 +6,12 @@ module Flydata
6
6
  TABLE_POSITIONS_DIR = ENV['FLYDATA_TABLE_POSITIONS'] || File.join(FLYDATA_HOME, 'positions')
7
7
  def initialize(data_entry)
8
8
  @data_entry = data_entry
9
+ @table_position_files = {} # File objects keyed by table name
10
+ end
11
+
12
+ def close
13
+ @table_position_files.values.each {|f| f.close }
14
+ @table_position_files = {}
9
15
  end
10
16
 
11
17
  def dump_file_path
@@ -81,14 +87,7 @@ module Flydata
81
87
  file = File.join(table_positions_dir_path, table_name + ".pos")
82
88
  retry_count = 0
83
89
  begin
84
- File.open(file, "r+") do |f|
85
- seq = f.read
86
- seq = seq.to_i + 1
87
- yield(seq)
88
- f.rewind
89
- f.truncate(0)
90
- f.write(seq)
91
- end
90
+ @table_position_files[table_name] ||= File.open(file, "r+")
92
91
  rescue Errno::ENOENT
93
92
  raise if retry_count > 0 # Already retried. Must be a differentfile causing the error
94
93
  # File not exist. Create one with initial value of '0'
@@ -96,6 +95,15 @@ module Flydata
96
95
  retry_count += 1
97
96
  retry
98
97
  end
98
+ f = @table_position_files[table_name]
99
+ seq = f.read
100
+ seq = seq.to_i + 1
101
+ yield(seq)
102
+ f.rewind
103
+ f.truncate(0)
104
+ f.write(seq)
105
+ f.flush
106
+ f.rewind
99
107
  end
100
108
 
101
109
  def sync_info_file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flydata
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.24
4
+ version: 0.2.25
5
5
  platform: ruby
6
6
  authors:
7
7
  - Koichi Fujikawa
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-12-18 00:00:00.000000000 Z
15
+ date: 2014-12-21 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: rest-client
@@ -565,7 +565,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
565
565
  version: '0'
566
566
  requirements: []
567
567
  rubyforge_project:
568
- rubygems_version: 2.0.14
568
+ rubygems_version: 2.2.2
569
569
  signing_key:
570
570
  specification_version: 4
571
571
  summary: FlyData Agent