Thread: Max# of tablespaces

Max# of tablespaces

From
Thomas Flatley
Date:

Hello, I’ve checked the docs but cant seem to find if there is a max # of tablespaces allowed – I’ve come across a 9.5 env with 1600 tablespaces – they want to double that – Oracle’s max is 64k, I’m not particularly worried about hitting a wall, if there is one , outside of maintenance issues – any assistance would be greatly appreciated.

thanks

Re: Max# of tablespaces

From
Andreas Kretschmer
Date:
On 3 January 2021 13:59:31 CET, Thomas Flatley <FLATLEYT@outlook.com> wrote:
>Hello, I've checked the docs but cant seem to find if there is a max #
>of tablespaces allowed - I've come across a 9.5 env with 1600
>tablespaces - they want to double that

why on earth do you think you will need so many tablespaces? They have an other meaning than in oracle.


--
2ndQuadrant - The PostgreSQL Support Company



Re: Max# of tablespaces

From
Tom Lane
Date:
Thomas Flatley <FLATLEYT@outlook.com> writes:
> Hello, I've checked the docs but cant seem to find if there is a max # of tablespaces allowed - I've come across a
9.5env with 1600 tablespaces - they want to double that - Oracle's max is 64k, I'm not particularly worried about
hittinga wall, if there is one , outside of maintenance issues - any assistance would be greatly appreciated. 

There's no particular hard limit, though you might start to run into
OID-starvation problems at a billion or so tablespaces.

On the other hand, it's important to realize that a Postgres tablespace
doesn't really *do* anything.  It's just a separate subdirectory.
The only functional reason to use a tablespace is if you can place it
on a separate filesystem.  There is certainly value in being able to
do that --- but I've never heard of systems having more than a few
dozen filesystems mounted.  Hence, the above issue sounds suspiciously
like somebody is expecting Postgres tablespaces to do something they
don't do.

