7 comments

  • ricw39 days ago
    I’ve been using this since early this year and it’s been great. It was what convinced me to just stick to Postgres rather than using a dedicated vector db.<p>Only working with 100m or so vectors, but for that it does the job.
    • pqdbr38 days ago
      Are you using a dedicated pg instance for vector or you keep all your data in a single pg instance (vector and non-vector)?
      • ComputerGuru38 days ago
        The biggest selling point to using Postgres over qdrant or whatever is that you can put all the data in the same db and use joins and ctes, foreign keys and other constraints, lower latency, get rid of effectively n+1 cases, and ensure data integrity.
        • dalberto38 days ago
          I generally agree that one database instance is ideal, but there are other reasons why Postgres everywhere is advantageous, even across multiple instances:<p>- Expertise: it&#x27;s just SQL for the most part - Ecosystem: same ORM, same connection pooler - Portability: all major clouds have managed Postgres<p>I&#x27;d gladly take multiple Postgres instances even if I lose cross-database joins.
          • throwaway778338 days ago
            Yep. If performance becomes a concern, but we still want to exploit joins etc, it&#x27;s easy to set up replicas and &quot;shard&quot; read only use cases across replicas.
          • nicholasjarnold38 days ago
            Postgres supports the Foreign Data Wrapper concept from SQL&#x2F;MED. If you configure this you can do joins across instances, even!<p><a href="https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;postgres-fdw.html" rel="nofollow">https:&#x2F;&#x2F;www.postgresql.org&#x2F;docs&#x2F;current&#x2F;postgres-fdw.html</a>
      • ricw38 days ago
        All in one of course. That’s the biggest advantage. And why postgres is great - it covers virtually all standard use cases.
    • esafak38 days ago
      What kind of performance do you observe with what setup?
      • ricw38 days ago
        Depends on the query and I don’t have exact numbers of the top of my head, but we’re talking low 100ms range for something pgvector itself wasn’t able to handle in a reasonable amount of time.
  • aunty_helen38 days ago
    Related discussion for pgvector perf: <a href="https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45798479">https:&#x2F;&#x2F;news.ycombinator.com&#x2F;item?id=45798479</a>
    • tacoooooooo38 days ago
      the main issue with pgvectorscale is that it&#x27;s not available in RDS :(
      • omg286438 days ago
        Yes, RDS seems to really hold PG back on AWS, with all the interesting pg extensions getting released now (pg_lake). It is a share I can&#x27;t move to other PG vendors because it is a pain in the ass to get all privacy, legal docs in order.
        • coredog6437 days ago
          Technically, is there a reason AWS can&#x27;t support allowing sophisticated users to run arbitrary extensions in RDS? The control-plane&#x2F;data-plane boundaries should be robust enough that it&#x27;s not going to allow an RDS extension to &quot;hack AWS&quot;. Worst case is that AWS would have to account for the possibility of a crash backoff loop in RDS.<p>I understand that practically you can b0rk an install with a bunch of poorly configured extensions, and you can easily install something that hoovers up all your data and sends it to North Korea. But if I understand those risks and can mitigate them, why not allow RDS to load up extension binaries from an S3 bucket and call it a day?<p>If AWS wanted to broaden the available market, this would be an opportunity to leverage partners and the AWS marketplace mechanisms: Instead of AWS vouching for the extensions, allow partners to sell support in a marketplace. AWS has clean hands for the &quot;My RDS instance crashed and wiped out my market cap&quot; risk, but they can still wet their beak on the money flowing through to vendors. Meanwhile, vendors don&#x27;t have to take full responsibility for the entire stack and mess with PrivateLink etc. Top tier vendors would also perform all the SOC attestation so that RDS doesn&#x27;t lose out.<p>P.S. Andy, if you&#x27;re reading this you should call me.
        • calderwoodra38 days ago
          Yes, the InfoSec advantages of using RDS are very real, especially in B2B Enterprise SaaS.
      • mrinterweb38 days ago
        I&#x27;m considering hosting a separate pg db just to be able to access certain extensions. I am interested in this extension as well as <a href="https:&#x2F;&#x2F;wiki.postgresql.org&#x2F;wiki&#x2F;Incremental_View_Maintenance" rel="nofollow">https:&#x2F;&#x2F;wiki.postgresql.org&#x2F;wiki&#x2F;Incremental_View_Maintenanc...</a> (also not available on RDS). Then use logical replication for specific data source tables (guess it would need to be DMS).
  • whakim38 days ago
    Worth noting that the filtering implementation is quite restrictive if you want to avoid post-filtering: filters must be expressible as discrete smallints (ruling out continuous variables like timestamps or high cardinality filters like ids); filters must always be denormalized onto the table you&#x27;re indexing (no filtering on attributes of parent documents, for example); and filters must be declared at index creation time (lots of time spent on expensive index builds if you want to add filters). Personally I would consider these caveats pretty big deal-breakers if the intent is scale and you do a lot of filtering.
  • jascha_eng38 days ago
    Combined with our other search extension for full text search these two extensions make postgres a really capable hybrid search engine: <a href="https:&#x2F;&#x2F;github.com&#x2F;timescale&#x2F;pg_textsearch" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;timescale&#x2F;pg_textsearch</a>
    • ldng38 days ago
      I&#x27;m not how you&#x27;d combine the two; care to give us a quick outline ?
      • jascha_eng38 days ago
        We have docs on how to do hybrid search here: <a href="https:&#x2F;&#x2F;www.tigerdata.com&#x2F;docs&#x2F;use-timescale&#x2F;latest&#x2F;extensions&#x2F;pg-textsearch#build-hybrid-search-with-semantic-and-keyword-search" rel="nofollow">https:&#x2F;&#x2F;www.tigerdata.com&#x2F;docs&#x2F;use-timescale&#x2F;latest&#x2F;extensio...</a><p>Essentially you combine the pgvector score and the bm25 score to hopefully get better results.
  • isoprophlex38 days ago
    The linked blogpost is an interesting read, too, comparing well-tuned pgvector to pinecone:<p><a href="https:&#x2F;&#x2F;www.tigerdata.com&#x2F;blog&#x2F;pgvector-vs-pinecone" rel="nofollow">https:&#x2F;&#x2F;www.tigerdata.com&#x2F;blog&#x2F;pgvector-vs-pinecone</a>
  • dmarwicke38 days ago
    does this actually fix metadata filtering during vector search? that&#x27;s the thing that kills performance in pgvector. weaviate had the same problem, ended up using qdrant instead
  • mmmeff38 days ago
    This is still unsupported in RDS, right?
    • jascha_eng38 days ago
      We have a lot of happy customers that moved from rds to tiger cloud if you think pgvectorscale is interesting to you and you don&#x27;t want to self host pg.<p>But yes big cloud providers move slow in adopting extensions.
    • tacoooooooo38 days ago
      correct afaik :(<p><a href="https:&#x2F;&#x2F;github.com&#x2F;timescale&#x2F;pgvectorscale&#x2F;issues&#x2F;113" rel="nofollow">https:&#x2F;&#x2F;github.com&#x2F;timescale&#x2F;pgvectorscale&#x2F;issues&#x2F;113</a>