[tracker-miners/wip/carlosg/batches-and-resources: 17/31] libtracker-miner: Drop priority from SPARQL buffer




commit f9267cf3d936bb7cfda6268214e5aa99eacb4297
Author: Carlos Garnacho <carlosg gnome org>
Date:   Wed Dec 2 03:13:39 2020 +0100

    libtracker-miner: Drop priority from SPARQL buffer
    
    Make the priority flag alter the ordering of file info extraction,
    but let all SPARQL commands get queued the same way without "fast"
    paths (doing individual updates for each task shouldn't shine either).
    
    This simplification will be more important when we introduce batches
    in the following commits.

 src/libtracker-miner/tracker-miner-fs.c      | 18 +++-----
 src/libtracker-miner/tracker-sparql-buffer.c | 66 +---------------------------
 src/libtracker-miner/tracker-sparql-buffer.h |  1 -
 3 files changed, 6 insertions(+), 79 deletions(-)
---
diff --git a/src/libtracker-miner/tracker-miner-fs.c b/src/libtracker-miner/tracker-miner-fs.c
index 16c6be251..2732a20a0 100644
--- a/src/libtracker-miner/tracker-miner-fs.c
+++ b/src/libtracker-miner/tracker-miner-fs.c
@@ -1278,8 +1278,7 @@ sparql_buffer_task_finished_cb (GObject      *object,
 static void
 push_sparql_task (TrackerMinerFS *fs,
                   GFile          *file,
-                  gchar          *sparql,
-                  gint            priority)
+                  gchar          *sparql)
 {
        TrackerTask *sparql_task = NULL;
        gchar *uri;
@@ -1295,7 +1294,6 @@ push_sparql_task (TrackerMinerFS *fs,
        if (sparql_task) {
                tracker_sparql_buffer_push (fs->priv->sparql_buffer,
                                            sparql_task,
-                                           priority,
                                            sparql_buffer_task_finished_cb,
                                            fs);
 
@@ -1336,7 +1334,6 @@ static gboolean
 item_add_or_update (TrackerMinerFS *fs,
                     GFile          *file,
                     GFileInfo      *info,
-                    gint            priority,
                     gboolean        attributes_update)
 {
        gchar *uri, *sparql;
@@ -1368,7 +1365,7 @@ item_add_or_update (TrackerMinerFS *fs,
        }
 
        fs->priv->total_files_processed++;
-       push_sparql_task (fs, file, sparql, priority);
+       push_sparql_task (fs, file, sparql);
 
        g_free (uri);
        g_object_unref (file);
@@ -1495,12 +1492,10 @@ item_queue_get_next_file (TrackerMinerFS           *fs,
                           GFile                   **source_file,
                           GFileInfo               **info,
                           TrackerMinerFSEventType  *type,
-                          gint                     *priority_out,
                           gboolean                 *attributes_update,
                           gboolean                 *is_dir)
 {
        QueueEvent *event;
-       gint priority;
 
        *file = NULL;
        *source_file = NULL;
@@ -1520,7 +1515,7 @@ item_queue_get_next_file (TrackerMinerFS           *fs,
                return FALSE;
        }
 
-       event = tracker_priority_queue_peek (fs->priv->items, &priority);
+       event = tracker_priority_queue_peek (fs->priv->items, NULL);
 
        if (event) {
                if (should_wait (fs, event->file) ||
@@ -1536,7 +1531,6 @@ item_queue_get_next_file (TrackerMinerFS           *fs,
                }
 
                *type = event->type;
-               *priority_out = priority;
                *attributes_update = event->attributes_update;
                g_set_object (info, event->info);
 
@@ -1592,7 +1586,6 @@ push_task (TrackerMinerFS *fs,
        task = tracker_sparql_task_new_take_sparql_str (file, sparql);
        tracker_sparql_buffer_push (fs->priv->sparql_buffer,
                                    task,
-                                   G_PRIORITY_DEFAULT,
                                    sparql_buffer_task_finished_cb,
                                    fs);
        tracker_task_unref (task);
@@ -1610,7 +1603,6 @@ miner_handle_next_item (TrackerMinerFS *fs)
        gboolean attributes_update = FALSE;
        gboolean is_dir = FALSE;
        TrackerMinerFSEventType type;
-       gint priority = 0;
        GString *task_sparql = NULL;
        GString *source_task_sparql = NULL;
        GFileInfo *info = NULL;
@@ -1621,7 +1613,7 @@ miner_handle_next_item (TrackerMinerFS *fs)
        }
 
        if (!item_queue_get_next_file (fs, &file, &source_file, &info, &type,
-                                      &priority, &attributes_update, &is_dir)) {
+                                      &attributes_update, &is_dir)) {
                /* We should flush the processing pool buffer here, because
                 * if there was a previous task on the same file we want to
                 * process now, we want it to get finished before we can go
@@ -1757,7 +1749,7 @@ miner_handle_next_item (TrackerMinerFS *fs)
        case TRACKER_MINER_FS_EVENT_UPDATED:
                parent = g_file_get_parent (file);
 
-               keep_processing = item_add_or_update (fs, file, info, priority, attributes_update);
+               keep_processing = item_add_or_update (fs, file, info, attributes_update);
 
                if (parent) {
                        g_object_unref (parent);
diff --git a/src/libtracker-miner/tracker-sparql-buffer.c b/src/libtracker-miner/tracker-sparql-buffer.c
index 7afa12dde..28a536974 100644
--- a/src/libtracker-miner/tracker-sparql-buffer.c
+++ b/src/libtracker-miner/tracker-sparql-buffer.c
@@ -32,7 +32,6 @@
 typedef struct _TrackerSparqlBufferPrivate TrackerSparqlBufferPrivate;
 typedef struct _SparqlTaskData SparqlTaskData;
 typedef struct _UpdateArrayData UpdateArrayData;
-typedef struct _UpdateData UpdateData;
 
 enum {
        PROP_0,
@@ -53,11 +52,6 @@ struct _SparqlTaskData
        GTask *async_task;
 };
 
-struct _UpdateData {
-       TrackerSparqlBuffer *buffer;
-       TrackerTask *task;
-};
-
 struct _UpdateArrayData {
        TrackerSparqlBuffer *buffer;
        GPtrArray *tasks;
@@ -339,59 +333,6 @@ tracker_sparql_buffer_flush (TrackerSparqlBuffer *buffer,
        return TRUE;
 }
 
-static void
-tracker_sparql_buffer_update_cb (GObject      *object,
-                                 GAsyncResult *result,
-                                 gpointer      user_data)
-{
-       UpdateData *update_data = user_data;
-       SparqlTaskData *task_data;
-       GError *error = NULL;
-
-       tracker_sparql_connection_update_finish (TRACKER_SPARQL_CONNECTION (object),
-                                                result, &error);
-
-       task_data = tracker_task_get_data (update_data->task);
-
-       /* Call finished handler with the error, if any */
-       if (error) {
-               g_task_return_error (task_data->async_task, error);
-       } else {
-               g_task_return_pointer (task_data->async_task,
-                                      tracker_task_ref (update_data->task),
-                                      (GDestroyNotify) tracker_task_unref);
-       }
-
-       g_clear_object (&task_data->async_task);
-
-       tracker_task_pool_remove (TRACKER_TASK_POOL (update_data->buffer),
-                                 update_data->task);
-       g_slice_free (UpdateData, update_data);
-}
-
-static void
-sparql_buffer_push_high_priority (TrackerSparqlBuffer *buffer,
-                                  TrackerTask         *task,
-                                  SparqlTaskData      *data)
-{
-       TrackerSparqlBufferPrivate *priv;
-       UpdateData *update_data;
-
-       priv = tracker_sparql_buffer_get_instance_private (buffer);
-
-       /* Task pool addition adds a reference (below) */
-       update_data = g_slice_new0 (UpdateData);
-       update_data->buffer = buffer;
-       update_data->task = task;
-
-       tracker_task_pool_add (TRACKER_TASK_POOL (buffer), task);
-       tracker_sparql_connection_update_async (priv->connection,
-                                               data->str,
-                                               NULL,
-                                               tracker_sparql_buffer_update_cb,
-                                               update_data);
-}
-
 static void
 sparql_buffer_push_to_pool (TrackerSparqlBuffer *buffer,
                             TrackerTask         *task)
@@ -423,7 +364,6 @@ sparql_buffer_push_to_pool (TrackerSparqlBuffer *buffer,
 void
 tracker_sparql_buffer_push (TrackerSparqlBuffer *buffer,
                             TrackerTask         *task,
-                            gint                 priority,
                             GAsyncReadyCallback  cb,
                             gpointer             user_data)
 {
@@ -445,11 +385,7 @@ tracker_sparql_buffer_push (TrackerSparqlBuffer *buffer,
                                      (GDestroyNotify) tracker_task_unref);
        }
 
-       if (priority <= G_PRIORITY_HIGH) {
-               sparql_buffer_push_high_priority (buffer, task, data);
-       } else {
-               sparql_buffer_push_to_pool (buffer, task);
-       }
+       sparql_buffer_push_to_pool (buffer, task);
 }
 
 static SparqlTaskData *
diff --git a/src/libtracker-miner/tracker-sparql-buffer.h b/src/libtracker-miner/tracker-sparql-buffer.h
index e7d4a2b4a..7f5f53515 100644
--- a/src/libtracker-miner/tracker-sparql-buffer.h
+++ b/src/libtracker-miner/tracker-sparql-buffer.h
@@ -69,7 +69,6 @@ gboolean             tracker_sparql_buffer_flush (TrackerSparqlBuffer *buffer,
 
 void                 tracker_sparql_buffer_push  (TrackerSparqlBuffer *buffer,
                                                   TrackerTask         *task,
-                                                  gint                 priority,
                                                   GAsyncReadyCallback  cb,
                                                   gpointer             user_data);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]