(I suppose if you are working on a system that has limits on the
number of files per directory, or performance problems with large
values of that, then you could use tablespaces as a workaround.
But TBH you'd be better off moving onto a more modern platform.)

            regards, tom lane



RE: Max# of tablespaces

From
Thomas Flatley
Date:
Excellent - thanks for the fast response - it was an oracle dba that set it up initially so that may explain it -

Thanks very much

-----Original Message-----
From: Tom Lane <tgl@sss.pgh.pa.us>
Sent: Sunday, January 3, 2021 12:27 PM
To: Thomas Flatley <FLATLEYT@outlook.com>
Cc: pgsql-general@lists.postgresql.org
Subject: Re: Max# of tablespaces

Thomas Flatley <FLATLEYT@outlook.com> writes:
> Hello, I've checked the docs but cant seem to find if there is a max # of tablespaces allowed - I've come across a
9.5env with 1600 tablespaces - they want to double that - Oracle's max is 64k, I'm not particularly worried about
hittinga wall, if there is one , outside of maintenance issues - any assistance would be greatly appreciated. 

There's no particular hard limit, though you might start to run into OID-starvation problems at a billion or so
tablespaces.

On the other hand, it's important to realize that a Postgres tablespace doesn't really *do* anything.  It's just a
separatesubdirectory. 
The only functional reason to use a tablespace is if you can place it on a separate filesystem.  There is certainly
valuein being able to do that --- but I've never heard of systems having more than a few dozen filesystems mounted.
Hence,the above issue sounds suspiciously like somebody is expecting Postgres tablespaces to do something they don't
do.

(I suppose if you are working on a system that has limits on the number of files per directory, or performance problems
withlarge values of that, then you could use tablespaces as a workaround. 
But TBH you'd be better off moving onto a more modern platform.)

            regards, tom lane



Re: Max# of tablespaces

From
Bruce Momjian
Date:
On Sun, Jan  3, 2021 at 05:37:52PM +0000, Thomas Flatley wrote:
> Excellent - thanks for the fast response - it was an oracle dba that set it up initially so that may explain it - 

Agreed.  It was probably done that way for an invalid reason and should
be cleaned up.

-- 
  Bruce Momjian  <bruce@momjian.us>        https://momjian.us
  EnterpriseDB                             https://enterprisedb.com

  The usefulness of a cup is in its emptiness, Bruce Lee




RE: Max# of tablespaces

From
Thomas Flatley
Date:
I don’t, but I didn’t set up the env

As far as I can tell, each tablespace is a partition, and I assume they felt this was the best way to perform partition
maintenance- again, I don’t know , 
 

-----Original Message-----
From: Andreas Kretschmer <andreas@a-kretschmer.de> 
Sent: Sunday, January 3, 2021 11:52 AM
To: pgsql-general@lists.postgresql.org; Thomas Flatley <FLATLEYT@outlook.com>; pgsql-general@lists.postgresql.org
Subject: Re: Max# of tablespaces

On 3 January 2021 13:59:31 CET, Thomas Flatley <FLATLEYT@outlook.com> wrote:
>Hello, I've checked the docs but cant seem to find if there is a max # 
>of tablespaces allowed - I've come across a 9.5 env with 1600 
>tablespaces - they want to double that

why on earth do you think you will need so many tablespaces? They have an other meaning than in oracle.


--
2ndQuadrant - The PostgreSQL Support Company

Re: Max# of tablespaces

From
Christophe Pettus
Date:

> On Jan 5, 2021, at 13:55, Thomas Flatley <FLATLEYT@outlook.com> wrote:
>
> As far as I can tell, each tablespace is a partition, and I assume they felt this was the best way to perform
partitionmaintenance - again, I don’t know ,  

It's a very common Oracle-ism to have a lot of tablespaces, in part because (IIRC) Oracle makes it an incredible pain
inthe neck to add tablespaces once the DB is in use.  For sharding purposes, you probably want schemas in PostgreSQL
insteadof tablespaces, although having that many schemas is going to not be optimal, either. 

--
-- Christophe Pettus
   xof@thebuild.com




Re: Max# of tablespaces

From
Ron
Date:
It's certainly the "I only know bash" method of determining which partition 
growing the fastest.

On 1/5/21 3:55 PM, Thomas Flatley wrote:
> I don’t, but I didn’t set up the env
>
> As far as I can tell, each tablespace is a partition, and I assume they felt this was the best way to perform
partitionmaintenance - again, I don’t know ,
 
>
> -----Original Message-----
> From: Andreas Kretschmer <andreas@a-kretschmer.de>
> Sent: Sunday, January 3, 2021 11:52 AM
> To: pgsql-general@lists.postgresql.org; Thomas Flatley <FLATLEYT@outlook.com>; pgsql-general@lists.postgresql.org
> Subject: Re: Max# of tablespaces
>
> On 3 January 2021 13:59:31 CET, Thomas Flatley <FLATLEYT@outlook.com> wrote:
>> Hello, I've checked the docs but cant seem to find if there is a max #
>> of tablespaces allowed - I've come across a 9.5 env with 1600
>> tablespaces - they want to double that
> why on earth do you think you will need so many tablespaces? They have an other meaning than in oracle.

-- 
Angular momentum makes the world go 'round.



RE: Max# of tablespaces

From
Thomas Flatley
Date:
I agree - it requires a re-think/re-build

As for oracle, quite easy to add tablepaces in flight, assuming you don’t hit max db_files

I was more curious if there was an actual defined limit - oracle stops at 64K , and their old application release would
have2tbsp per module, and at 400 or so that’s a hassle
 



-----Original Message-----
From: Christophe Pettus <xof@thebuild.com> 
Sent: Tuesday, January 5, 2021 5:02 PM
To: Thomas Flatley <FLATLEYT@outlook.com>
Cc: Andreas Kretschmer <andreas@a-kretschmer.de>; pgsql-general@lists.postgresql.org
Subject: Re: Max# of tablespaces



> On Jan 5, 2021, at 13:55, Thomas Flatley <FLATLEYT@outlook.com> wrote:
> 
> As far as I can tell, each tablespace is a partition, and I assume they felt this was the best way to perform
partitionmaintenance - again, I don’t know , 
 

It's a very common Oracle-ism to have a lot of tablespaces, in part because (IIRC) Oracle makes it an incredible pain
inthe neck to add tablespaces once the DB is in use.  For sharding purposes, you probably want schemas in PostgreSQL
insteadof tablespaces, although having that many schemas is going to not be optimal, either.
 

--
-- Christophe Pettus
   xof@thebuild.com