Re: Online index builds - Mailing list pgsql-hackers
From | Bruce Momjian |
---|---|
Subject | Re: Online index builds |
Date | |
Msg-id | 200608011143.k71Bh9c22067@momjian.us Whole thread Raw |
In response to | Online index builds (Greg Stark <gsstark@mit.edu>) |
Responses |
Re: Online index builds
Re: Online index builds |
List | pgsql-hackers |
Consindering the syntax for this, we currently allow read access during index creation, just not write access, so I think the new syntax should be: CREATE [ UNIQUE ] INDEX name ON table [ USING method ] [ [ENABLE] WRITE [ACCESS] ] ( { column | ( expression ) }[ opclass ] [, ...] ) [ WITH ( storage_parameter = value [, ... ] ) ] [ TABLESPACE tablespace ] [ WHERE predicate] This is clear, and adds no new keywords. --------------------------------------------------------------------------- Greg Stark wrote: > > I just sent in the patch for online index builds to -patches. > > . The work to combine the two phases into a single non-transactional command > is done. I'm not sure how long to wait between lock checks or how verbose to > be about why it's taking so long. I do think we have to print something or > else the DBA won't know if it's hung waiting for something external. > Currently it prints a notice the first time it sleeps. > > . Also it prints out how many tuples it found which normal index doesn't. > Probably that message should go away. On the other hand the index stats > probably need to be filled in. > > . I need to check what locks I'm taking. I think I still have some old code > with the wrong locks in it. > > . this includes the tid btree opclass sent earlier (with a warning I didn't > notice before fixed up). opr_sanity now fails but I think that's due to the > gin commits not this opclass. > > . In case of an error during phase2 the invalid index is left in place. It can > be dropped with DROP INDEX. The footwork to get it dropped in case of an > error would be quite tricky but there's a sketch of how to do it in the source. > > . no documentation yet, there's not much to write though. > > . no regression tests yet. I don't see any way to test this reasonably in the > regression tests. I've done some testing myself by building indexes while > pgbench is running. Then I have to do index scans to see how many records > are returned with index scans. It wouldn't be easy to automate and even if > it were done it wouldn't really be all that great a test. The corner cases > found during the development are pretty narrow and will be hard to reliably > test. > > -- > greg > > > ---------------------------(end of broadcast)--------------------------- > TIP 5: don't forget to increase your free space map settings -- Bruce Momjian bruce@momjian.us EnterpriseDB http://www.enterprisedb.com + If your life is a hard drive, Christ can be your backup. +
pgsql-hackers by date: