> > I'm trying to avoid excuses from rolling out drizzle ;) > > > > The pattern is useful enough that I don't really see the reason to remove > > it. I /do/ like the ideas on making it more flexible, as well as looking > > at the queue functionality/etc. Basically, if I have projects I can port > > to drizzle and have them still be fast, it'll be good for the projet for > > me to pipe up when potential issues arise :) > > > > As-is our postgres port for mogilefs is slow, and breaks some of the > > locking mechanics in both the mysql and postgres implementations. Maybe > > someone with more awesome postgres-fu could get it up to date, but the > > INSERT IGNORE loss was one of the big performance drops. > > Curious... are you using INSERT IGNORE to get async-like "hey, take this > darned record but don't make me wait until you're done" functionality? > Cause the new async-ish stuff in libdrizzle should be nice for that too.
It's to help reduce locking requirements between distributed processes. Most cases where we get into a race, the data's collapsed on the database. It also avoids having to use a transaction to trigger job events that *may* be redundant. The best/worst examples of this are our reaper and delete processes. The reapers fire up, pick a random dead device, then fling rows around as fast as possible. The more reapers you run the more likely they are to steap on each other's toes, but we don't have to coordinate them. That's a little braindead, but... The deleters are similar. Pulling rows from one table and injecting into another to do batch work, without knowlege of what each other are doing. There's _one_ place in new code where I use a transaction to manage pulling rows out of the queue and reassigning them for a future pull, but that doesn't affect injection at all. Other places, like deep inside replication, do use locking, but using it sparingly saves us from a lot of complicated distributed locking issues. -Dormando _______________________________________________ Mailing list: https://launchpad.net/~drizzle-discuss Post to : [email protected] Unsubscribe : https://launchpad.net/~drizzle-discuss More help : https://help.launchpad.net/ListHelp

