On Fri, 7 Dec 2018 16:42:31 +0000
Paolo Lucente <pa...@pmacct.net> wrote:

> You could make the field variable-length - optimizing space and
> avoiding you the try & error of finding the sweet spot size for the
> as path field at the expense of more computing.

I would not expect a Postgres TEXT column, which is variable
length, to be significantly more CPU intensive than a
fixed length CHAR column.

>From the PG docs regarding the various types which store strings:

---
There is no performance difference among these three types, apart from 
increased storage space when using the blank-padded type, and a few extra CPU 
cycles to check the length when storing into a length-constrained column. While 
character(n) has performance advantages in some other database systems, there 
is no such advantage in PostgreSQL; in fact character(n) is usually the slowest 
of the three because of its additional storage costs. In most situations text 
or character varying should be used instead.
---

So, when using Postgres, there's no particular reason to
limit string column lengths.

What is important with Postgres is the collation sequence
used by the database.  UTF-8 collation support slows down sorting
significantly, and so affects indexes and so forth.
If you need UTF-8 characters you can do that, but
sort them by byte-code values if you care about performance.
If necessary collation can even be set down to the column
level in the newest PG.  What's easiest is to avoid UTF-8
entirely and set the locale for the whole db to "C".
This gives you an entire byte to store each character
and characters sorted by byte-code value.

https://www.postgresql.org/docs/11/charset.html

> On Fri, Dec 07, 2018 at 10:46:32AM +0100, Fabien VINCENT wrote:
> > Dear List, 
> > 
> > I've an issue when nfacctd try to push to pgsql database : 
> > 
> > PGSQL log file : 
> > 
> > ERROR:  value too long for type character(80)
> > CONTEXT: 
> > 
> > COPY flow _*****_, line 74771, column as_path_src: "14061
> > {46652,4210010000,4210010200,4210010201,4210010202,4210010297,4210010400,4210010402,4210010499..."
> > 
> > 
> > In my nfacctd config file I've : 
> > 
> > bgp_aspath_radius: 10 
> > 
> > because as_path_src is set to CHAR(80). But seems BGP aggregates
> > break the rules ? 
> > 
> > Is there anyway to limit / cut down BGP aggregates in column
> > as_path_src ? 

Karl <k...@meme.com>
Free Software:  "You don't pay back, you pay forward."
                 -- Robert A. Heinlein

_______________________________________________
pmacct-discussion mailing list
http://www.pmacct.net/#mailinglists

Reply via email to