Return to Video

meetings-archive.debian.net/.../bugsdebianorg_Database_Ho.webm

  • 0:00 - 0:04
    maintains still some of the flat files in our system
  • 0:04 - 0:05
    that should increase speed
  • 0:06 - 0:07
    the flat files of our system
  • 0:10 - 0:11
    that my primary motivation
  • 0:11 - 0:12
    for giving a talk was
  • 0:12 - 0:14
    to try to force myself
  • 0:14 - 0:14
    into actually doing
    to try to force myself
  • 0:14 - 0:16
    into actually doing
  • 0:16 - 0:17
    the work that I'm going
  • 0:17 - 0:18
    talk about in this talk [laughts]
  • 0:18 - 0:20
    ????
  • 0:20 - 0:21
    lightly successful
  • 0:21 - 0:23
    so I may introduce you some of them, but???
  • 0:24 - 0:26
    become too much
  • 0:26 - 0:28
    of the professional procrastinator
  • 0:28 - 0:30
    to being influenced by even giving a talk
  • 0:32 - 0:34
    Let's see how this work out
  • 0:35 - 0:38
    The first couple of things I'm going to talk about
  • 0:38 - 0:40
    are just some general bugs statistics
  • 0:40 - 0:44
    I'll enjoy showing some plots
  • 0:44 - 0:47
    I'm going to introduce the basic arquitecture of debbugs
  • 0:47 - 0:50
    just to backup, debbug is
  • 0:50 - 0:53
    the system behind bugs are debian debug
  • 0:53 - 0:56
    so if you file the bug
  • 0:56 - 0:58
    you fix the bug
  • 0:58 - 1:01
    you wonder where bugs exists
  • 1:01 - 1:02
    you interact with that bugs
  • 1:02 - 1:05
    ????
  • 1:05 - 1:10
    I'm going to talk about some of the new features
  • 1:21 - 1:23
    I'm going to talk about some planned features
  • 1:23 - 1:26
    specially features that won't happen If I suddenly
  • 1:26 - 1:29
    have two or three more people would help
  • 1:29 - 1:32
    and I hopefully would pleased with
  • 1:32 - 1:34
    of you or people who are missing
  • 1:34 - 1:35
    this talk online
  • 1:35 - 1:38
    or who may watch this talk recording later
  • 1:38 - 1:41
    to assist me in implementing some of these features
  • 1:41 - 1:42
    I'm a nice person
  • 1:42 - 1:45
    we are nice people
  • 1:45 - 1:47
    and I'd like to see any pro hackers
  • 1:47 - 1:50
    to see a css hacker or javascript hackers
  • 1:50 - 1:52
    or people who writes documentation helps
  • 1:57 - 2:00
    the goal of the BTS is to
  • 2:00 - 2:01
    report bugs
  • 2:01 - 2:03
    track the evolution of bugs
  • 2:03 - 2:04
    fix bugs
  • 2:04 - 2:07
    and hopefully reduce the impact of bugs
  • 2:07 - 2:09
    ???
  • 2:11 - 2:16
    this is how many bugs do we have versus time
  • 2:16 - 2:20
    as you can see our bug growth is
  • 2:20 - 2:21
    roughly linear over time
  • 2:21 - 2:23
    and actually decreasing slowly but
  • 2:23 - 2:26
    that a huge number of bugs
  • 2:26 - 2:30
    people like to track exactly how many bugs we have
  • 2:30 - 2:32
    ???
  • 2:32 - 2:34
    fun contest
  • 2:34 - 2:38
    guessing when the ticket bug will be filed fo ar example
  • 2:38 - 2:42
    the 760 000
  • 2:42 - 2:44
    bug will be filed
  • 2:44 - 2:46
    at I think
  • 2:46 - 2:48
    on September 2
  • 2:48 - 2:53
    and the 800 000 will be filed almost a year from now
  • 2:53 - 2:55
    on September 13
  • 2:55 - 2:57
    observing the linear progression
  • 2:57 - 2:59
    maintains itself
  • 2:59 - 3:01
    ??? enjoys that but he is not here
  • 3:01 - 3:03
    ??
  • 3:03 - 3:05
    Anyway that's to show the bug reporting rate
  • 3:05 - 3:09
    We average roughly have a 42 bugs found by day
  • 3:10 - 3:13
    as you see, that's a huge number bugs
  • 3:13 - 3:19
    This is the bug closing graph
  • 3:19 - 3:24
    It's actually taking not bug closures. It's actually bugs being archetyped ¿?
  • 3:24 - 3:27
    but for the most part it's aproximated
  • 3:27 - 3:31
    bugs closure rate ???
  • 3:31 - 3:36
    So, we close roughly 95 bugs per day
  • 3:36 - 3:40
    So from that you could imagine that the bug system is gaining
  • 3:40 - 3:44
    50 or so much bugs everyday that are not going to be fixed
  • 3:44 - 3:49
    Further than fortunately in this graph you can see that
  • 3:49 - 3:53
    the bug closing rate is decreasing
  • 3:53 - 3:58
    in contrast with the bug reporting rate awesome increasing
  • 3:58 - 3:59
    something that i've seen
  • 3:59 - 4:04
    in previous post I'v made on my blog
  • 4:04 - 4:06
    this is actually kind of disturbing
  • 4:06 - 4:08
    I'm not sure what that means for Debian as a whole
  • 4:08 - 4:11
    what means anything but
  • 4:11 - 4:14
    I'd much rather seen the overall rating increasing
  • 4:14 - 4:18
    than decreasing
  • 4:19 - 4:21
    In this graph you are familiar with
  • 4:21 - 4:24
    this is RC bugs from the bug ??
  • 4:24 - 4:30
    lukely the RC bugs are those that matter for the next relase are decreasing
  • 4:33 - 4:36
    getting in line for a new release there
  • 4:36 - 4:38
    ??
  • 4:39 - 4:42
    Ok. So those is enough on graphs.
  • 4:42 - 4:46
    Now I'm going to talk about
  • 4:46 - 4:48
    debbugs system and how it works
  • 4:50 - 4:52
    debbugs two main components
  • 4:52 - 4:54
    there is a mail backend
  • 4:54 - 5:00
    wich is what interact with any email
  • 5:00 - 5:02
    submits bugs ??
  • 5:02 - 5:05
    or a bug number in bugs at ??
  • 5:05 - 5:08
    Next system on deb ??
  • 5:08 - 5:13
    wich has and old files and process you email ¿?
  • 5:15 - 5:18
    The other aspect in debbugs is a web project
  • 5:18 - 5:25
    That is what displays information on what bugs are on wich packets
  • 5:25 - 5:27
    and the bug ??
  • 5:27 - 5:29
    and it's also here
  • 5:29 - 5:32
    on to another machine
  • 5:32 - 5:37
    on beach so that ?? faster ??
  • 5:38 - 5:41
    that bugs interact with dak
  • 5:41 - 5:44
    wich is a software wich is responsable from maintaining the ??
  • 5:44 - 5:46
    so duk tells debbugs
  • 5:46 - 5:49
    wich who maintains wich packages
  • 5:51 - 5:53
    so debbugs know who is ??
  • 5:53 - 5:55
    ??
  • 5:55 - 5:59
    It also tells debbugs wich packages are in wich suite
  • 5:59 - 6:01
    and wich arquitecture
  • 6:01 - 6:08
    so debbugs can calculate wether a bug is present in a particular suite
  • 6:08 - 6:15
    for example if the bug is fixed on stable or whether it's fixed in testing oin r stable
  • 6:15 - 6:18
    what was calculated by previous ??
  • 6:20 - 6:22
    britney also
  • 6:22 - 6:25
    is the testing migration
  • 6:25 - 6:28
    software that migrates software from unstable
  • 6:28 - 6:29
    to testing
  • 6:29 - 6:32
    it uses information from the ¿buxtehude? as well
  • 6:32 - 6:37
    it regards to wether a package is becoming more buggy
  • 6:37 - 6:38
    or less buggy
  • 6:38 - 6:40
    by operating
  • 6:41 - 6:43
    the actual ?? that does that is
  • 6:43 - 6:46
    ???
  • 6:46 - 6:48
    and it provides a list of bugs
  • 6:48 - 6:51
    and also does the RC bug graphs
  • 6:51 - 6:54
    but ir provides ????
  • 6:58 - 7:01
    debbugs ?? is like this
  • 7:01 - 7:03
    mail comes in
  • 7:03 - 7:06
    there is spam processing that happens on the first step ??
  • 7:06 - 7:08
    ??
  • 7:08 - 7:12
    ???
  • 7:14 - 7:19
    is primary responsable from keeping bugtrack system free of spam
  • 7:19 - 7:21
    and these spamming
  • 7:25 - 7:29
    ?? the little bit spam that actually make its way ??
  • 7:29 - 7:41
    ??
  • 7:41 - 7:43
    is not a great job
  • 7:43 - 7:46
    after that mails been despammed
  • 7:46 - 7:49
    then, it goes to processall
  • 7:49 - 7:51
    and sub process
  • 7:51 - 7:54
    is responsable from handleing
  • 7:54 - 7:56
    emails that ? submit
  • 7:56 - 7:58
    and emails that ?? bug numbers
  • 7:58 - 8:03
    like this ???
  • 8:03 - 8:07
    service is responsable from handleing ??
  • 8:07 - 8:11
    so any email you send ??
  • 8:11 - 8:15
    now with the advent of
  • 8:15 - 8:17
    control at submit¿?
  • 8:17 - 8:19
    ????
  • 8:19 - 8:25
    this diagram is getting a little bit bluried. It's actually an abstraction ??
  • 8:25 - 8:29
    ???
  • 8:29 - 8:34
    then all of the information is stored in flat files
  • 8:34 - 8:37
    and a db-h ? wich has
  • 8:37 - 8:40
    small hash functions split ??
  • 8:40 - 8:45
    and is indexed with a couple of flat files indexes
  • 8:45 - 8:53
    and then a cgi scripts use both the indexes and the flat files system to display bugs
  • 8:58 - 9:00
    so that's how
  • 9:01 - 9:05
    debbugs worked before I started working on it
  • 9:05 - 9:11
    The current plan is to add on and basically replace this indexes
  • 9:11 - 9:13
    with a databse layer
  • 9:13 - 9:19
    and so I'm going to keep part of the flat files just because that's a well tested system
  • 9:19 - 9:22
    there are lots of things already parts of flat files ¿?
  • 9:22 - 9:24
    and I don't know how to deal with them ¿?
  • 9:24 - 9:28
    and add on top a postgresql based database
  • 9:28 - 9:34
    that, the cgi scripts ?? in order to display information ??
  • 9:34 - 9:41
    this will help both, increase the speed you get results back
  • 9:41 - 9:44
    you are looking and ??
  • 9:44 - 9:48
    and also enable you to do more complicated things like
  • 9:48 - 9:52
    ?? bugs that actually affects a particular version
  • 9:52 - 9:56
    without waiting for huge amounts of time
  • 9:56 - 9:58
    for a query to complete
  • 9:58 - 10:01
    so for example, you want to look at all security bugs
  • 10:01 - 10:03
    wich affects unstable
  • 10:03 - 10:06
    well that's actually a really hard query to do
  • 10:06 - 10:08
    without a database layer
  • 10:08 - 10:12
    so that's one of the major things a database to do ??
  • 10:12 - 10:17
    so the script that actually handles loading things in the database is called dbugloader.sql
  • 10:19 - 10:21
    Debbugs is run in parallel
  • 10:26 - 10:30
    but perl has recently come quite a wise
  • 10:30 - 10:33
    in handling databases
  • 10:33 - 10:36
    Most everybody has adopted
  • 10:36 - 10:39
    the perl ?? by using DBIx
  • 10:39 - 10:41
    in order to talk to databases
  • 10:41 - 10:43
    very successful database abstraction
  • 10:44 - 10:47
    Anybody who has ever written code in DBIx
  • 10:47 - 10:49
    knows that it is extremely tedious
  • 10:49 - 10:53
    to do joing and complicated statements
  • 10:53 - 10:58
    ?? writing sql and scaping and etc.
  • 10:58 - 11:00
    using place orders
  • 11:00 - 11:02
    ?? you have to keep track them
  • 11:02 - 11:06
    DBA has classes and extensions
  • 11:06 - 11:09
    that bloms together a huge number of
  • 11:09 - 11:14
    ?? into a really concurrent database abstraction service
  • 11:14 - 11:17
    where if you give it your schema
  • 11:17 - 11:23
    It would build classes and enable you to talk to ?? result groups
  • 11:23 - 11:26
    from your database
  • 11:28 - 11:29
    It's a complete system
  • 11:29 - 11:33
    you can actually write a schema entirely in DBIx class
  • 11:33 - 11:36
    that you can then to SQL alike
  • 11:36 - 11:40
    You can convert into a PostgreSQL, mySQL, etc
  • 11:42 - 11:45
    In this case I'm interested in
  • 11:45 - 11:47
    In write for PostgreSQL
  • 11:47 - 11:50
    that actually will be the database package?
  • 11:50 - 11:54
    there may be an option eventually to use SQL Lite for testing but
  • 11:54 - 11:58
    my primary goal is to deploy PostgreSQL
  • 11:58 - 12:00
    I'm also in using
  • 12:00 - 12:03
    a bunch of classes that are specific to Debian
  • 12:03 - 12:08
    for example the Debian Version Extension to PostgreSQL
  • 12:08 - 12:11
    that enables you to sort by Debian's version
  • 12:11 - 12:14
    That's extremely important to DBI ¿?
  • 12:14 - 12:18
    And that is something that handles very well in PostgreSQL
  • 12:18 - 12:21
    What I've actually done is rewrite ?? directing SQL
  • 12:21 - 12:25
    and DBIx class has an extension called Schema Loader
  • 12:25 - 12:27
    which handles converting the SQL schema
  • 12:27 - 12:33
    into the class decorations for DBIx class automatically
  • 12:33 - 12:36
    so you just write plain old SQL like you used to
  • 12:36 - 12:41
    and it automatically creates all the database related
  • 12:41 - 12:45
    Plurar classes that you used to talk results from database
  • 12:46 - 12:49
    There is another module which handles deployment
  • 12:49 - 12:53
    it can do automated upgrades from
  • 12:54 - 12:56
    different schema revisions
  • 12:56 - 12:59
    so as you change your schema
  • 12:59 - 13:01
    it handles doing both upgrades
  • 13:01 - 13:03
    and new installs of the new schema
  • 13:03 - 13:08
    wich you can also do downgrades
  • 13:08 - 13:10
    and yo can do others things
  • 13:10 - 13:14
    in addition to just execute SQL alter statements you can also run
  • 13:14 - 13:17
    ¿pro code? or anything else you want at the database
  • 13:17 - 13:19
    IH operations¿?
  • 13:19 - 13:27
    so that enables much easier changes to the schema in the future
  • 13:27 - 13:33
    and finally the actual module in Debbugs ???
  • 13:33 - 13:35
    is DebBugs DB
  • 13:35 - 13:41
    and so all of the database interactions classes in Debbugs ¿?
  • 13:43 - 13:46
    and so this is the .....
  • 13:46 - 13:50
    It's kind of complicated but this basically tracks
  • 13:50 - 13:52
    all of the bugs relationships
  • 13:52 - 13:55
    It tracks who correspond with the DBs
  • 13:55 - 14:00
    has all this source package versions imaginary packae versions
  • 14:00 - 14:05
    version depences show for example when you uploaded version from a previous version
  • 14:05 - 14:10
    this ables all that to be tracked
  • 14:11 - 14:15
    Taken the DQL schema as
  • 14:16 - 14:19
    as inspiration but unfortunately
  • 14:19 - 14:24
    the debbugs ????
  • 14:24 - 14:28
    classes but I think it makes sense so
  • 14:28 - 14:31
    Anyway if somebody uses PostgreSQL genius
  • 14:31 - 14:34
    or an SQL hacker and is interested in
  • 14:34 - 14:40
    maybe offering suggestions right ???
  • 14:40 - 14:42
    ¿talk about?
  • 14:46 - 14:48
    Is actually pretty easy
  • 14:48 - 14:50
    just called debbugs SQL bugs
  • 14:50 - 14:51
    uploads them
  • 14:51 - 14:54
    There are two different part of bugs in debbugs
  • 14:54 - 14:56
    There is the one that you can actually modify
  • 14:56 - 14:58
    and there are the archive bugs
  • 14:58 - 15:03
    so this handles join both with both sets of bugs
  • 15:03 - 15:06
    can also load versioning information
  • 15:06 - 15:09
    this logs wich packages are depending on the ones
  • 15:09 - 15:13
    and de Debian ¿? the architecture
  • 15:13 - 15:15
    and source version
  • 15:16 - 15:19
    So, the SQL is actually working
  • 15:19 - 15:23
    ?? sql query
  • 15:23 - 15:26
    which you also write this easy in a DBIx class
  • 15:26 - 15:29
    let me show you that this actually works
  • 15:46 - 15:49
    ???
  • 15:49 - 15:54
    I can run the SELECT statement wich is selecting the count of bugs WHERE
  • 15:54 - 16:01
    which has been modify since June or July
  • 16:01 - 16:03
    which are not done and
  • 16:03 - 16:06
    and which are
  • 16:08 - 16:10
    which are done and which there are an outer set
  • 16:10 - 16:12
    and the answer is
  • 16:13 - 16:15
    521
  • 16:15 - 16:20
    as you can see that is a full load of all the bugs in Debian
  • 16:20 - 16:25
    The actual SQL query executes very quick
  • 16:25 - 16:32
    ??
  • 16:37 - 16:41
    I hopped to have more of this done by the time of this talk but
  • 16:41 - 16:43
    There still is a lot of work that's needed
  • 16:45 - 16:47
    The bugs file currently are not loaded
  • 16:47 - 16:51
    the bugs files are ??
  • 16:52 - 16:56
    That's needed to enable full text searching index
  • 16:56 - 17:00
    It also currently doesn't do ??
  • 17:00 - 17:05
    thats ?? faster loading ??
Title:
Video Language:
English
Team:
Debconf
Project:
2014_debconf14

English subtitles

Incomplete

Revisions