[WIP] Guardian - the final replacement for BB, LogBlock and HawkEye

Discussion in 'WIP and Development Status' started by oliverw92, Aug 27, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    Mazaveli

    Will it track the new blocks by default, or do you have to add those?
     
  2. Offline

    oliverw92

    It will auto track new blocks since it just uses internal methods. An update will be required for the interface however.
     
  3. Offline

    Waddle906

    Ok - My friend touched on this, but it seems to have been ignored -_-

    When Guardian gets released, would it be able to log Storage Minecarts, which I would see be hard as a chest is in one place, but a storage cart moves... But it may be possible, would you be able to do it?
     
  4. Offline

    oliverw92

    Theoretically that is possible, however rolling back most likely wouldn't be.
     
  5. Offline

    FunnyMan3595

    I'm interested in joining the project to build support for different database backends. SQLite has been mentioned (easier on server admins), and I'd also like to add support for PostgreSQL.

    The reason for PostgreSQL: One of the servers I work on has a LogBlock database with over 13 million rows of block history. With that much history, area searches become problematic, because MySQL's indexing system doesn't support 2D indexes (y is small enough to be ignored). I did a test import into PostgreSQL, and after finding the right data and index type to use, a query that used to run in 50s now runs in 0.5s. (Actually, that was 2 million rows ago, so the change would be even more dramatic now.)
     
  6. Offline

    jammasterz

    Consider addint a the before Guardia so that it sounds epic.
    ..::The Guardian::..
     
  7. Offline

    fahlman

    I applaud you guys for joining together to combine your plugins to a single, well supported plugin. Let's hope this can be an example for other plugin developers.
     
  8. Offline

    oliverw92

    50 seconds? What plugin was causing that, because I can do area searches on a database of 130 million entries in HawkEye and it returns in under a second
     
  9. Offline

    but2002

    @oliverw92 @FunnyMan3595 I bet it's more the server, and not the database type.

    I'm not sure, but I think PostgreSQL uses less resources than MySQL and if that's the case then it would make sense for smaller environments, and would explain something like that.
     
  10. Offline

    Bobbosells32

    Will this rollback WorldEdits and sand/gravel thats fallen?
     
  11. Offline

    Celtic Minstrel

    I doubt it would do WorldEdits, though I think technically it could if WorldEdit hooked into it.
     
  12. Offline

    DiddiZ

    There no event for falling sand/gravel yet, but when it gests added sure.

    EDIT: Sry for not answering, but bukkit failed to alert me the second time ...
     
  13. Offline

    FunnyMan3595

    @oliverw92 LogBlock

    The super long query was a test search on x=0..100, y=0..128, z=0..100. But we've seen real access times of about half that at various moments.

    The performance will depend a lot on your data. The problem is that MySQL can only sort the data in one direction at a time, so if you're running the query above, it'll look through a segment of data sorted like this:

    ...
    -1,54, 1032
    0, 27, 1
    0, 28, 2000
    0, 28, 2059
    0, 29, 5
    1, 20, -503
    2, 49, -990
    3, 0, 98
    5, 4, 55
    ...

    Yeah, the rows you are looking for will be in there, but so will a lot of other stuff with an x coordinate in the right range. You might do better sorting by x,z,y or z,x,y, but the fundamental problem remains: Anything in-bounds on the first coordinate searched has to be examined and dropped; it can't be skipped by the index.

    PostgreSQL's advantage here is that it has the more generic GiST indexes, which when set up correctly let you actually run an index search for something like "(x,z) is in (0..100, 0..100)". It'll still get stuff with y out of bounds and have to filter that, but the x,z locality in Minecraft is *really* high, especially for a large world.

    Edit: Slight correction: You can actually skip through contiguous chunks of irrelevant data in that sort, by doing a modified binary search. But you'll have to run one for every range that's not in bounds. You can skip to 0,0,0, read to 0,0,100, and then skip to 0,1,0, but you'll end up doing a *lot* of skips over the course of that entire search. Even with x,z,y ordering, you'll be doing a skip operation for every valid x coordinate.
     
  14. Offline

    kuyan

    I don't know if this happens in the current build of WorldEdit (I'm using a beta build) but WorldEdit logs of all WorldEdit activity, including world, user, and, if applicable, selected region that command was used on. It's shown in server.log like this:
    Code:
    [INFO] WorldEdit: kuyan(in Creative): /set 1 - Region: (129.0, 62.0, 209.0) - (129.0, 62.0, 210.0)
    So, if Guardian can't roll back WorldEdit activity, maybe it could just show that somebody modified it?
     
  15. Offline

    Bobbosells32

    So what about WorldEdit?
     
  16. Offline

    skeletonofchaos

    So basically your making a 4th competing logging plugin... :p
     
  17. Offline

    tyrantelf

    No, they are making one plugin that REPLACES all the other ones. All but this plugin will go inactive, or be deleted.
     
  18. Offline

    sayton12

    How far along are you guys in development? Are we likely to see some early builds soon or is it still being coded?
     
  19. Offline

    Celtic Minstrel

    It's not sufficient to merely log it; it needs to log it in a way that Guardian will be able to detect.
    I think they said it could be at least a month, and certainly not before there's a recommended build for Minecraft 1.8.
    No, this is the developers of the existing three logging plugins working together to create a new one to replace all the old three. It's not a competition; it's a collaboration.
     
  20. Offline

    Jaminb2030

    Hope a early release will be out soon with 1.8 out that gate.
     
  21. Offline

    sorklin

    Out what gate? Still no RB for 1.8.1. They won't even start coding until then, and I imagine it'll take a good while after they start. Its a big project.
     
  22. Offline

    Nipper

    Like to request something from BB. The flat file on each person. BB has the options to keep flat files on each person. This way it makes it easier for me to pull up the logs on just that one person when they dispute a ban.
     
  23. Offline

    DiddiZ

    The problem is that this causes cpu and i/o load which isn't needed in most cases.
    What about the /lb writelogfile player <name> command from LB?
     
  24. Offline

    Nipper

    That would be a better idea. But what about if they are rolledback. Those logs are deleted correct? or are the kept and marked as being rolled back?

    Or better yet if someone is rolled back have a option to auto write that file and if there is already the file have it append and write at the end of it. This way its logged.
     
  25. Offline

    Jobsti

    If you really want to add flatfile (separate files each user) support, do only some simple logging, just the standard blocks,
    no flow, decay, chat, login etc...
    And an option so set the max size per file. reaches a file ~1MB/1k lines, delete/overwrite the oldest lines,
    If a rollback was done, delete the lines.
     
  26. Offline

    DiddiZ

    Sounds really complex. As said, I don't like it. I'm more a freind of logfile on demand :D
     
  27. Offline

    Jobsti

    I'm only need mySQL too ;)
     
  28. Offline

    sorklin

    I've seen some requests for 'archived' info -- i.e., stuff that is older than a certain period. I'd like to add my voice in as well -- not so much for the rollback capability, but for the web stats info. If all old info is deleted after a certain point, web and player stats become somewhat meaningless. Perhaps a subset of information (e.g. block place and destroy totals) could be kept, and the specific log info (needed to rollback) could be pruned.
     
  29. Offline

    Nipper

    This is true. But as I posted good idea to make it make a flat log if the person is rolled back in anyways. This way there is always logs on there actions that were undone. Not for sure if it removes logs from the mysql db making it hard to prove that they griefed when they go to contest.
     
  30. Offline

    Celtic Minstrel

    I don't see why a rollback would need to remove log entries...?
     
Thread Status:
Not open for further replies.

Share This Page