flydata 0.2.24 → 0.2.25
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/flydata.gemspec +5 -4
- data/lib/flydata/command/sync.rb +6 -0
- data/lib/flydata/fluent-plugins/in_mysql_binlog_flydata.rb +3 -2
- data/lib/flydata/sync_file_manager.rb +16 -8
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 950ac222e77c45b7dfb9a65f2921d612d78d0a56
|
4
|
+
data.tar.gz: 50e414cced803f9a3ebf279ebef5c5b0409607b6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c9ead00fb45d5f022632e7e59d9b128e9c44b7878e85c6a9796aae0b77e9f5d41bcb83812ef5c32058a1372d5c87be5dc6e9febe4d6416d7e81e2ba8564c2dc3
|
7
|
+
data.tar.gz: f1f36e0bb8354c5580e8be6df19f7f2bf4c23714420b28d9a0a74cd84d9d83dbc692c371503db66376dd42825d9ddab9ff505490f63169d11af818cb59f3b613
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.2.
|
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.
|
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-
|
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.
|
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
|
data/lib/flydata/command/sync.rb
CHANGED
@@ -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+")
|
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.
|
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-
|
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.
|
568
|
+
rubygems_version: 2.2.2
|
569
569
|
signing_key:
|
570
570
|
specification_version: 4
|
571
571
|
summary: FlyData Agent
|