@@ -131,6 +131,57 @@ public static ColumnFamilyOptions createOffsetCFOptions() {
131
131
setInplaceUpdateSupport (true );
132
132
}
133
133
134
+ public static ColumnFamilyOptions createPopCFOptions () {
135
+ BlockBasedTableConfig blockBasedTableConfig = new BlockBasedTableConfig ()
136
+ .setFormatVersion (5 )
137
+ .setIndexType (IndexType .kBinarySearch )
138
+ .setDataBlockIndexType (DataBlockIndexType .kDataBlockBinaryAndHash )
139
+ .setDataBlockHashTableUtilRatio (0.75 )
140
+ .setBlockSize (32 * SizeUnit .KB )
141
+ .setMetadataBlockSize (4 * SizeUnit .KB )
142
+ .setFilterPolicy (new BloomFilter (16 , false ))
143
+ .setCacheIndexAndFilterBlocks (false )
144
+ .setCacheIndexAndFilterBlocksWithHighPriority (true )
145
+ .setPinL0FilterAndIndexBlocksInCache (false )
146
+ .setPinTopLevelIndexAndFilter (true )
147
+ .setBlockCache (new LRUCache (1024 * SizeUnit .MB , 8 , false ))
148
+ .setWholeKeyFiltering (true );
149
+
150
+ CompactionOptionsUniversal compactionOption = new CompactionOptionsUniversal ()
151
+ .setSizeRatio (100 )
152
+ .setMaxSizeAmplificationPercent (25 )
153
+ .setAllowTrivialMove (true )
154
+ .setMinMergeWidth (2 )
155
+ .setMaxMergeWidth (Integer .MAX_VALUE )
156
+ .setStopStyle (CompactionStopStyle .CompactionStopStyleTotalSize )
157
+ .setCompressionSizePercent (-1 );
158
+
159
+ //noinspection resource
160
+ return new ColumnFamilyOptions ()
161
+ .setMaxWriteBufferNumber (4 )
162
+ .setWriteBufferSize (128 * SizeUnit .MB )
163
+ .setMinWriteBufferNumberToMerge (1 )
164
+ .setTableFormatConfig (blockBasedTableConfig )
165
+ .setMemTableConfig (new SkipListMemTableConfig ())
166
+ .setCompressionType (CompressionType .NO_COMPRESSION )
167
+ .setBottommostCompressionType (CompressionType .NO_COMPRESSION )
168
+ .setNumLevels (7 )
169
+ .setCompactionPriority (CompactionPriority .MinOverlappingRatio )
170
+ .setCompactionStyle (CompactionStyle .UNIVERSAL )
171
+ .setCompactionOptionsUniversal (compactionOption )
172
+ .setMaxCompactionBytes (100 * SizeUnit .GB )
173
+ .setSoftPendingCompactionBytesLimit (100 * SizeUnit .GB )
174
+ .setHardPendingCompactionBytesLimit (256 * SizeUnit .GB )
175
+ .setLevel0FileNumCompactionTrigger (2 )
176
+ .setLevel0SlowdownWritesTrigger (8 )
177
+ .setLevel0StopWritesTrigger (10 )
178
+ .setTargetFileSizeBase (256 * SizeUnit .MB )
179
+ .setTargetFileSizeMultiplier (2 )
180
+ .setMergeOperator (new StringAppendOperator ())
181
+ .setReportBgIoStats (true )
182
+ .setOptimizeFiltersForHits (true );
183
+ }
184
+
134
185
/**
135
186
* Create a rocksdb db options, the user must take care to close it after closing db.
136
187
* @return
0 commit comments