myreplicator 1.1.57 → 1.1.58

Sign up to get free protection for your applications and to get access to all the features.
@@ -19,7 +19,7 @@ module Myreplicator
19
19
  @tab = 'home'
20
20
  @option = 'errors'
21
21
  @exports = Export.where("error is not null").order('source_schema ASC')
22
- @logs = Log.where(:state => 'error').order("started_at DESC")
22
+ @logs = Log.where(:state => 'error').order("started_at DESC").limit(200)
23
23
  end
24
24
 
25
25
  def kill
@@ -13,12 +13,13 @@ module Myreplicator
13
13
  ActiveRecord::Base.configurations.keys.each do |db|
14
14
  Myreplicator::VerticaLoader.clean_up_temp_tables(db)
15
15
  end
16
- folders = ["/home/share/datareplicator",
17
- "/home/share/okl/bi_apps/datareplicator/mysqldumps"
18
- ]
16
+
17
+ #removing files that are left in the storage for more than 12 hours
18
+ folders = [
19
+ "/home/share/datareplicator",
20
+ "/home/share/okl/bi_apps/datareplicator/mysqldumps"]
19
21
 
20
22
  folders.each do |folder|
21
- #cmd = "find #{folder} -mtime +2"
22
23
  cmd = "find #{folder} -mmin +720"
23
24
  l = `#{cmd}`
24
25
  list = l.split(/\n/)
@@ -1,4 +1,3 @@
1
- require 'json'
2
1
 
3
2
  module Myreplicator
4
3
  class ExportMetadata
@@ -110,7 +110,7 @@ module Myreplicator
110
110
  def incremental_export_into_outfile metadata
111
111
  unless @export_obj.is_running?
112
112
 
113
- if @export_obj.export_type == "incremental"
113
+ if @export_obj.export_type == "incremental" || (@export_obj.export_type == "all" && @export_obj.export_to == "vertica")
114
114
  max_value = @export_obj.max_value
115
115
  metadata.export_type = "incremental"
116
116
  @export_obj.update_max_val if @export_obj.max_incremental_value.blank?
@@ -150,7 +150,7 @@ module Myreplicator
150
150
  sql = ""
151
151
  replaces.each do |k,v|
152
152
  if sql.blank?
153
- sql = "REPLACE(#{column}, '#{k}', '#{v}')"
153
+ sql = "REPLACE(\\`#{column}\\`, '#{k}', '#{v}')"
154
154
  else
155
155
  sql = "REPLACE(#{sql}, '#{k}', '#{v}')"
156
156
  end
@@ -159,9 +159,10 @@ module Myreplicator
159
159
  end
160
160
  result << sql
161
161
  else
162
- result << column
162
+ result << "\\`#{column}\\`"
163
163
  end
164
164
  end
165
+ Kernel.p result
165
166
  return result
166
167
  end
167
168
 
@@ -199,7 +200,7 @@ module Myreplicator
199
200
  sql += "WHERE #{options[:incremental_col]} >= #{options[:incremental_val].to_i - 10000}" #buffer 10000
200
201
  end
201
202
  end
202
-
203
+ Kernel.p sql
203
204
  return sql
204
205
  end
205
206
 
data/lib/loader/loader.rb CHANGED
@@ -4,6 +4,7 @@ module Myreplicator
4
4
  class Loader
5
5
 
6
6
  @queue = :myreplicator_load # Provided for Resque
7
+
7
8
 
8
9
  def initialize *args
9
10
  options = args.extract_options!
@@ -52,8 +53,9 @@ module Myreplicator
52
53
  all_files = Myreplicator::Loader.metadata_files
53
54
 
54
55
  #Kernel.p "===== all_files ====="
55
- #Kernel.p all_files
56
-
56
+ #Kernel.p all_files
57
+
58
+ =begin
57
59
  all_files.each do |m|
58
60
  #Kernel.p m
59
61
  if m.export_type == "initial"
@@ -70,7 +72,66 @@ module Myreplicator
70
72
  end
71
73
 
72
74
  incrementals = all_files # Remaining are all incrementals
75
+ =end
76
+ # adding incremetal loading file to redis
77
+ files_to_metadata = {}
78
+ @redis = Redis.new(:host => Settings[:redis][:host], :port => Settings[:redis][:port])
79
+ @load_set = "myreplicator_load_set"
80
+ @load_hash = "myreplicator_load_hash"
81
+
82
+ all_files.each do |m|
83
+ if !(@redis.hexists(@load_hash, m.filepath))
84
+ @redis.hset(@load_hash, m.filepath, 0)
85
+ @redis.sadd(@load_set, m.filepath)
86
+ else
87
+ if @redis.hget(@load_hash, m.filepath) == 1
88
+ @redis.hdel(@load_hash, m.filepath)
89
+ end
90
+ end
91
+ files_to_metadata[m.filepath] = m
92
+ end
93
+
94
+ while @redis.smembers(@load_set).size >= 0
95
+ filepath = @redis.spop(@load_set)
96
+
97
+ metadata = files_to_metadata[filepath]
98
+ if metadata.blank?
99
+ next
100
+ end
101
+ if metadata.export_type == "initial"
102
+ Myreplicator::Log.run(:job_type => "loader",
103
+ :name => "#{metadata.export_type}_import",
104
+ :file => metadata.filename,
105
+ :export_id => metadata.export_id) do |log|
106
+ if Myreplicator::Loader.transfer_completed? metadata
107
+ if metadata.export_to == "vertica"
108
+ Myreplicator::Loader.incremental_load metadata
109
+ else
110
+ Myreplicator::Loader.initial_load metadata
111
+ end
112
+ Myreplicator::Loader.cleanup metadata
113
+ end
114
+ end
115
+ @redis.hset(@load_hash, metadata.filepath, 1)
116
+ else #if metadata.export_type == "incremental"
117
+ #1
118
+ Myreplicator::Log.run(:job_type => "loader",
119
+ :name => "incremental_import",
120
+ :file => metadata.filename,
121
+ :export_id => metadata.export_id) do |log|
122
+ if Myreplicator::Loader.transfer_completed? metadata
123
+ Myreplicator::Loader.incremental_load metadata
124
+ Myreplicator::Loader.cleanup metadata
125
+ end
126
+ end
127
+ #2
128
+ @redis.hset(@load_hash, metadata.filepath, 1)
129
+ end
130
+
131
+ end
132
+
73
133
 
134
+ =begin
74
135
  #initial_procs = Loader.initial_loads initials
75
136
  #parallel_load initial_procs
76
137
  initials.each do |metadata|
@@ -106,7 +167,7 @@ module Myreplicator
106
167
  end
107
168
  # end # group
108
169
  #end # groups
109
-
170
+ =end
110
171
  end
111
172
 
112
173
  def self.parallel_load procs
@@ -1,3 +1,3 @@
1
1
  module Myreplicator
2
- VERSION = "1.1.57"
2
+ VERSION = "1.1.58"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: myreplicator
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.57
4
+ version: 1.1.58
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-24 00:00:00.000000000 Z
12
+ date: 2013-07-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -355,7 +355,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
355
355
  version: '0'
356
356
  segments:
357
357
  - 0
358
- hash: -661295928114993181
358
+ hash: 3425503714195991273
359
359
  required_rubygems_version: !ruby/object:Gem::Requirement
360
360
  none: false
361
361
  requirements:
@@ -364,7 +364,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
364
364
  version: '0'
365
365
  segments:
366
366
  - 0
367
- hash: -661295928114993181
367
+ hash: 3425503714195991273
368
368
  requirements: []
369
369
  rubyforge_project:
370
370
  rubygems_version: 1.8.24