On Sat,  1 Nov 2014 15:46:18 -0700
Zac Medico <zmed...@gentoo.org> wrote:

> In addition to indexed search, this patch series implements
> stream-based incremental display of search results (fixing bug
> #412471).
> 
> I'll be maintaining this patch series in the following branch:
> 
>       https://github.com/zmedico/portage/tree/bug_525718_stream
> 
> The old non-incremental version of this patch series is still
> available here:
> 
>       https://github.com/zmedico/portage/tree/bug_525718
> 
> 

Zac, while the code looks good, testing has showed a significant drop
in performance for a -s search while it is greatly improves for a -S
search.

big_daddy portage # time emerge -s porthole
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
  
[ Results for search key : porthole ]
Searching...    
*  app-portage/porthole
      Latest version available: 0.6.1-r3
      Latest version installed: 0.6.1-r3
      Size of files: 937 KiB
      Homepage:      http://porthole.sourceforge.net
      Description:   A GTK+-based frontend to Portage
      License:       GPL-2

[ Applications found : 1 ]


real    0m5.509s
user    0m5.181s
sys     0m0.321s
big_daddy portage # time /usr/bin/emerge -s porthole
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
Searching...    
[ Results for search key : porthole ]
[ Applications found : 1 ]

*  app-portage/porthole
      Latest version available: 0.6.1-r3
      Latest version installed: 0.6.1-r3
      Size of files: 937 KiB
      Homepage:      http://porthole.sourceforge.net
      Description:   A GTK+-based frontend to Portage
      License:       GPL-2


real    0m3.431s
user    0m3.024s
sys     0m0.401s
big_daddy portage # emerge --version
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
Portage 2.2.14_p28 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop, 
gcc-4.8.3, glibc-2.19-r1, 3.16.1-gentoo x86_64)
big_daddy portage # /usr/bin/emerge --version
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
Portage 2.2.14 (python 3.3.5-final-0, default/linux/amd64/13.0/desktop, 
gcc-4.8.3, glibc-2.19-r1, 3.16.1-gentoo x86_64)
big_daddy portage # time esearch porthole
[ Results for search key : porthole ]
[ Applications found : 1 ]

*  app-portage/porthole
      Latest version available: 0.6.1-r3
      Latest version installed: 0.6.1-r3
      Size of downloaded files: 936 kB
      Homepage:    http://porthole.sourceforge.net
      Description: A GTK+-based frontend to Portage
      License:     GPL-2
 

real    0m0.189s
user    0m0.149s
sys     0m0.038s
big_daddy portage # 

========================

times for -S search

========================

big_daddy portage # time /usr/bin/emerge -S porthole
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
Searching...   / * ERROR: app-portage/c-layman-9999::gentoo-guis failed (depend 
phase):
 *   git.eclass could not be found by inherit()
 * 
 * Call stack:
 *              ebuild.sh, line 550:  Called source 
'/home/brian/Dev/git/gentoo-guis/app-portage/c-layman/c-layman-9999.ebuild'
 *   c-layman-9999.ebuild, line   9:  Called inherit 'git'
 *              ebuild.sh, line 257:  Called die
 * The specific snippet of code:
 *              [[ -z ${location} ]] && die "${1}.eclass could not be found by 
inherit()"
 * 
 * If you need support, post the output of `emerge --info 
'=app-portage/c-layman-9999::gentoo-guis'`,
 * the complete build log and the output of `emerge -pqv 
'=app-portage/c-layman-9999::gentoo-guis'`.
 * Working directory: '/usr/lib64/python3.3/site-packages'
 * S: '/var/tmp/portage/app-portage/c-layman-9999/work/c-layman-9999'
emerge: search: aux_get() failed, skipping
 | * Manifest not found for 
'/home/brian/Dev/git/gentoo-guis/app-portage/ufed/ufed-9999.ebuild'
 | * ERROR: dev-vcs/git-bzr-9999::The-Pit failed (depend phase):
 *   git.eclass could not be found by inherit()
 * 
 * Call stack:
 *             ebuild.sh, line 550:  Called source 
'/usr/local/portage/dev-vcs/git-bzr/git-bzr-9999.ebuild'
 *   git-bzr-9999.ebuild, line   4:  Called inherit 'git'
 *             ebuild.sh, line 257:  Called die
 * The specific snippet of code:
 *              [[ -z ${location} ]] && die "${1}.eclass could not be found by 
