RotationShardShuffler is initialized with a random seed, then the seed will be increased by one (round-robin) on every certain action.
2015年5月26日 星期二
Elasticsearch Class Diagram for Shard Routing and Preference
RotationShardShuffler is initialized with a random seed, then the seed will be increased by one (round-robin) on every certain action.
2015年5月25日 星期一
2015年5月8日 星期五
2015年5月5日 星期二
Interview with LZ4 (Extremely Fast Compression algorithm)
Why is LZ4 so fast?
- Fast scan strategy
- xxHash (Extremely fast non-cryptographic hash algorithm)
- Multi-threading
- Reduced memory usage fits into Intel x86 L1 cache
- #define LZ4_MEMORY_USAGE 14 (default 16 KB, see lz4.h)
Reference:
- LZ4 - Improved performance
- Multi-threading compression available
- LZ4 explained
- Lucene source code to learn LZ4 compression algorithm in Lucene
Official site:
- LZ4 - Extremely fast compression
- LZ4 Java
- JNI (fastest)
- Pure Java
- Java uses sun.misc.Unsafe API
2015年5月4日 星期一
2015年4月23日 星期四
Performance tuning for Elasticsearch
Some important environment variables about performance tuning for Elasticsearch.
- Linux
- max_file_descriptors: 65536
- vm.max_map_count: 262144 (per process)
- elasticsearch.yml
- bootstrap.mlockall: true
- discovery.zen.minimum_master_nodes
- gateway.recover_after_nodes
- gateway.expected_nodes
- gateway.recover_after_time
- index.number_of_shards
- index.number_of_replicas
- index.refresh_interval
- indices.fielddata.cache.size: 50%
- indices.breaker.fielddata.limit: 50%
- Create index
- index.number_of_shards
- index.number_of_replicas
- index.refresh_interval: 30s
- #index.merge.policy.type: tiered
- #index.translog.flush_threshold_size
- #index.search.slowlog.threshold.query
- #index.search.slowlog.threshold.fetch
- #index.routing.allocation.include.box_type
- #indices.memory.index_buffer_size
- #indices.memory.min_index_buffer_size
- #indices.memory.min_shard_index_buffer_size
- #indices.ttl.interval
- Search time tips
- _optimize?max_num_segments=1 (less segments more efficiency)
- Index per Time Frame
- Faking Index per User with Aliases
- shard_size & size, by default, shard_size = size * shards
- Index Warmer (suffer refresh time)
- collect_mode: breadth_first
- Fielddata
- enable doc_values, it will use mmapfs by default
- Fielddata Filtering
- Eagerly Loading Fielddata (suffer merge time)
- Global ordinals
- Eager Global ordinals (suffer refresh time)
You could google above terms for more information.
訂閱:
文章 (Atom)