I have a dedicated server with 10x1TB. I can do RAID and make them as single one. But this gave me 10TB data. What will happen if PostgreSQL data exceeds 10TB? Which will exceed soon (I have a special software that requires TBs of database and writes/reads always)

Is there any method/feature in PostgreSQL or pgpool-II to add more servers or hdds when needed. What should I do to prevent such scenario?

Also, I have GlusterFS infrastructure, Should I deploy my database in that? Or is there any filesystem exactly for this?

Note: I know there is replicate. But my situation is splitting very large database on multiple disks or servers or distribute on filesystems like GlusterFS. Like where server is full I add more and it continues to write...

  • You can use tablespaces to store each table on their own disk. A common way to shard data across multiple servers is to use foreign data wrapper. With inheritance this can even be setup to look like one big table – a_horse_with_no_name Oct 29 '16 at 13:05
  • 1) Table-spaces for split tables 2) Disk arrays - for make single disk In any case - You must understand Your data growing plans, and choose configurations based on this data – a_vlad Oct 29 '16 at 13:22
  • What about citusdata? I found that it can shard tables. But it also states that window functions are not supported and i have dozens of window functions. I think i will stick with tablespaces and assign nfs for it. – xangr Oct 29 '16 at 13:25
  • Look, start from calculate - what data You plan have after 2 years? – a_vlad Oct 29 '16 at 13:25
  • 1
    Just for not make 1000 post in comments - it must be much more information for proper answer. It very depend from - number of users, number of queries, type of queries and etc. Any of solution could work, but with different results for different loading – a_vlad Oct 29 '16 at 13:45

As @a_vlad stated, you should do have a plan. Also, for later use I would like to recommend you guys two things.

  1. Tablespace
  2. Citus Data (distribute data across workers)

Citus is a distributed database that combines the low-latency requests that power real-time applications with high throughput, interactive analytics on billions of events.

Citus does this by extending PostgreSQL to distribute your workload across multiple hosts, leveraging the memory, storage, and processing power of multiple machines.

Read more

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.