Make sure all materialized views are accounted for when updating/refreshing them
Enumerating our currently used materialized views gives us with grep "CREATE MATERIALIZED VIEW" -r .
:
./bridgestrap_tables.sql:CREATE MATERIALIZED VIEW last_bridgestrap_test AS
./bridge_pool_assignment_tables.sql:CREATE MATERIALIZED VIEW last_bridge_pool_assignment AS
./extra_info_views.sql:CREATE MATERIALIZED VIEW first_extra_info_descriptors AS
./extra_info_views.sql:CREATE MATERIALIZED VIEW last_extra_info_descriptors AS
./views_functions/create/server_status_latest_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS server_status_latest AS
./views_functions/create/online_relays_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS all_fingerprints AS
./views_functions/create/online_relays_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_online AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_guard AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_exit AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_hsdir AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_stable AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_valid AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_v2dir AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_guard AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_exit AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_hsdir AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_stable AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_valid AS
./views_functions/create/network_status_cw_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_cw_churn_rate_new_v2dir AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS hourly_relays_cw_flags AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_guard AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_exit AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_hsdir AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_stable AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_valid AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_v2dir AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_guard AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_exit AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_hsdir AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_stable AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_valid AS
./views_functions/create/network_status_churn_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relays_churn_rate_new_v2dir AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_longclaw_previous_all AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_longclaw_previous_month AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_longclaw_previous_2weeks AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_longclaw_previous_week AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_maatuska_previous_all AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_maatuska_previous_month AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_maatuska_previous_2weeks AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_maatuska_previous_week AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_gabelmoo_previous_all AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_gabelmoo_previous_month AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_gabelmoo_previous_2weeks AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_gabelmoo_previous_week AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_tor26_previous_all AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_tor26_previous_month AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_tor26_previous_2weeks AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_tor26_previous_week AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_bastet_previous_all AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_bastet_previous_month AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_bastet_previous_2weeks AS
./views_functions/create/cdf_bandwidth_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS cdf_bastet_previous_week AS
./views_functions/create/onionperf_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relay_throughput_avg_filt AS
./views_functions/create/onionperf_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS net_throughput AS
./views_functions/create/onionperf_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS relay_throughput_ratio AS
./views_functions/create/onionperf_views.sql:CREATE MATERIALIZED VIEW IF NOT EXISTS onionperf_nodes AS
./network_status_views.sql:CREATE MATERIALIZED VIEW first_network_status_view AS
./network_status_views.sql:CREATE MATERIALIZED VIEW last_network_status_view AS
./network_status_views.sql:CREATE MATERIALIZED VIEW last_network_status_weights AS
./server_views.sql:CREATE MATERIALIZED VIEW first_server_descriptors AS
./server_views.sql:CREATE MATERIALIZED VIEW last_server_descriptors AS
./status_tables.sql:CREATE MATERIALIZED VIEW server_advertised_bandwidth_by_day AS
./bridges_views.sql:CREATE MATERIALIZED VIEW first_bridge_network_status_view AS
./bridges_views.sql:CREATE MATERIALIZED VIEW last_bridge_network_status_view AS
which is quite a lot. Now, a good indicator of whether we need all of them seems to be whether they are getting updated. There are two different means doing that. One is in descriptorParser
via refreshMaterializedViews()
which gives us:
./Main.java: refreshMaterializedView("last_bridge_network_status_view", conn);
./Main.java: refreshMaterializedView("first_bridge_network_status_view", conn);
./Main.java: refreshMaterializedView("last_bridge_pool_assignment", conn);
./Main.java: refreshMaterializedView("last_bridgestrap_test", conn);
./Main.java: refreshMaterializedView("last_network_status_view", conn);
./Main.java: refreshMaterializedView("first_network_status_view", conn);
./Main.java: refreshMaterializedView("last_extra_info_descriptors", conn);
./Main.java: refreshMaterializedView("last_server_descriptors", conn);
./Main.java: refreshMaterializedView("server_status_latest", conn);
. The other one is via refresh_materialized_views.sh
. However, it seems not all of the materialized views are covered that way. We should figure out whether that's fine or fix it.