[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:tr:database\u002Freplication-scaling":4,"config":215},null,{"field_key":5,"field_name":6,"seniority":7,"topic_key":8,"topic_name":9,"spec_key":7,"spec_name":7,"locale":10,"cell_total":11,"field_total":12,"seniorities":13,"topics":17,"specs":115,"samples":129},"database","Veritabanı","","replication-scaling","Replication Scaling","tr",75,2475,[14,15,16],"junior","mid","senior",[18,21,24,27,30,33,36,39,42,45,48,51,54,57,60,63,66,69,72,75,78,81,84,87,90,93,96,99,102,105,108,109,112],{"key":19,"name":20,"count":11},"backup-recovery","Backup Recovery",{"key":22,"name":23,"count":11},"data-modeling","Data Modeling",{"key":25,"name":26,"count":11},"indexing","Indexing",{"key":28,"name":29,"count":11},"mongodb-aggregation","Mongodb Aggregation",{"key":31,"name":32,"count":11},"mongodb-indexes-queries","Mongodb Indexes Queries",{"key":34,"name":35,"count":11},"mongodb-operations","Mongodb Operations",{"key":37,"name":38,"count":11},"mongodb-replication-sharding","Mongodb Replication Sharding",{"key":40,"name":41,"count":11},"mongodb-schema-modeling","Mongodb Schema Modeling",{"key":43,"name":44,"count":11},"mongodb-transactions-consistency","Mongodb Transactions Consistency",{"key":46,"name":47,"count":11},"mysql-indexes","Mysql Indexes",{"key":49,"name":50,"count":11},"mysql-innodb-transactions","Mysql Innodb Transactions",{"key":52,"name":53,"count":11},"mysql-operations","Mysql Operations",{"key":55,"name":56,"count":11},"mysql-query-optimization","Mysql Query Optimization",{"key":58,"name":59,"count":11},"mysql-replication-scaling","Mysql Replication Scaling",{"key":61,"name":62,"count":11},"mysql-types-constraints","Mysql Types Constraints",{"key":64,"name":65,"count":11},"nosql-models","Nosql Models",{"key":67,"name":68,"count":11},"performance-tuning","Performance Tuning",{"key":70,"name":71,"count":11},"pg-indexes","Pg Indexes",{"key":73,"name":74,"count":11},"pg-mvcc-vacuum","Pg Mvcc Vacuum",{"key":76,"name":77,"count":11},"pg-operations","Pg Operations",{"key":79,"name":80,"count":11},"pg-query-planning","Pg Query Planning",{"key":82,"name":83,"count":11},"pg-transactions-locking","Pg Transactions Locking",{"key":85,"name":86,"count":11},"pg-types-constraints","Pg Types Constraints",{"key":88,"name":89,"count":11},"query-optimization","Query Optimization",{"key":91,"name":92,"count":11},"redis-cluster-sharding","Redis Cluster Sharding",{"key":94,"name":95,"count":11},"redis-data-structures","Redis Data Structures",{"key":97,"name":98,"count":11},"redis-expiration-eviction","Redis Expiration Eviction",{"key":100,"name":101,"count":11},"redis-persistence","Redis Persistence",{"key":103,"name":104,"count":11},"redis-replication-sentinel","Redis Replication Sentinel",{"key":106,"name":107,"count":11},"redis-transactions-scripting","Redis Transactions Scripting",{"key":8,"name":9,"count":11},{"key":110,"name":111,"count":11},"security-access","Security Access",{"key":113,"name":114,"count":11},"transactions-isolation","Transactions Isolation",[116,120,123,126],{"key":117,"name":118,"count":119},"mongodb","MongoDB",450,{"key":121,"name":122,"count":119},"mysql","MySQL",{"key":124,"name":125,"count":119},"postgresql","PostgreSQL",{"key":127,"name":128,"count":119},"redis","Redis",[130,148,161,174,188,201],{"id":131,"topic":9,"difficulty":132,"body":133,"options":134,"correct_key":139,"explanation":147},"019f56bb-b6b8-75a1-b21f-751687eb588c",1,"Veritabanı bağlamında *replication* ne anlama gelir?",[135,138,141,144],{"key":136,"text":137},"a","Büyük bir tabloyu daha küçük parçalara bölüp ayrı sunucularda saklamak",{"key":139,"text":140},"b","Aynı verinin kopyalarını birden fazla veritabanı sunucusunda tutmak",{"key":142,"text":143},"c","Eski veriyi sıkıştırarak veritabanının zamanla daha az disk kullanmasını sağlamak",{"key":145,"text":146},"d","Sık okunan satırları uygulama belleğinde cache'leyerek okumayı hızlandırmak","Replication, aynı veriyi birden fazla sunucuda senkron kopyalar hâlinde tutmaktır; HA (high availability), read scaling ve backup\u002FDR sağlar. (a) sharding'i, (c) arşivleme\u002Fsıkıştırmayı, (d) uygulama cache'lemesini tarif eder.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":145,"explanation":160},"019f56bb-b6b8-7bbf-9792-6c6a1ace1efc","Aşağıdakilerden hangisi replication kurmanın yaygın bir nedenidir?",[152,154,156,158],{"key":136,"text":153},"İlgisiz iki tablo arasında foreign key constraint'leri zorlamak",{"key":139,"text":155},"Şema'yı otomatik olarak daha yüksek normal form'lara normalize etmek",{"key":142,"text":157},"Veritabanının bakımını yapması gereken index sayısını azaltmak",{"key":145,"text":159},"Primary sunucu çökerse devralabilecek bir standby kopya tutmak","Replication genellikle high availability (terfi edilebilir bir standby), read scaling ve backup\u002FDR için kurulur. (d) HA nedenidir. Diğerleri replication'ın çözdüğü konular değildir.",{"id":162,"topic":9,"difficulty":132,"body":163,"options":164,"correct_key":136,"explanation":173},"019f56bb-b6ba-730a-ae8f-9b89076f91f0","Klasik bir primary–replica (master–slave) kurulumunda write işlemleri (INSERT\u002FUPDATE\u002FDELETE) normalde nereye gönderilir?",[165,167,169,171],{"key":136,"text":166},"Primary'ye; değişiklikler ardından replica'lara yayılır (propagate edilir)",{"key":139,"text":168},"O an en düşük yükü olan herhangi bir replica'ya",{"key":142,"text":170},"Uygulama tarafından, aynı anda doğrudan tüm sunuculara",{"key":145,"text":172},"Önce bir replica'ya; o da değişikliği primary'ye iletir","Write'lar tek primary'ye gider ve primary bu değişiklikleri replica'lara replicate eder. Replica'lar salt-okunur kopyalardır ve uygulamadan write kabul etmez.",{"id":175,"topic":9,"difficulty":176,"body":177,"options":178,"correct_key":142,"explanation":187},"019f56bb-b6ba-7cd6-b3a7-eb5983be069b",2,"Bir servis read query'lerini bir read replica'ya gönderecek şekilde ayarlanmış. Bir geliştirici yanlışlıkla aynı read-replica bağlantısına bir `UPDATE` yönlendiriyor. Ne olur?",[179,181,183,185],{"key":136,"text":180},"Update replica'da başarılı olur ve sonradan primary'ye geri kopyalanır",{"key":139,"text":182},"Update replica'da başarılı olur ama primary tarafından sessizce yok sayılır",{"key":142,"text":184},"Write reddedilir, çünkü read replica salt-okunurdur",{"key":145,"text":186},"Update çalışır ve replica otomatik olarak yeni primary olur","Read replica salt-okunurdur; ona yapılan write denemeleri reddedilir. Write'lar primary'ye gitmelidir ve replication tek yönlüdür (primary → replica), asla ters yöne akmaz.",{"id":189,"topic":9,"difficulty":176,"body":190,"options":191,"correct_key":139,"explanation":200},"019f56bb-b6bc-737c-91e4-2a34409d6933","*Synchronous* ve *asynchronous* replication arasındaki temel trade-off nedir?",[192,194,196,198],{"key":136,"text":193},"Synchronous write'ta daha hızlıdır ama son veriyi kaybedebilir; asynchronous daha yavaştır ama commit edilmiş hiçbir veriyi asla kaybetmeyeceği garanti edilir",{"key":139,"text":195},"Synchronous write'ı ancak bir replica aldıktan sonra onaylar, latency ekler; asynchronous hemen onaylar ama son write'ları kaybedebilir",{"key":142,"text":197},"Synchronous yalnızca read query'leri, asynchronous yalnızca write query'leri replicate eder",{"key":145,"text":199},"Synchronous tam olarak bir replica, asynchronous her zaman en az üç replica gerektirir","Synchronous replication write için bir replica'nın ack'ini bekler: daha güçlü durability, ama daha yüksek latency. Asynchronous önce yerelde onaylar: daha düşük latency, ama henüz gönderilmemiş write'lar failover'da kaybolabilir. (a) ilişkiyi ters çevirir.",{"id":202,"topic":9,"difficulty":203,"body":204,"options":205,"correct_key":136,"explanation":214},"019f56bb-b6bc-7cb8-835f-4c4c6c1d85d4",3,"Bir sistem asynchronous replication kullanıyor. Primary sert şekilde çöküyor ve bir replica primary'ye terfi ediliyor (promote). Kullanıcılar, çökmeden hemen önce commit edilen birkaç transaction'ın artık kayıp olduğunu bildiriyor. Bu neden mümkün?",[206,208,210,212],{"key":136,"text":207},"Primary, commit'leri replica almadan önce onaylar; dolayısıyla en yeni transaction'lar terfi eden replica'ya hiç ulaşmamış olabilir",{"key":139,"text":209},"Bir replica'yı promote etmek tasarım gereği her zaman son bir dakikalık transaction'ları bilerek atar",{"key":142,"text":211},"Asynchronous replication yalnızca şema (DDL) değişikliklerini kopyalar, asıl satır verisini asla kopyalamaz",{"key":145,"text":213},"Uygulama bu write'ları yerelde cache'ledi ve aslında hiç veritabanına göndermedi, primary'ye ulaşmadan çok önce sessizce düştüler","Async replication'da primary, değişiklik replica'ya ulaşmadan önce yerelde commit edip onaylar. Sert bir failover'da, terfi eden replica'ya henüz gönderilmemiş tüm write'lar kaybolur. Synchronous replication bunu (write latency bedeliyle) önlerdi.",{"fields":216,"seniorities":391,"interview_shapes":392,"locales":397,"oauth":399,"question_count":402,"coach_enabled":403,"jd_match_enabled":403},[217,242,262,278,302,315,324,343,365,372,378,385],{"key":218,"name_tr":219,"name_en":219,"sort":132,"specializations":220},"backend","Backend",[221,224,227,230,233,236,239],{"key":222,"name":223,"field":218},"general","Genel",{"key":225,"name":226,"field":218},"go","Go",{"key":228,"name":229,"field":218},"python","Python",{"key":231,"name":232,"field":218},"java","Java",{"key":234,"name":235,"field":218},"csharp","C#\u002F.NET",{"key":237,"name":238,"field":218},"nodejs","Node.js",{"key":240,"name":241,"field":218},"php","PHP",{"key":243,"name_tr":244,"name_en":244,"sort":176,"specializations":245},"frontend","Frontend",[246,247,250,253,256,259],{"key":222,"name":223,"field":243},{"key":248,"name":249,"field":243},"javascript","JavaScript",{"key":251,"name":252,"field":243},"typescript","TypeScript",{"key":254,"name":255,"field":243},"react","React",{"key":257,"name":258,"field":243},"vue","Vue",{"key":260,"name":261,"field":243},"angular","Angular",{"key":263,"name_tr":264,"name_en":264,"sort":203,"specializations":265},"fullstack","Fullstack",[266,267,268,269,270,271,272,273,274,275,276,277],{"key":222,"name":223,"field":263},{"key":225,"name":226,"field":218},{"key":228,"name":229,"field":218},{"key":231,"name":232,"field":218},{"key":234,"name":235,"field":218},{"key":237,"name":238,"field":218},{"key":240,"name":241,"field":218},{"key":248,"name":249,"field":243},{"key":251,"name":252,"field":243},{"key":254,"name":255,"field":243},{"key":257,"name":258,"field":243},{"key":260,"name":261,"field":243},{"key":279,"name_tr":280,"name_en":280,"sort":281,"specializations":282},"devops-cloud","DevOps \u002F Cloud",4,[283,284,287,290,293,296,299],{"key":222,"name":223,"field":279},{"key":285,"name":286,"field":279},"aws","AWS",{"key":288,"name":289,"field":279},"gcp","GCP",{"key":291,"name":292,"field":279},"azure","Azure",{"key":294,"name":295,"field":279},"kubernetes","Kubernetes",{"key":297,"name":298,"field":279},"terraform","Terraform",{"key":300,"name":301,"field":279},"linux","Linux",{"key":303,"name_tr":304,"name_en":304,"sort":305,"specializations":306},"ai-engineer","AI Engineer",5,[307,308,309,312],{"key":222,"name":223,"field":303},{"key":228,"name":229,"field":303},{"key":310,"name":311,"field":303},"llm-rag","LLM\u002FRAG",{"key":313,"name":314,"field":303},"mlops","MLOps",{"key":5,"name_tr":6,"name_en":316,"sort":317,"specializations":318},"Database",6,[319,320,321,322,323],{"key":222,"name":223,"field":5},{"key":124,"name":125,"field":5},{"key":121,"name":122,"field":5},{"key":117,"name":118,"field":5},{"key":127,"name":128,"field":5},{"key":325,"name_tr":326,"name_en":327,"sort":328,"specializations":329},"mobile","Mobil","Mobile",7,[330,331,334,337,340],{"key":222,"name":223,"field":325},{"key":332,"name":333,"field":325},"ios-swift","iOS (Swift)",{"key":335,"name":336,"field":325},"android-kotlin","Android (Kotlin)",{"key":338,"name":339,"field":325},"flutter","Flutter",{"key":341,"name":342,"field":325},"react-native","React Native",{"key":344,"name_tr":345,"name_en":346,"sort":347,"specializations":348},"security","Güvenlik","Security",8,[349,350,353,356,359,362],{"key":222,"name":223,"field":344},{"key":351,"name":352,"field":344},"appsec","AppSec",{"key":354,"name":355,"field":344},"offensive-pentest","Offensive \u002F Pentest",{"key":357,"name":358,"field":344},"cloud-security","Cloud Security",{"key":360,"name":361,"field":344},"devsecops","DevSecOps",{"key":363,"name":364,"field":344},"blue-team-incident","Blue Team \u002F Incident",{"key":366,"name_tr":367,"name_en":368,"sort":369,"specializations":370},"qa-test-automation","QA \u002F Test Otomasyonu","QA \u002F Test Automation",9,[371],{"key":222,"name":223,"field":366},{"key":373,"name_tr":374,"name_en":374,"sort":375,"specializations":376},"data-engineer","Data Engineer",10,[377],{"key":222,"name":223,"field":373},{"key":379,"name_tr":380,"name_en":381,"sort":382,"specializations":383},"game-dev","Oyun Geliştirme","Game Development",11,[384],{"key":222,"name":223,"field":379},{"key":386,"name_tr":387,"name_en":387,"sort":388,"specializations":389},"ml-engineer","ML Engineer",12,[390],{"key":222,"name":223,"field":386},[14,15,16],{"junior":393,"mid":395,"senior":396},{"questions":394,"median_sec":3},20,{"questions":394,"median_sec":3},{"questions":394,"median_sec":3},[10,398],"en",[400,401],"google","github",21750,true]