inherit()"
 * 
 * If you need support, post the output of `emerge --info 
'=dev-vcs/git-bzr-9999::The-Pit'`,
 * the complete build log and the output of `emerge -pqv 
'=dev-vcs/git-bzr-9999::The-Pit'`.
 * Working directory: '/usr/lib64/python3.3/site-packages'
 * S: '/var/tmp/portage/dev-vcs/git-bzr-9999/work/git-bzr-9999'
emerge: search: aux_get() failed, skipping
  
[ Results for search key : porthole ]
[ Applications found : 1 ]

*  app-portage/porthole
      Latest version available: 0.6.1-r3
      Latest version installed: 0.6.1-r3
      Size of files: 937 KiB
      Homepage:      http://porthole.sourceforge.net
      Description:   A GTK+-based frontend to Portage
      License:       GPL-2


real    1m15.121s
user    1m1.664s
sys     0m12.891s
big_daddy portage # time emerge -S porthole
!!! Repository 'vdr-devel' has sync-type attribute set to unsupported value: 
'layman'
!!! Repository 'wtk' has sync-type attribute set to unsupported value: 'layman'
  
[ Results for search key : porthole ]
Searching...    
 * ERROR: app-portage/c-layman-9999::gentoo-guis failed (depend phase):
 *   git.eclass could not be found by inherit()
 * 
 * Call stack:
 *              ebuild.sh, line 575:  Called source 
'/home/brian/Dev/git/gentoo-guis/app-portage/c-layman/c-layman-9999.ebuild'
 *   c-layman-9999.ebuild, line   9:  Called inherit 'git'
 *              ebuild.sh, line 257:  Called die
 * The specific snippet of code:
 *              [[ -z ${location} ]] && die "${1}.eclass could not be found by 
inherit()"
 * 
 * If you need support, post the output of `emerge --info 
'=app-portage/c-layman-9999::gentoo-guis'`,
 * the complete build log and the output of `emerge -pqv 
'=app-portage/c-layman-9999::gentoo-guis'`.
 * Working directory: '/home/brian/Dev/git/portage/pym'
 * S: '/var/tmp/portage/app-portage/c-layman-9999/work/c-layman-9999'
emerge: search: aux_get() failed, skipping
*  app-portage/porthole
      Latest version available: 0.6.1-r3
      Latest version installed: 0.6.1-r3
      Size of files: 937 KiB
      Homepage:      http://porthole.sourceforge.net
      Description:   A GTK+-based frontend to Portage
      License:       GPL-2

 * ERROR: dev-vcs/git-bzr-9999::The-Pit failed (depend phase):
 *   git.eclass could not be found by inherit()
 * 
 * Call stack:
 *             ebuild.sh, line 575:  Called source 
'/usr/local/portage/dev-vcs/git-bzr/git-bzr-9999.ebuild'
 *   git-bzr-9999.ebuild, line   4:  Called inherit 'git'
 *             ebuild.sh, line 257:  Called die
 * The specific snippet of code:
 *              [[ -z ${location} ]] && die "${1}.eclass could not be found by 
inherit()"
 * 
 * If you need support, post the output of `emerge --info 
'=dev-vcs/git-bzr-9999::The-Pit'`,
 * the complete build log and the output of `emerge -pqv 
'=dev-vcs/git-bzr-9999::The-Pit'`.
 * Working directory: '/home/brian/Dev/git/portage/pym'
 * S: '/var/tmp/portage/dev-vcs/git-bzr-9999/work/git-bzr-9999'
emerge: search: aux_get() failed, skipping
[ Applications found : 1 ]


real    0m12.515s
user    0m11.795s
sys     0m0.660s
big_daddy portage # 

I know the above times are probably slowed by not having overlays indexed, but 
it is still a significant speedup.
esearch is only marginally slower doing a -S search than a regular pkg-name 
search, typically just over 0.2 seconds


The above was done with only the gentoo repo indexed, plus I need to clean out 
some old ebuilds in overlays.
But I was shocked to see the normal -s searches going from 3.4s to 5.5s with 
your new index.

Also I did not see a way to specify all repos to be index updated.  It is I 
believe a requirement of this new system.  Re-running is for each repo 
installed individually is something to be reserved for the new postsync() to do 
when it lands in master. 

-- 
Brian Dolbec <dolsen>


Reply via email to