532 Commits (b83e50f286d8fcb6a57f4960d0a7c9f8c2e66f5e)

Author SHA1 Message Date
Barış Soner Uşaklı 07f83c5078 fix redis tests 7 years ago
Barış Soner Uşaklı f8e219c323 handle empty set, add test 7 years ago
Barış Soner Uşaklı 75816deca7
add cache to redis (#6917)
* add cache to redis

move out cache module from mongo

* fix redis tests

* add callback noop

* fix typo

* del cache on field delete

* make redis/mongo caches separate
7 years ago
Barış Soner Uşaklı 0de60cfdca fix mongodb tests 7 years ago
Barış Soner Uşaklı 8ca36ad122 closes #6890 7 years ago
Barış Soner Uşaklı 7aa937a657 remove dupe code in mongodb sorted 7 years ago
Barış Soner Uşaklı c27be9db5a
Recent refactor (#6879)
* wip

* fix inf scroll

* remove duplicated code

* remove dupe code in /unread

* use topicList

* update tag page to use topicList

* fix tests

* combine ifs

* remove more dupe code

* disable timeout
7 years ago
Baris Usakli 51792da430 dont crash if there is nothing to write 7 years ago
Barış Soner Uşaklı fb6067a7ca only parse if field is requested 7 years ago
Baris Usakli 138154a71c move modules 7 years ago
Barış Soner Uşaklı b2b33ffa57 topics data refactor 7 years ago
Barış Soner Uşaklı 26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
7 years ago
Barış Soner Uşaklı 986511e718 try with higher timeout 7 years ago
Barış Soner Uşaklı 1d15dc089b revert isCluster 7 years ago
Barış Soner Uşaklı 0aebb9caf8 closes #6844 7 years ago
Barış Soner Uşaklı 154d7076d9 dont pass options 7 years ago
Barış Soner Uşaklı 9dbe68a9cb testing again 7 years ago
Barış Soner Uşaklı aa567a5f2d print out connString and opts 7 years ago
Barış Soner Uşaklı 2d8d234c57 test mongodb again 7 years ago
Barış Soner Uşaklı e615391b22 convert values to string before removing 7 years ago
Barış Soner Uşaklı 18d0deeccb
update deprecated methods (#6794) 7 years ago
Ben Lubar 11b655163e Only run the DDL for session storage on the primary instance. (#6788)
This fixes a restart loop caused by deadlocks in large clusters.
7 years ago
Barış Soner Uşaklı 9724ef083e
remove v from query 7 years ago
Barış Soner Uşaklı 786311fa64
use value 7 years ago
Barış Soner Uşaklı 5a69f979a8
update processSortedSet to use withScores 7 years ago
Ben Lubar 97a3079bc0 Optimize PostgreSQL session store.
- Sets session ID to be a constant-sized character field inline in the
  table instead of a variable-length character field compressed outside
  of the row.
- Changes the session data from "json" to "jsonb" which is faster and
  smaller on disk with the drawback of not maintaining key order and
  whitespace (which we don't care about at all)
- Adds a clustered index on the session expiration timestamp, which will
  make periodic session purging much faster.

(For an example, WTDWTF currently has 482355 sessions in the table, and
 because there is no index on the expiration timestamp, PostgreSQL must
 check all the rows in the table every time.)

This upgrade script can run concurrently with a live NodeBB instance,
but any action that touches sessions will wait until the upgrade script
is done.

Does not touch the database if the database driver is not set to
PostgreSQL or if there is a Redis database configured.
7 years ago
Barış Soner Uşaklı 0519f84734
Promisify modules (#6723)
* WIP promisify

* promisify psql

* ability to skip some keys

* dont promisify client object

* remove async

* clone entire module so it has all properties

* add shim for node 6

* ignore sessionStore as well

* ignore pool on psql
7 years ago
Ben Lubar 33228bb7fe PostgreSQL database driver (#5861)
* [test/database/list] Fix test list 4 being used in two different tests

* [database/postgres] PostgreSQL database driver

* [database/postgres] Make transactions work based on continuation scope.

* [database/postgres] Implement nested transactions

* eslint --fix

* Add database changes from earlier this week to the PostgreSQL driver.

* Fix typo

* Fix postgres.incrObjectFieldBy returning undefined instead of null when given NaN

* [database/postgres] Fix sortedSetsCard returning an array of strings.

* Update socket.io postgres adapter

* Fix PostgreSQL erroring when multiple updates are made to the same sorted set entry in a single operation.

Add a test case to catch this error.

* Fix lint errors.

* Only prune sessions on one instance in a cluster to avoid deadlocks.

They're caught and handled by the database server, but they spam the logs.

* Fix arguments.slice.
7 years ago
Baris Usakli 16a7728ab8 fix redis warnings 7 years ago
Barış Soner Uşaklı fe80186ddf add withscores 7 years ago
Barış Soner Uşaklı 8263f81d0c fix pubsub when only mongodb is used 7 years ago
Barış Soner Uşaklı 3b5d6951bb closes #6499 7 years ago
Barış Soner Uşaklı 77d47b31fb cleanly shutdown
wait for webserver to stop accepting connections
destroy current connections
wait for db connection to close
7 years ago
Baris Usakli 3c4b4f5263 don't call calback twice #6375 7 years ago
Barış Soner Uşaklı be5c237388 fix decr/incrObjectField if key in array doesn't exist create it 7 years ago
Barış Soner Uşaklı 6a9a73c86c changes to leaveAllGroups
Groups.destroy can take an array of groupnames
Groups.leave can take an array of groupnames
db.incrObjectField/decrObjectField can take an array of keys
db.sortedSetRemove can take an array of keys and values
db.setRemove can take an array of keys
7 years ago
Baris Usakli 38acedf5bb lint 7 years ago
Baris Usakli 959a742c63 add llen to dbal 7 years ago
Barış Soner Uşaklı bce640e514 closes #6340 7 years ago
Barış Soner Uşaklı 7a2d6fe22d Merge remote-tracking branch 'refs/remotes/origin/master' into develop 7 years ago
Barış Soner Uşaklı b084a596fa closes #6301 7 years ago
Barış Soner Uşaklı c0b7d4f5b5 fix redis export 8 years ago
Barış Soner Uşaklı 8a6345ded7 possible fix for pubsub 8 years ago
Ben Lubar e85aabbe74 Allow running as a cluster without Redis (#6233)
* [database/*] Allow databases other than Redis to provide pubsub for clustering if Redis is not present

* [pubsub] Delay messages sent before the database is ready until the database is ready.

* [pubsub] Restore old behavior of not using the database in non-clustered NodeBB instances.

See comment: https://github.com/NodeBB/NodeBB/pull/6233#issuecomment-357814968
8 years ago
Julian Lam 457194b333 Merge branch 'master' into develop 8 years ago
Barış Soner Uşaklı e092778ba6 closes #6200 8 years ago
Ben Lubar 5b1ed21634 [database/mongo] Improve speed of sortedSetRank (#6229)
* [database/mongo] Improve speed of sortedSetRank

* [database/mongo] Fix sortedSetRank to filter by _key
8 years ago
Barış Soner Uşaklı 5146f43b33 remove console.log 8 years ago
Barış Soner Uşaklı 87d40e9e78 fix increment to use data 8 years ago
Barış Soner Uşaklı cbaa977233 fix type on mongodb if key has expireAt 8 years ago