this repo has no description
2
fork

Configure Feed

Select the types of activity you want to include in your feed.

Make memtable limit configurable

garrison 85cbe04a 34f9225c

+14 -3
+1
lib/xks/superblock.ex
··· 152 152 extent_block_count: 1, 153 153 lsm_table_data_blocks_max: 2, 154 154 lsm_subtable_size: 3, 155 + lsm_memtable_size_limit: 4, 155 156 ] 156 157 @opts_keys_lookup Map.new(@opts_keys, fn {k, v} -> {v, k} end) 157 158
+13 -3
lib/xks/xks.ex
··· 74 74 extent_block_count: pos_integer, 75 75 lsm_table_data_blocks_max: pos_integer, 76 76 lsm_subtable_size: pos_integer, 77 + lsm_memtable_size_limit: pos_integer, 77 78 } 78 79 @enforce_keys [ 79 80 :block_size, 80 81 :extent_block_count, 81 82 :lsm_table_data_blocks_max, 82 83 :lsm_subtable_size, 84 + :lsm_memtable_size_limit, 83 85 ] 84 86 defstruct @enforce_keys 85 87 end ··· 111 113 assert rem(lsm_subtable_size, b_KiB()) == 0 112 114 assert lsm_subtable_size <= block_size 113 115 116 + lsm_memtable_size_limit = Keyword.get(opts, :lsm_memtable_size_limit, 32 * b_KiB()) 117 + 114 118 %Opts{ 115 119 block_size: block_size, 116 120 extent_block_count: extent_block_count, 117 121 lsm_table_data_blocks_max: lsm_table_data_blocks_max, 118 122 lsm_subtable_size: lsm_subtable_size, 123 + lsm_memtable_size_limit: lsm_memtable_size_limit, 119 124 } 120 125 end 121 126 ··· 379 384 # TODO: this was a hack to enable async compaction, remove 380 385 @spec maybe_rotate_memtable(t, integer) :: boolean 381 386 def maybe_rotate_memtable(%XKS{} = xks, partition) when is_integer(partition) do 382 - %{manifest: manifest, epoch_atomic: epoch_atomic} = xks 387 + %{ 388 + manifest: manifest, 389 + epoch_atomic: epoch_atomic, 390 + opts: %{ 391 + lsm_memtable_size_limit: opt_lsm_memtable_size_limit, 392 + }, 393 + } = xks 383 394 epoch = :atomics.get(epoch_atomic, 1) 384 395 385 396 case Manifest.list_memtables(manifest, partition, epoch) do 386 397 [%MemtableInfo{} = active_info | _] -> 387 - memtable_size_max = 32 * 1024 388 - case active_info.size_bytes > memtable_size_max do 398 + case active_info.size_bytes > opt_lsm_memtable_size_limit do 389 399 true -> 390 400 rotate_memtable(xks, partition) 391 401 true