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 +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
|