From 5373c76c4087b073685eb54226024ce1547ea5c0 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Thu, 14 Apr 2016 14:32:32 +0300 Subject: [PATCH 1/2] Story#116962601 - faster epp logs --- app/controllers/admin/epp_logs_controller.rb | 6 +++++- app/controllers/admin/repp_logs_controller.rb | 6 +++++- db/migrate/20160414110443_add_time_indexing_to_epp_log.rb | 6 ++++++ 3 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 db/migrate/20160414110443_add_time_indexing_to_epp_log.rb diff --git a/app/controllers/admin/epp_logs_controller.rb b/app/controllers/admin/epp_logs_controller.rb index b14a99766..e9d8542ed 100644 --- a/app/controllers/admin/epp_logs_controller.rb +++ b/app/controllers/admin/epp_logs_controller.rb @@ -5,7 +5,11 @@ class Admin::EppLogsController < AdminController def index @q = ApiLog::EppLog.search(params[:q]) @q.sorts = 'id desc' if @q.sorts.empty? - @epp_logs = @q.result.page(params[:page]) + + @epp_logs = @q.result + @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq] + @epp_logs = @epp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq] + @epp_logs = @epp_logs.page(params[:page]) end def show diff --git a/app/controllers/admin/repp_logs_controller.rb b/app/controllers/admin/repp_logs_controller.rb index 8e904007a..2b28c7227 100644 --- a/app/controllers/admin/repp_logs_controller.rb +++ b/app/controllers/admin/repp_logs_controller.rb @@ -5,7 +5,11 @@ class Admin::ReppLogsController < AdminController def index @q = ApiLog::ReppLog.search(params[:q]) @q.sorts = 'id desc' if @q.sorts.empty? - @repp_logs = @q.result.page(params[:page]) + + @repp_logs = @q.result + @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq] + @repp_logs = @repp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq] + @repp_logs = @repp_logs.page(params[:page]) end def show diff --git a/db/migrate/20160414110443_add_time_indexing_to_epp_log.rb b/db/migrate/20160414110443_add_time_indexing_to_epp_log.rb new file mode 100644 index 000000000..30e4d155e --- /dev/null +++ b/db/migrate/20160414110443_add_time_indexing_to_epp_log.rb @@ -0,0 +1,6 @@ +class AddTimeIndexingToEppLog < ActiveRecord::Migration + def change + ApiLog::EppLog.connection.execute( "CREATE INDEX CONCURRENTLY epp_logs_created_at ON epp_logs USING btree (extract(epoch from created_at));") + ApiLog::ReppLog.connection.execute("CREATE INDEX CONCURRENTLY repp_logs_created_at ON repp_logs USING btree (extract(epoch from created_at));") + end +end From 57be19a41a01f330ca88e70e4c2f3bd9d69bdbf5 Mon Sep 17 00:00:00 2001 From: Vladimir Krylov Date: Thu, 14 Apr 2016 14:50:48 +0300 Subject: [PATCH 2/2] Story#116962601 - faster epp logs (check for presence) --- app/controllers/admin/epp_logs_controller.rb | 4 ++-- app/controllers/admin/repp_logs_controller.rb | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/controllers/admin/epp_logs_controller.rb b/app/controllers/admin/epp_logs_controller.rb index e9d8542ed..46740a8d9 100644 --- a/app/controllers/admin/epp_logs_controller.rb +++ b/app/controllers/admin/epp_logs_controller.rb @@ -7,8 +7,8 @@ class Admin::EppLogsController < AdminController @q.sorts = 'id desc' if @q.sorts.empty? @epp_logs = @q.result - @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq] - @epp_logs = @epp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq] + @epp_logs = @epp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq].present? + @epp_logs = @epp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq].present? @epp_logs = @epp_logs.page(params[:page]) end diff --git a/app/controllers/admin/repp_logs_controller.rb b/app/controllers/admin/repp_logs_controller.rb index 2b28c7227..ff306b0fc 100644 --- a/app/controllers/admin/repp_logs_controller.rb +++ b/app/controllers/admin/repp_logs_controller.rb @@ -7,8 +7,8 @@ class Admin::ReppLogsController < AdminController @q.sorts = 'id desc' if @q.sorts.empty? @repp_logs = @q.result - @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq] - @repp_logs = @repp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq] + @repp_logs = @repp_logs.where("extract(epoch from created_at) >= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_gteq])) if params[:q][:created_at_gteq].present? + @repp_logs = @repp_logs.where("extract(epoch from created_at) <= extract(epoch from ?::timestamp)", Time.parse(params[:q][:created_at_lteq])) if params[:q][:created_at_lteq].present? @repp_logs = @repp_logs.page(params[:page]) end