[Groonga-commit] groonga/groonga at b41b943 [master] pat: enable cache for lexicon use by default

Back to archive index

Kouhei Sutou null+****@clear*****
Fri Dec 29 15:16:06 JST 2017


Kouhei Sutou	2017-12-29 15:16:06 +0900 (Fri, 29 Dec 2017)

  New Revision: b41b943b67ae399be1a851642f3b9f49b26bad7d
  https://github.com/groonga/groonga/commit/b41b943b67ae399be1a851642f3b9f49b26bad7d

  Message:
    pat: enable cache for lexicon use by default
    
    It pat has tokenizer, it's treated as lexicon use.

  Modified files:
    lib/db.c
    lib/ii.c

  Modified: lib/db.c (+10 -0)
===================================================================
--- lib/db.c    2017-12-29 15:15:43 +0900 (bc2529df2)
+++ lib/db.c    2017-12-29 15:16:06 +0900 (94b21e8e9)
@@ -46,6 +46,8 @@ typedef struct {
   unsigned int weight;
 } weight_uvector_entry;
 
+static const uint32_t GRN_TABLE_PAT_KEY_CACHE_SIZE = 1 << 20;
+
 #define IS_WEIGHT_UVECTOR(obj) ((obj)->header.flags & GRN_OBJ_WITH_WEIGHT)
 
 #define GRN_TABLE_GROUPED (0x01<<0)
@@ -8896,6 +8898,9 @@ grn_obj_set_info(grn_ctx *ctx, grn_obj *obj, grn_info_type type, grn_obj *value)
       case GRN_TABLE_PAT_KEY :
         ((grn_pat *)obj)->tokenizer = value;
         ((grn_pat *)obj)->header->tokenizer = grn_obj_id(ctx, value);
+        grn_pat_cache_enable(ctx,
+                             ((grn_pat *)obj),
+                             GRN_TABLE_PAT_KEY_CACHE_SIZE);
         rc = GRN_SUCCESS;
         break;
       case GRN_TABLE_DAT_KEY :
@@ -10514,6 +10519,11 @@ grn_ctx_at(grn_ctx *ctx, grn_id id)
                   grn_token_filters_unpack(ctx,
                                            &(pat->token_filters),
                                            &decoded_spec);
+                  if (pat->tokenizer) {
+                    grn_pat_cache_enable(ctx,
+                                         pat,
+                                         GRN_TABLE_PAT_KEY_CACHE_SIZE);
+                  }
                 }
                 break;
               case GRN_TABLE_DAT_KEY :

  Modified: lib/ii.c (+0 -12)
===================================================================
--- lib/ii.c    2017-12-29 15:15:43 +0900 (b6b8e5575)
+++ lib/ii.c    2017-12-29 15:16:06 +0900 (f8debec3f)
@@ -9595,8 +9595,6 @@ grn_ii_buffer_flush(grn_ctx *ctx, grn_ii_buffer *ii_buffer)
   ii_buffer->block_pos = 0;
 }
 
-const uint32_t PAT_CACHE_SIZE = 1<<20;
-
 /*
  * get_tmp_lexicon returns a temporary lexicon.
  *
@@ -9626,9 +9624,6 @@ get_tmp_lexicon(grn_ctx *ctx, grn_ii_buffer *ii_buffer)
                        GRN_INFO_NORMALIZER, normalizer);
       grn_obj_set_info(ctx, tmp_lexicon,
                        GRN_INFO_TOKEN_FILTERS, token_filters);
-      if ((flags & GRN_OBJ_TABLE_TYPE_MASK) == GRN_OBJ_TABLE_PAT_KEY) {
-        grn_pat_cache_enable(ctx, (grn_pat *)tmp_lexicon, PAT_CACHE_SIZE);
-      }
     }
   }
   return tmp_lexicon;
@@ -10172,10 +10167,6 @@ grn_ii_buffer_open(grn_ctx *ctx, grn_ii *ii,
             grn_table_flags flags;
             grn_table_get_info(ctx, ii->lexicon, &flags, NULL, NULL, NULL,
                                NULL);
-            if ((flags & GRN_OBJ_TABLE_TYPE_MASK) == GRN_OBJ_TABLE_PAT_KEY) {
-              grn_pat_cache_enable(ctx, (grn_pat *)ii->lexicon,
-                                   PAT_CACHE_SIZE);
-            }
             return ii_buffer;
           } else {
             SERR("failed grn_mkstemp(%s)",
@@ -10392,9 +10383,6 @@ grn_ii_buffer_close(grn_ctx *ctx, grn_ii_buffer *ii_buffer)
   grn_table_flags flags;
   grn_table_get_info(ctx, ii_buffer->ii->lexicon, &flags, NULL, NULL, NULL,
                      NULL);
-  if ((flags & GRN_OBJ_TABLE_TYPE_MASK) == GRN_OBJ_TABLE_PAT_KEY) {
-    grn_pat_cache_disable(ctx, (grn_pat *)ii_buffer->ii->lexicon);
-  }
   if (ii_buffer->tmp_lexicon) {
     grn_obj_close(ctx, ii_buffer->tmp_lexicon);
   }
-------------- next part --------------
HTML����������������������������...
URL: https://lists.osdn.me/mailman/archives/groonga-commit/attachments/20171229/d2eeb2f2/attachment-0001.htm 



More information about the Groonga-commit mailing list
Back to archive index