[{"data":1,"prerenderedAt":373},["ShallowReactive",2],{"project-30267539":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":42,"post_text":45,"what":46,"said":81,"maker_in_thread":193,"shape":198,"grid":202,"attempts":334,"same_week":335,"maker_shows":43,"maker_hidden":365,"reader_version":366,"card":367},"30267539","PgCat","PgCat, Postgres pooler with sharding, load balancing and failover","title","Show HN: PgCat, Postgres pooler with sharding, load balancing and failover","https:\u002F\u002Fgithub.com\u002Flevkk\u002Fpgcat","github.com","levkk",1644370904,2022,233,54,218,2570,9,"notable","infrastructure","connection pooler","cli",[24,25,26,27,28],"postgres pooler","pgbouncer alternative","postgres sharding","rust postgres","connection pooling","mixed",0.321,{"positive":32,"neutral":33,"mixed":34,"critical":35},8,4,1,2,15,{"idea":38,"performance":39,"execution":41},{"positive":33,"critical":34},{"positive":34,"critical":40},0,{"positive":35,"critical":34},[40,43,43,40,40,40,40,40,40,40,40,40,44,44,43,34,44,40,40,40,40,40,44,40,40,43,43,44,40,43,40,40,40,40,40,40,40,40,40,40],5,3,null,{"problem":47,"audience":54,"pricing":45,"motivation":63,"time_to_build":67,"stack":73,"openness":78,"stage":79,"team_size":80},{"value":48,"source":49,"evidence":50},"Postgres connection limits and pooling, plus load balancing, failover and sharding at the pooler level","maker",[51],{"id":52,"by":11,"text":53},"30267540","So I thought it would be kind of cool to take Pgbouncer to the next level. I've been using it with large database clusters for a while and it's been spectacular, but it does have…",{"value":55,"source":56,"evidence":57},"Teams running large Postgres clusters with many client connections","inferred",[58,59],{"id":52,"by":11,"text":53},{"id":60,"by":61,"text":62},"30272477","everfrustrated","This is so awesome. For those wondering why a pooler is needed, Tl;DR containers. It's much more normal to have hundreds of containers running an application configured to have…",{"value":64,"source":49,"evidence":65},"Take Pgbouncer to the next level and remove arbitrary limitations",[66],{"id":52,"by":11,"text":53},{"value":68,"source":49,"evidence":69},"two weeks",[70],{"id":71,"by":11,"text":72},"30269229","It's definitely a PoC. I started it two weeks ago. Overall I've been super happy with Rust because it was a great safety harness and it gave me a fast concurrent program.…",[74],{"value":75,"source":49,"evidence":76},"Rust",[77],{"id":52,"by":11,"text":53},"open_source","prototype","unknown",{"praise":82,"objections":110,"requests":140,"questions":156,"alternatives":165},[83,99],{"value":84,"source":85,"evidence":86},"Excitement about Rust rewrite and small, lean codebase","commenter",[87,91,95],{"id":88,"by":89,"text":90},"30267741","dkhenry","I am really excited to see this project. I can't tell you how many times my team at work has hit a limitation with pgbouncer and swore up and down we should just re-write it in…",{"id":92,"by":93,"text":94},"30273746","jjice","I'm really impressed by how lean this code base is. Is PgBouncer also this lean? Looks like auth is the only thing left here then, aside from maybe some more testing? Very cool…",{"id":96,"by":97,"text":98},"30268955","montanalow","This is actually pretty amazing. I wouldn't normally trust a single author implemented project to sit between my application and my database, since that is a rather critical…",{"value":100,"source":85,"evidence":101},"Sharding and failover features are interesting",[102,106],{"id":103,"by":104,"text":105},"30268989","potamic","Sharding and failover support is really cool indeed! But I've always struggled to understand the use cases of pgbouncer. In most cases, you want to front your database with a…",{"id":107,"by":108,"text":109},"30274792","craigkerstiens","This is really interesting and exciting to see. Though it probably has a ways to go before being production ready. We've seen to date a few other efforts at connection poolers…",[111,122,129],{"value":112,"source":85,"evidence":113},"Alpha quality with few tests and not production ready",[114,118],{"id":115,"by":116,"text":117},"30269050","Thaxll","Being in Rust or not the code has 0 tests, write arbitrary bytes, hard code values etc ... looks like more a PoC project that something that going to replace pgbouncer any time…",{"id":119,"by":120,"text":121},"30269091","mmontagna9","Yep the readme is pretty clear it's a POC \"Alpha: don't use in production just yet.\" That said I've struggled with more than my fair share of pgbouncer misconfigurations and…",{"value":123,"source":85,"evidence":124},"Performance behind PgBouncer",[125],{"id":126,"by":127,"text":128},"30269353","dmingod666","The performance is currently behind pg_bouncer though.. ofcouse the project is much more early stages, just want your thoughts. Where should new people contribute or can help…",{"value":130,"source":85,"evidence":131},"Name clashes with existing pgcat project",[132,136],{"id":133,"by":134,"text":135},"30273501","bonesmoses","You might want to consider a different name, as there's already a pgcat project which appears to be a logical replication extension to augment native logical replication.…",{"id":137,"by":138,"text":139},"30274776","deknos","1. rename the project, there's already pgcat. 2. bring it to production level, i would love it :D 3. Are there things like gis or jsonb which would break with it, or does it just…",[141,147,151],{"value":142,"source":49,"evidence":143},"Add retries on failed queries",[144],{"id":145,"by":11,"text":146},"30272589","Thank you! Retries are on the road map.",{"value":148,"source":85,"evidence":149},"Better stats for monitoring",[150],{"id":60,"by":61,"text":62},{"value":152,"source":85,"evidence":153},"Rename the project",[154,155],{"id":137,"by":138,"text":139},{"id":133,"by":134,"text":135},[157,161],{"value":158,"source":85,"evidence":159},"Does it work with GIS or JSONB types",[160],{"id":137,"by":138,"text":139},{"value":162,"source":85,"evidence":163},"Why use a pooler instead of client-side pooling",[164],{"id":103,"by":104,"text":105},[166,171,178,186],{"value":167,"source":85,"evidence":168},"PgBouncer",[169,170],{"id":52,"by":11,"text":53},{"id":107,"by":108,"text":109},{"value":172,"source":85,"evidence":173},"Odyssey",[174],{"id":175,"by":176,"text":177},"30268182","jimmyed","Alternative: yandex\u002Fodessey https:\u002F\u002Fgithub.com\u002Fyandex\u002Fodyssey",{"value":179,"source":85,"evidence":180},"Citus",[181,185],{"id":182,"by":183,"text":184},"30274382","ozgune","(Ozgun from Citus \u002F Microsoft) Hi there, thanks for mentioning Citus. Could you share a bit more about the user experience you're looking for with sharding? With Citus, you…",{"id":107,"by":108,"text":109},{"value":187,"source":85,"evidence":188},"Vitess",[189],{"id":190,"by":191,"text":192},"30271006","dikei","Most application never reaches the scale that requires sharding. I'll just use the quote from the notion blog as arguments against automated sharding solution like Vitess. >>…",{"comments":44,"answered":40,"key":194},[195,196,197],{"id":52,"text":53},{"id":71,"text":72},{"id":145,"text":146},{"commenters":199,"max_depth":200,"maker_replies":44,"first_comment_mins":40,"lifespan_hours":201},38,7,60,[203,205,207,208,212,215,218,220,222,225,227,229,232,235,238,240,243,245,247,249,251,253,255,257,260,263,266,269,271,273,274,276,279,282,285,286,288,291,294,297,299,301,304,308,311,312,316,319,322,324,325,327,330,332],[52,40,40,204,11,34],"maker\u002Fpositive\u002Fidea",[88,40,43,206,89,40],"project\u002Fpositive\u002Fidea",[103,40,43,206,104,40],[209,40,40,210,211,40],"30269047","other\u002Fneutral\u002Fnone","djbusby",[213,40,40,214,104,40],"30269292","commenter\u002Fneutral\u002Fnone",[216,40,40,214,217,40],"30269409","fgonzag",[219,40,40,214,211,40],"30269524",[221,40,40,210,120,40],"30269166",[223,40,40,210,224,40],"30269172","suchire",[226,40,40,214,104,40],"30269335",[228,40,40,214,224,40],"30270422",[230,40,40,214,231,40],"30274600","derefr",[233,40,40,210,234,40],"30269201","mixmastamyk",[236,40,40,210,237,40],"30269542","GauntletWizard",[239,40,40,210,191,40],"30270220",[241,40,40,214,242,40],"30272727","heurisko",[126,40,44,244,127,40],"project\u002Fmixed\u002Fperformance",[133,40,44,246,134,40],"project\u002Fneutral\u002Fnone",[248,34,43,206,97,40],"30268652",[96,34,43,250,97,40],"project\u002Fpositive\u002Fexecution",[115,34,34,252,116,40],"project\u002Fcritical\u002Fexecution",[119,34,44,254,120,40],"project\u002Fneutral\u002Fexecution",[71,34,40,256,11,34],"maker\u002Fneutral\u002Fexecution",[258,34,40,214,259,40],"30271158","hnarn",[261,34,40,210,262,40],"30271735","zild3d",[264,34,40,210,265,40],"30273543","politician",[267,34,40,210,268,40],"30281971","remram",[270,34,40,210,265,40],"30301332",[272,34,40,214,97,40],"30276567",[107,35,43,206,108,40],[175,44,34,275,176,40],"project\u002Fcritical\u002Fidea",[277,44,40,214,278,40],"30268691","riku_iki",[280,44,40,210,281,40],"30269840","3np",[283,33,43,284,120,40],"30268450","maker\u002Fpositive\u002Fnone",[137,43,44,254,138,40],[92,287,43,250,93,40],6,[289,287,44,246,290,40],"30274126","boris",[292,200,40,210,293,40],"30268055","johncs",[295,32,40,210,296,40],"30274123","rory_isAdonk",[60,18,43,298,61,40],"project\u002Fpositive\u002Fperformance",[145,18,40,300,11,34],"maker\u002Fneutral\u002Fnone",[302,18,40,214,303,40],"30274226","nsaje",[305,306,40,210,307,40],"30268702",10,"vpprofit",[309,306,40,210,310,40],"30268755","mrslave",[182,306,40,210,183,40],[313,306,40,314,315,40],"30269315","other\u002Fcritical\u002Fnone","azurelake",[317,306,40,210,318,40],"30269704","whateveracct",[320,306,40,210,321,40],"30270084","lmm",[323,306,40,210,281,40],"30269901",[190,306,40,210,191,40],[326,306,40,214,315,40],"30274922",[328,306,40,210,329,40],"30272847","CuriouslyC",[331,306,40,210,315,40],"30274912",[333,306,40,210,329,40],"30276053",[],[336,341,346,350,355,360],{"id":337,"name":338,"points":339,"category":340},"30244534","SHA-256 explained step-by-step visually",1241,"learning_science",{"id":342,"name":343,"points":344,"category":345},"30273940","Jless",344,"dev_tools",{"id":347,"name":348,"points":349,"category":340},"30193997","Reso",259,{"id":351,"name":352,"points":353,"category":354},"30257888","Three Magic Words",204,"games",{"id":356,"name":357,"points":358,"category":359},"30194440","Kapwing Smart Cut",171,"creative",{"id":361,"name":362,"points":363,"category":364},"30258149","Tally Forms",168,"web_saas",false,"v2",{"id":368,"name":5,"line":6,"ai":365,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":369,"top":18,"kw":370,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":371,"url":9,"mix":372,"praise":84,"objection":112,"sub":21},30267539,0.32,[24,25,26,27,28],"0550000000003351300000300553050000000000",[32,33,34,35],1794036616713]