Commit Graph

292 Commits

Author SHA1 Message Date
Brion Vibber
0e852def6a XMPP queued output & initial retooling of DB queue manager to support non-Notice objects.
Queue handlers for XMPP individual & firehose output now send their XML stanzas
to another output queue instead of connecting directly to the chat server. This
lets us have as many general processing threads as we need, while all actual
XMPP input and output go through a single daemon with a single connection open.

This avoids problems with multiple connected resources:
* multiple windows shown in some chat clients (psi, gajim, kopete)
* extra load on server
* incoming message delivery forwarding issues

Database changes:
* queue_item drops 'notice_id' in favor of a 'frame' blob.
  This is based on Craig Andrews' work branch to generalize queues to take any
  object, but conservatively leaving out the serialization for now.
  Table updater (preserves any existing queued items) in db/rc3to09.sql

Code changes to watch out for:
* Queue handlers should now define a handle() method instead of handle_notice()
* QueueDaemon and XmppDaemon now share common i/o (IoMaster) and respawning
  thread management (RespawningDaemon) infrastructure.
* The polling XmppConfirmManager has been dropped, as the message is queued
  directly when saving IM settings.
* Enable $config['queue']['debug_memory'] to output current memory usage at
  each run through the event loop to watch for memory leaks

To do:
* Adapt XMPP i/o to component connection mode for multi-site support.
* XMPP input can also be broken out to a queue, which would allow the actual
  notice save etc to be handled by general queue threads.
* Make sure there are no problems with simply pushing serialized Notice objects
  to queues.
* Find a way to improve interactive performance of the database-backed queue
  handler; polling is pretty painful to XMPP.
* Possibly redo the way QueueHandlers are injected into a QueueManager. The
  grouping used to split out the XMPP output queue is a bit awkward.
2010-01-21 22:40:35 -08:00
Evan Prodromou
8d6b4cadf3 script to upgrade from RC2 to RC3 2010-01-13 17:28:31 -08:00
Evan Prodromou
ecb3abf84c Merge branch '0.9.x' into inblob 2010-01-11 16:28:27 -08:00
Brenda Wallace
42896ac1fb fixed stray comma 2010-01-10 14:04:18 +13:00
Brenda Wallace
dc89adb36d Revert "fixed stay comma"
This reverts commit 2b273be400.
2010-01-10 14:04:01 +13:00
Brenda Wallace
2b273be400 fixed stay comma 2010-01-10 14:03:42 +13:00
Evan Prodromou
922db17259 add an inbox blob table 2010-01-09 10:01:20 -08:00
Evan Prodromou
b141f7aea5 Add user_location_prefs to upgrade script 2009-12-28 13:54:09 -08:00
Evan Prodromou
8d4e617d4e add table user_location_prefs 2009-12-28 13:53:28 -08:00
Brenda Wallace
b9b8e08c10 fix typo / parse error in sql comment syntax 2009-12-13 11:54:05 +13:00
Evan Prodromou
3d06431787 add repeat_of column to notice table 2009-12-11 10:20:32 -05:00
Evan Prodromou
344c99df02 remove forward table from PostgreSQL scripts 2009-12-10 14:40:00 -05:00
Evan Prodromou
dd098fee77 remove forward table from db scripts 2009-12-10 14:34:47 -05:00
Brenda Wallace
3e9c2d779a add missing table "forward" 2009-12-09 13:12:29 +13:00
Brenda Wallace
b139be6caf added missing table: location_namespace 2009-12-09 13:09:38 +13:00
Evan Prodromou
5344b3fb4b add forward table to updates 2009-12-08 17:32:09 -05:00
Evan Prodromou
add126bc6c add forward table 2009-12-08 14:56:11 -05:00
Craig Andrews
75cac0fd6b Added 'login' command that gives you a link that can be used to login to the website 2009-12-05 21:05:33 -05:00
Brion Vibber
8b63717bf9 ticket 1100: add Drupal source link 2009-12-01 12:55:55 -08:00
Zach Copley
9dc888894b Merge branch 'master' into 0.9.x
* master: (67 commits)
  Ticket 2038: fix bad bug tracker link
  Fix regression in group posting: bug introduced in commit 1319002e15. Need to use actual profile object rather than an id on a variable that doesn't exist when checking blocks :D
  Log database errors when saving notice_inbox entries
  Drop the username from the log id for now; seems to trigger an error loop in some circumstances
  request id on logs... pid + random id per web request + username + method + url
  Add OpenID ini info back into statusnet.ini as a stopgap until we can
  Some changes to the OpenID DataObjects to make them emit the exact same
  OpenID plugin should set 'user_openid.display' as unique key
  Remove relationship: user_openid.user_id -> user.id. I don't think this
  Have OpenID plugin DataObjects emit their own .ini info
  Revert "Allow plugin DB_DataObject classes to not have to use the .ini file by overriding keys(), table(), and sequenceKey() for them"
  Catch and report exceptions from notice_to_omb_notice() instead of letting the OMB queue handler die.
  Fix regression in remote subscription; added hasRole() shadow method on Remote_profile.
  Fix fatal error on OMB subscription for first-timers
  Remove annoying log msg
  Drop error message on setlocale() failure; this is harmless, since we actually have a working locale set up.
  Catch uncaught exception
  Fixed bug where reply-sync bit wasn't getting saved
  Forgot to render the nav menu when on FB Connect login tab
  Facebook plugin no longer takes over Login and Connect settings nav menus
  ...

Conflicts:
	db/08to09_pg.sql
	db/statusnet_pg.sql
	locale/pt_BR/LC_MESSAGES/statusnet.mo
	plugins/Mapstraction/MapstractionPlugin.php
