Uploaded image for project: 'Couchbase Server'
  1. Couchbase Server
  2. MB-56371

[BP to 7.1.5] - For partitioned index with hash meta.id() as partition Key, on document expiry, issue delete only to its corresponding partition

    XMLWordPrintable

Details

    • 0

    Description

      For a partitioned index, on document expiry , projector routes the delete to all the instances of the index. For partition key, hash meta.id, John mentioned that we can special case it and send it only to the respective partition. Filing this ticket based on discussion with John and Varun. 

       

      On 7.0, with 10 documents expiry
      ----------plasma-diagnostics---------
      [0] default/idx_test_01/Mainstore#9552100667799453517:6 : 824722351616
      [1] default/idx_test_01/Mainstore#9552100667799453517:5 : 824708189184
      [2] default/idx_test_01/Mainstore#9552100667799453517:7 : 824657696768
      [3] default/idx_test_01/Backstore#9552100667799453517:6 : 824656892416
      [4] default/idx_test_01/Backstore#9552100667799453517:7 : 824656893952
      [5] default/idx_test_01/Backstore#9552100667799453517:5 : 824722354688
      -------------------------------------
      BackStore
      bash-3.2$ curl -o - 127.0.0.1:9120/plasmaDiag -u Administrator:asdasd -X GET -d '{"Cmd":"stats", "Args":[824722354688]}'
      ----------plasma-diagnostics---------
      {
      "memory_quota":         1130364924,
      "count":                4,
      "compacts":             0,
      "purges":               0,
      "splits":               0,
      "merges":               0,
      "inserts":              4,
      "deletes":              0,
      "compact_conflicts":    0,
      "split_conflicts":      0,
      "merge_conflicts":      0,
      "insert_conflicts":     0,
      "delete_conflicts":     0,
      "swapin_conflicts":     0,
      "persist_conflicts":    0,
      "memory_size":          626,
      "memory_size_index":    0,
      "allocated":            626,
      "freed":                0,
      "reclaimed":            0,
      "reclaim_pending":      0,
      "reclaim_list_size":    0,
      "reclaim_list_count":   0,
      "reclaim_threshold":    50,
      "allocated_index":      0,
      "freed_index":          0,
      "reclaimed_index":      0,
      "num_pages":            1,
      "items_count":          6, <- i hacked item count to include lookup count
      "total_records":        4,
      "num_rec_allocs":       4,
      "num_rec_frees":        0,
      "num_rec_swapout":      0,
      "num_rec_swapin":       0,
      "num_rec_compressed":   0,
      "compresses":           0,
      "decompresses":         0,
      "num_compressed_pages": 0,
      "bytes_incoming":       306,
      "lss_data_size":        12390,
      "lss_recoverypt_size":  8192,
      "lss_maxsn_size":       4096,
      "checkpoint_used_space":0,
      "est_disk_size":        24294,
      "est_recovery_size":    20760,
      "lss_num_reads":        0,
      "lss_read_bs":          0,
      "lss_blk_read_bs":      0,
      "lss_rdr_reads_bs":     0,
      "lss_blk_rdr_reads_bs": 0,
      "cache_hits":           10,
      "cache_misses":         0,
      "cache_hit_ratio":      1.00000,
      "rlss_num_reads":       0,
      "rcache_hits":          6,
      "rcache_misses":        0,
      "rcache_hit_ratio":     1.00000,
      "resident_ratio":       1.00000,
      "mvcc_purge_ratio":     0.66667,
      "currSn":               4,
      "gcSn":                 2,
      "gcSnIntervals":       "[0 2 3]",
      "purger_running":       false,
      "mem_throttled":        false,
      "lss_throttled":        false,
      "num_wctxs":            7,
      "num_free_wctxs":       7,
      "num_readers":          0,
      "num_writers":          1,
      "page_bytes":           0,
      "page_cnt":             0,
      "page_itemcnt":         0,
      "avg_item_size":        0,
      "avg_page_size":        0,
      "act_max_page_items":   40,
      "act_min_page_items":   5,
      "act_max_delta_len":    30,
      "est_resident_mem":     626,
      "page_bytes_marshalled":340,
      "page_bytes_compressed":102,
      "compression_ratio":    3.33333,
      "bloom_tests":          0,
      "bloom_negatives":      0,
      "bloom_false_positives":0,
      "bloom_fp_rate":        0.00000,
      "memory_size_bloom_filter":0,
      "memory_size_delta":    320,
      "num_total_smr":        1,
      "num_active_smr":       0,
      "num_pending_smr":      0,
      "lss_stats":            
        {
          "shared":               false,
          "punch_hole_support":   false,
          "buf_memused":          0,
          "lss_data_size":        24814,
          "lss_used_space":       49152,
          "lss_disk_size":        49152,
          "lss_fragmentation":    49,
          "lss_num_reads":        0,
          "lss_read_bs":          0,
          "lss_blk_read_bs":      0,
          "bytes_written":        49152,
          "bytes_incoming":       306,
          "write_amp":            361.41,
          "write_amp_avg":        80.31,
          "lss_gc_num_reads":     0,
          "lss_gc_reads_bs":      0,
          "lss_blk_gc_reads_bs":  0,
          "lss_gc_status":        "",
          "lss_head_offset":      0,
          "lss_tail_offset":      24576,
          "num_sctxs":            16,
          "num_free_sctxs":       8,
          "num_smr_worker ":      13,
          "active_smr_worker ":   0,
          "num_smr_work_item":    0,
          "num_swapperWriter":    24
        }
      MainStore:
      bash-3.2$ curl -o - 127.0.0.1:9120/plasmaDiag -u Administrator:asdasd -X GET -d '{"Cmd":"stats", "Args":[824708189184]}'
      ----------plasma-diagnostics---------
      {
      "memory_quota":         1130364924,
      "count":                4,
      "compacts":             0,
      "purges":               0,
      "splits":               0,
      "merges":               0,
      "inserts":              4,
      "deletes":              0,
      "compact_conflicts":    0,
      "split_conflicts":      0,
      "merge_conflicts":      0,
      "insert_conflicts":     0,
      "delete_conflicts":     0,
      "swapin_conflicts":     0,
      "persist_conflicts":    0,
      "memory_size":          848,
      "memory_size_index":    0,
      "allocated":            848,
      "freed":                0,
      "reclaimed":            0,
      "reclaim_pending":      0,
      "reclaim_list_size":    0,
      "reclaim_list_count":   0,
      "reclaim_threshold":    50,
      "allocated_index":      0,
      "freed_index":          0,
      "reclaimed_index":      0,
      "num_pages":            1,
      "items_count":          0,
      "total_records":        4,
      "num_rec_allocs":       4,
      "num_rec_frees":        0,
      "num_rec_swapout":      0,
      "num_rec_swapin":       0,
      "num_rec_compressed":   0,
      "compresses":           0,
      "decompresses":         0,
      "num_compressed_pages": 0,
      "bytes_incoming":       528,
      "lss_data_size":        12417,
      "lss_recoverypt_size":  8192,
      "lss_maxsn_size":       4096,
      "checkpoint_used_space":0,
      "est_disk_size":        24347,
      "est_recovery_size":    20760,
      "lss_num_reads":        0,
      "lss_read_bs":          0,
      "lss_blk_read_bs":      0,
      "lss_rdr_reads_bs":     0,
      "lss_blk_rdr_reads_bs": 0,
      "cache_hits":           4,
      "cache_misses":         0,
      "cache_hit_ratio":      1.00000,
      "rlss_num_reads":       0,
      "rcache_hits":          0,
      "rcache_misses":        0,
      "rcache_hit_ratio":     0.00000,
      "resident_ratio":       1.00000,
      "mvcc_purge_ratio":     0.00000,
      "currSn":               4,
      "gcSn":                 2,
      "gcSnIntervals":       "[0 2 3]",
      "purger_running":       false,
      "mem_throttled":        false,
      "lss_throttled":        false,
      "num_wctxs":            3,
      "num_free_wctxs":       3,
      "num_readers":          0,
      "num_writers":          1,
      "page_bytes":           0,
      "page_cnt":             0,
      "page_itemcnt":         0,
      "avg_item_size":        0,
      "avg_page_size":        0,
      "act_max_page_items":   400,
      "act_min_page_items":   25,
      "act_max_delta_len":    200,
      "est_resident_mem":     848,
      "page_bytes_marshalled":562,
      "page_bytes_compressed":129,
      "compression_ratio":    4.35659,
      "bloom_tests":          0,
      "bloom_negatives":      0,
      "bloom_false_positives":0,
      "bloom_fp_rate":        0.00000,
      "memory_size_bloom_filter":0,
      "memory_size_delta":    320,
      "num_total_smr":        1,
      "num_active_smr":       0,
      "num_pending_smr":      0,
      "lss_stats":            
        {
          "shared":               false,
          "punch_hole_support":   false,
          "buf_memused":          0,
          "lss_data_size":        24841,
          "lss_used_space":       49152,
          "lss_disk_size":        49152,
          "lss_fragmentation":    49,
          "lss_num_reads":        0,
          "lss_read_bs":          0,
          "lss_blk_read_bs":      0,
          "bytes_written":        49152,
          "bytes_incoming":       528,
          "write_amp":            46.55,
          "write_amp_avg":        46.55,
          "lss_gc_num_reads":     0,
          "lss_gc_reads_bs":      0,
          "lss_blk_gc_reads_bs":  0,
          "lss_gc_status":        "",
          "lss_head_offset":      0,
          "lss_tail_offset":      24576,
          "num_sctxs":            12,
          "num_free_sctxs":       4,
          "num_smr_worker ":      13,
          "active_smr_worker ":   0,
          "num_smr_work_item":    0,
          "num_swapperWriter":    24
        }
       
      

       

      Issue Resolution
      When a partitioned key was based on a secondary field of a document and a delete mutation occurred, the Indexer could not determine which partition the document belonged to. This resulted in delete operations on all partitions. For partition indexes with document ID as the only partition key, delete mutations are routed only to the partition where the document belongs. This improves the performance of delete and expiration mutations.

      Attachments

        For Gerrit Dashboard: MB-56371
        # Subject Branch Project Status CR V

        Activity

          People

            yash.dodderi Yash Dodderi
            varun.velamuri Varun Velamuri
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Gerrit Reviews

                There are no open Gerrit changes

                PagerDuty