[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"me":3,"catalog:en: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","Database","","replication-scaling","Replication Scaling","en",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,"In a database context, what does *replication* mean?",[135,138,141,144],{"key":136,"text":137},"a","Splitting one large table into smaller pieces stored on separate servers",{"key":139,"text":140},"b","Keeping copies of the same data on more than one database server",{"key":142,"text":143},"c","Compressing old data so the database uses less disk space over time",{"key":145,"text":146},"d","Caching frequently read rows in application memory to speed up reads","Replication means maintaining synchronized copies of the same data across multiple servers; it enables high availability (HA), read scaling, and backup\u002FDR. Option (a) describes sharding, (c) describes archiving\u002Fcompression, and (d) describes application caching.",{"id":149,"topic":9,"difficulty":132,"body":150,"options":151,"correct_key":145,"explanation":160},"019f56bb-b6b8-7bbf-9792-6c6a1ace1efc","Which of the following is a common reason to set up database replication?",[152,154,156,158],{"key":136,"text":153},"To enforce foreign key constraints between two unrelated tables",{"key":139,"text":155},"To automatically normalize the schema into higher normal forms",{"key":142,"text":157},"To reduce the number of indexes the database has to maintain",{"key":145,"text":159},"To keep a standby copy that can take over if the primary server fails","Replication is typically set up for high availability (a standby that can be promoted), read scaling, and backup\u002FDR. Option (d) is the HA reason. The others are unrelated concerns that replication does not address.",{"id":162,"topic":9,"difficulty":132,"body":163,"options":164,"correct_key":136,"explanation":173},"019f56bb-b6ba-730a-ae8f-9b89076f91f0","In a classic primary–replica (also called master–slave) setup, where are write operations (INSERT\u002FUPDATE\u002FDELETE) normally sent?",[165,167,169,171],{"key":136,"text":166},"To the primary; the changes are then propagated out to the replicas",{"key":139,"text":168},"To any replica, whichever one currently has the lowest load",{"key":142,"text":170},"To all of the servers at the same time, directly by the application",{"key":145,"text":172},"To a replica first, which then forwards the change to the primary","Writes go to the single primary, which replicates the changes out to its replicas. Replicas are read-only copies and do not accept writes from the application.",{"id":175,"topic":9,"difficulty":176,"body":177,"options":178,"correct_key":142,"explanation":187},"019f56bb-b6ba-7cd6-b3a7-eb5983be069b",2,"A service is configured to send its read queries to a read replica. A developer accidentally points an `UPDATE` statement at that same read-replica connection. What happens?",[179,181,183,185],{"key":136,"text":180},"The update succeeds on the replica and is later copied back to the primary",{"key":139,"text":182},"The update succeeds on the replica but is silently ignored by the primary",{"key":142,"text":184},"The write is rejected, because a read replica is read-only",{"key":145,"text":186},"The update runs, then the replica automatically becomes the new primary","A read replica is read-only; write attempts against it are rejected. Writes must go to the primary, and replication flows in one direction only (primary → replica), never back the other way.",{"id":189,"topic":9,"difficulty":176,"body":190,"options":191,"correct_key":139,"explanation":200},"019f56bb-b6bc-737c-91e4-2a34409d6933","What is the main trade-off between *synchronous* and *asynchronous* replication?",[192,194,196,198],{"key":136,"text":193},"Synchronous is faster for writes but can lose recent data, whereas asynchronous is slower yet is guaranteed to never lose any committed data",{"key":139,"text":195},"Synchronous confirms a write only after a replica has it, adding latency; asynchronous confirms immediately but can lose recent writes",{"key":142,"text":197},"Synchronous replicates only read queries, while asynchronous replicates only the write queries",{"key":145,"text":199},"Synchronous requires exactly one replica, while asynchronous always requires at least three replicas","Synchronous replication waits for a replica to acknowledge the write: stronger durability, but higher latency. Asynchronous acknowledges locally first: lower latency, but writes not yet shipped can be lost on failover. Option (a) reverses the relationship.",{"id":202,"topic":9,"difficulty":203,"body":204,"options":205,"correct_key":136,"explanation":214},"019f56bb-b6bc-7cb8-835f-4c4c6c1d85d4",3,"A system uses asynchronous replication. The primary crashes hard, and a replica is promoted to primary. Users report that a few transactions committed just before the crash are now missing. Why is this possible?",[206,208,210,212],{"key":136,"text":207},"The primary acknowledges commits before the replica receives them, so the newest transactions may never have reached the promoted replica",{"key":139,"text":209},"Promoting a replica always discards the most recent minute of transactions on purpose, by design",{"key":142,"text":211},"Asynchronous replication copies only schema (DDL) changes and never copies the actual row data",{"key":145,"text":213},"The application cached those writes locally and never actually sent them to the database, so they were dropped before ever reaching the primary at all","With async replication the primary commits and acknowledges locally before the replica has received the change. On a hard failover, any writes not yet shipped to the promoted replica are lost. Synchronous replication would prevent this, at the cost of write latency.",{"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":316,"name_en":6,"sort":317,"specializations":318},"Veritabanı",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},[398,10],"tr",[400,401],"google","github",21750,true]