İçerikler :

Auto Invalidation Black List Cache'lenmeyen Durumlar Çok Yazma Olan Tablolar Cache'lenmelidir memqcache_expire memqcache_maxcache NO QUERY CACHE On Memory Query Cache Pgpool-II Relation Cache Shared Memory Shared Memory Shared Relation Cache Show POOL_CACHE White List

Bu Sayfayı Paylaş:

Kavram

Pgpool-II

Tanım: PostgreSQL sunucularına yük dağıtımı (load balancing) yapan ve proxy görevi gören bir yazılım. Connection pool, fail over, replikasyon, query cache gibi özellikler de sağlar

Kavram

On Memory Query Cache

Tanım: PostgreSql'e yapılan sorgularda sorgu sonuçlarının saklayan, aynı sorgu geldiğinde sonuçları veritabanına gitmeden RAM'den veren cache sistemi. Varsayılan olarak kapalidır ve pgpool.conf dosyasında memory_cache_enabled=on eklenerek açılır. Cahce'deki bir sorgu ile ilgili bir tablodaki kayıtlarla ilgili değişiklik olduysa cache otomatik olarak temizlenir. (auto invalidation). Bir sorgu sonucu konfigürasyonda memqcache_expire ile verilen bir zaman boyunca (sn cinsinden) cache'de tutulur ve sonra kaldırılır.

Kavram

Shared Memory

Tanım: Birden fazla Pgpool-II uygulaması için ortak paylaşılan RAM alanı

Kavram

Shared Memory

Tanım: Pgpool-II'da shared memory modelini seçmek için kullanılan konfigürasyon. Varsayılan olarak shmem (shared memory)'dir. "memcached" değeri de verilebilir.

Kavram

Auto Invalidation

Tanım: Pgpool-II'da bir tabloda veri değişikliği olduğu zaman o verilerle ilgili cache verilerinin otomatik olarak temizlenmesi olayı. Bu özellik memqcache_auto_cache_invalidation konfigürasyon parametresi ile açılıp kapatılabilir.

Kavram

memqcache_expire

Tanım: Bir sorgu sonucunun cache'de kaç saniye boyunca kalması gerektiğini belirten konfigürasyon. Varsayılanı 0'dır. Eğer belirli bir süre cache'e tutulması isteniyorsa bu değer değiştirilmelidir.

Kavram

White List

Tanım: Pgpool-II'da cache'lenebilen tabloları tutan liste veya tanım. Cache'lenmesi istenmeyen tablolar Black List'te belirtilir. white_memqcache_table_list konfigürasyon adı kullanılır.

Kavram

Black List

Tanım: Pgpool-II'da cache'lenmesi istenmeyen tablolar. white_memqcache_table_list konfigürasyonunda belirtilmeyen tüm tablolar black list olarak kabul edilir. Eğer özellikler belirtilmek istenirse black_memqcache_table_list kullanılır ve bu liste harici tüm tablolar cache'lenebilir olur.

Kavram

memqcache_maxcache

Tanım: Belirli bir boyutu açan sorgu sonuçlarının cahce'te saklanmaması için kullanılan konfigürasyon. Varsayılan değer 400KB'dir.

Kavram

NO QUERY CACHE

Tanım: Gönderilen bir sorgunun cache'den değil doğrudan veritabanından alınmasını sağlayan ve sorgulara yorum olarak eklenen ifade. Örneğin /* NO QUERY CACHE */ SELECT * FROM test_table WHERE a = 1; şeklinde sorgu gönderilirse bu sorgu sonucu cache'den gelmez.

İpucu

Cache'lenmeyen Durumlar

Pgpool-II'de cahce'lenmeyen durumlar :

  • Sorguda /*NO QUERY CACHE*/ ifadesi geçmesi
  • Sorgu sonucunun boyutu memqcache_maxcache ile tanımlanan değeri açan sorgular
  • Immutable functions içeren select'ler
  • Geçici tablolar (temp tables) ve unlogged tablolar içeren select'ler
  • SELECT FOR SHARE/UPDATE kullanımı
  • Select'te sistem kataloğu ile ilgili şeylerin olması
  • TABLESAMPLE kullanımı

İpucu

Çok Yazma Olan Tablolar Cache'lenmelidir

Pgpool-II'de tabloda her güncelleme yapıldığında cahce'i temizlenmektedir. Eğer çok sık update yapılan bir tablo var ise bunun ile ilgili sorgular sürekli cache'den kaldırılacak ve sonra tekrar doldurulacaktır. Bu çok sık olacağı için performansı etkileyecektir. SHOW POOL_CACHE ile kontrol edip cache_hit_ratio değerini %70den düşükse cahce kullanılmaması gerekir.

Kavram

Show POOL_CACHE

Tanım: Pgpool-II'de cache'de saklanan bilgilerin istatistiğini veren komut. num_cache_hits, num_selects, cache_hit_ratio , num_hash_entries, used_hash_entries, num_cache_entries, used_cache_enrties_size, free_cache_entries_size, fragment_cache_entries_size gibi bilgileri gösterir.

Kavram

Relation Cache

Tanım: Her Pgpool-II processi için PostgreSQL ile ilgili meta verilerinin (tablo temp mi değil mi, tablo yapıları, tablo tipleri vb..) saklandığı cache alanı. Bu meta data primary PostgreSQL'e sorgu yapılarak elde edilir. Bu sorguyu her seferinde yapmamak için relation cache kullanılır.

Kavram

Shared Relation Cache

Tanım: Pgpool-II process'lerinin kendilerine özel kullandığı relation cache alanlarını yerine ortak olarak kullanılması için yaratılan cache. Bu şekilde relation cahce alanı daha performanslı kullanılacaktır. enable_shared_relcache ile açılır veya kapatır. Varsayılan olarak açıktır.



Bu Sayfayı Paylaş:

İletişim Bilgileri

Takip Et

Her Hakkı Saklıdır. Bu sitede yayınlanan tüm bilgi ve fikirlerin kullanımından fibiler.com sorumlu değildir. Bu sitede üretilmiş , derlenmiş içerikleri, fibiler.com'u kaynak göstermek koşuluyla kendi sitenizde kullanılabilirsiniz. Ancak telif hakkı olan içeriklerin hakları sahiplerine aittir