2009-11-30 10:28:58 -08:00
Brenda Wallace
8d502c4b8e added missing columns from mysql upgrade script into pgsql script 2009-11-26 20:35:41 +13:00
Brenda Wallace
dd742a560d Transactional DDL rocks my world, but shouldn't be left in that file. 2009-11-26 20:21:47 +13:00
Brenda Wallace
93ecccb8fb added missing columns in notice table 2009-11-26 20:17:32 +13:00
Evan Prodromou
224d82793c Revert "Added 'login' command that gives you a link that can be used to login to the website"
This reverts commit b9d40f723b.

Conflicts:

	actions/login.php
	classes/statusnet.ini
	db/08to09.sql
	db/08to09_pg.sql
	db/statusnet_pg.sql
	lib/command.php
	lib/commandinterpreter.php
2009-11-20 02:50:43 -08:00
Brion Vibber
0b750c5271 Followup to commit 4e00ce01a9841ac055c058a4f0e221cc56eca06e: rename user_role to profile_role in update & postgres schemas 2009-11-19 21:07:11 -08:00
Brion Vibber
584b17a818 Followup to commit 4e00ce01a9841ac055c058a4f0e221cc56eca06e: rename user_role to profile_role in update & postgres schemas 2009-11-19 20:55:38 -08:00
Zach Copley
9baddf4e44 Add MuSTArD to notice sources 2009-11-18 12:43:52 -08:00
Ciaran Gultnieks
d1d104bde2 Another syntax error in the postgres db create script 2009-11-18 11:15:05 +00:00
Ciaran Gultnieks
904baf4d27 Missing quotes in postgres db create script 2009-11-18 08:25:58 +00:00
Evan Prodromou
bcb49b0000 bring the 08-to-09 SQL update script up-to-date 2009-11-17 19:13:09 -05:00
Evan Prodromou
4e00ce01a9 Rename user_role to profile_role
Renamed the user_role table to profile_role. Remote users can have a
role on the site; that 'role' may be negative (silenced or sandboxed).
2009-11-16 16:02:47 +01:00
brenda
ab135faa75 postgresl update script now working in postgres 2009-11-14 16:34:36 +13:00
Brion Vibber
81fa515881 Fix index on notice for efficient querying of notice(s) by order for a profile.
Should resolve performance problem with Profile::getCurrentNotice()
2009-11-12 11:08:43 -08:00
Brion Vibber
737fe76347 Performance fix for subscription/subscriber lists based on feedback from ops.
Extended subscription table indexes for subscriber and subscribed to include the created field, which is used to sort for display. This lets us skip a filesort and do the join much more efficiently.
Alter table from 08to09.sql needs to be run manually (though no ill effects if you forget other than not getting the perf improvement).
2009-11-10 08:47:54 -08:00
Brion Vibber
9d0687b055 Adjusting indexes to make favorites query more efficient, based on feedback from ops.
fave_user_id_idx index changed from (user_id) to (user_id,modified), so the timestamp ordering can be done straight from the index while we're looking up the user's notices.
Added to 08to09.sql and 08to09_pg.sql; may need to be run manually by folks doing development.
(No harm if you don't update it, the favorites tab/rss feed will just stay inefficent.)
2009-11-10 08:23:24 -08:00
Craig Andrews
b9d40f723b Added 'login' command that gives you a link that can be used to login to the website 2009-11-02 18:40:49 -05:00
Evan Prodromou
61419038e5 Merge branch '0.8.x' into 0.9.x
Conflicts:
	README
2009-11-02 18:11:45 -05:00
Evan Prodromou
659da177ea Add SocialOomph 2009-10-31 15:49:21 -04:00
Evan Prodromou
603f95d17d add and update choqok 2009-10-31 15:40:26 -04:00
Evan Prodromou
3b3d861b93 Revert "lat,lon -> lat,long"
This reverts commit 61d948cffee0aff4fd7853421ec0849458ea34c9.
2009-10-21 22:43:40 -04:00
Evan Prodromou
61826169de lat,lon -> lat,long 2009-10-21 22:43:40 -04:00
Evan Prodromou
671732ade7 add a couple of location namespaces 2009-10-21 22:43:40 -04:00
Evan Prodromou
3d772d24e7 add location-related tables and columns 2009-10-21 22:43:40 -04:00
Evan Prodromou
f7a3b30f5b Revert "Revert "fixed up some invalid comment syntax - this is ANSI SQL""
This reverts commit c0eca0e59b.
2009-10-19 18:15:40 -04:00
Evan Prodromou
eb273da532 Revert "Revert "upgrade script for postgres""
This reverts commit d72748eb8e.

Conflicts:

	db/08to09_pg.sql
2009-10-19 18:13:41 -04:00
Evan Prodromou
d72748eb8e Revert "upgrade script for postgres"
This reverts commit d46f2ee350.
2009-10-19 18:07:36 -04:00
Evan Prodromou
689b3ae73d Revert "added missing parts to postgres update, and the config+user_role tables to both upgrade scripts"
This reverts commit e9edb803bc.
2009-10-19 18:07:19 -04:00
Evan Prodromou
c0eca0e59b Revert "fixed up some invalid comment syntax - this is ANSI SQL"
This reverts commit 6704ddddf2.
2009-10-19 18:07:03 -04:00
Evan Prodromou
fe1ae3a47e Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing 2009-10-19 17:00:36 -04:00
Evan Prodromou
f65baaaa4f change DB so OpenIDPlugin manages OpenID tables 2009-10-01 15:43:57 -04:00