Commit Graph

554 Commits

Author SHA1 Message Date
Barış Soner Uşaklı
a22a3a9861 fix: log error to prevent headers already sent
retry on uniq index fail
2019-01-24 12:42:36 -05:00
Peter Jaszkowiak
e1ca2d81f9 refactor: use loash when possible (#7230) 2019-01-12 14:28:53 -05:00
Barış Soner Uşaklı
3917022a48 fix: #7139 2018-12-19 11:09:19 -05:00
Barış Soner Uşaklı
fef7e13c9e feat: small fixes 2018-12-17 18:56:09 -05:00
Barış Soner Uşaklı
d2c2d56f59 feat: change sortedSetsScore 2018-12-15 00:57:51 -05:00
Barış Soner Uşaklı
29b63ae7fb fix: #6979 2018-12-14 17:31:06 -05:00
Barış Soner Uşaklı
00afc5b3ab fix: remove log 2018-12-14 16:36:07 -05:00
Barış Soner Uşaklı
eb7ae54f81 Category watch state (#7109)
* feat: wip, category watch change

* feat: pass data to client

* feat: allow changing state

* fix: account page categories

* fix: show in unread if topic is followed or category is watched

* feat: add default watch state to acp

* feat: save user category watch state

* feat: update unread recent pages

* fix: remove dupe code

* fix: flip conditions

* fix: handle empty arrays

* fix: ignore/watch on others profile

* feat: upgrade script for category states

if there are any users ignoring categories set their state in new zset and delete cid:<cid>:ignorers

* fix: upgrade

* fix: tests

* fix: redis count

* fix: more tests
2018-12-14 16:24:17 -05:00
Barış Soner Uşaklı
d117df77f7 fix: #7102 2018-12-12 14:26:11 -05:00
Barış Soner Uşaklı
85a07e999b fix: #7102 2018-12-12 13:46:13 -05:00
Barış Soner Uşaklı
263c918088 feat: remove uid:<uid>:ignored:cids (#7099)
use cid:<cid>:ignorers instead
2018-12-12 11:15:34 -05:00
Barış Soner Uşaklı
26ccd8f626 fix: db info page
if there is no connection to db, connect first
2018-12-10 15:30:10 -05:00
Baris Usakli
e65d40c937 dont return undefined from sortedSetsCard if keys is empty or falsy 2018-12-07 16:50:35 -05:00
Baris Usakli
420227faae parseFloat scores 2018-12-07 16:01:08 -05:00
Barış Soner Uşaklı
6330d51446 less derpy output 2018-11-28 19:54:52 -05:00
Barış Soner Uşaklı
ed1bf9a16f add more info to advanced db page 2018-11-28 19:24:54 -05:00
Barış Soner Uşaklı
53ad2bbd6e Categories optimize (#6999)
* WIP

* fix category page

* fix counts, and copyPrivileges

* fix lint

* more fixes,

* redis fix

* fix test

* fix  category test

* remove getParentsAndChildren
2018-11-25 19:08:38 -05:00
Barış Soner Uşaklı
0524fd9caa closes #6996 (#6997)
* closes #6996

* fix lint
2018-11-24 23:02:22 -05:00
Baris Usakli
7b9a2caec3 closes #6994 2018-11-23 14:39:59 -05:00
Barış Soner Uşaklı
1c981e638b rename query name 2018-11-21 21:10:56 -05:00
Barış Soner Uşaklı
ca1e3a758b #6986 2018-11-21 20:40:40 -05:00
Barış Soner Uşaklı
48690a01b9 dont need to call multi if keys.length is 0 2018-11-21 17:24:38 -05:00
Barış Soner Uşaklı
07f83c5078 fix redis tests 2018-11-11 16:23:36 -05:00
Barış Soner Uşaklı
f8e219c323 handle empty set, add test 2018-11-11 15:39:17 -05:00
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
2018-11-07 15:04:56 -05:00
Barış Soner Uşaklı
0de60cfdca fix mongodb tests 2018-10-30 18:58:02 -04:00
Barış Soner Uşaklı
8ca36ad122 closes #6890 2018-10-30 18:29:52 -04:00
Barış Soner Uşaklı
7aa937a657 remove dupe code in mongodb sorted 2018-10-28 16:20:38 -04:00
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
2018-10-27 06:26:50 -04:00
Baris Usakli
51792da430 dont crash if there is nothing to write 2018-10-26 15:15:20 -04:00
Barış Soner Uşaklı
fb6067a7ca only parse if field is requested 2018-10-25 19:58:01 -04:00
Baris Usakli
138154a71c move modules 2018-10-23 15:03:32 -04:00
Barış Soner Uşaklı
b2b33ffa57 topics data refactor 2018-10-20 16:10:02 -04:00
Barış Soner Uşaklı
26d4e0852f use includes instead of indexOf
use _.uniq instead of filter&indexOf
2018-10-20 14:40:48 -04:00
Barış Soner Uşaklı
986511e718 try with higher timeout 2018-10-16 21:43:40 -04:00
Barış Soner Uşaklı
1d15dc089b revert isCluster 2018-10-16 20:34:49 -04:00
Barış Soner Uşaklı
0aebb9caf8 closes #6844 2018-10-16 20:27:14 -04:00
Barış Soner Uşaklı
154d7076d9 dont pass options 2018-10-16 19:57:24 -04:00
Barış Soner Uşaklı
9dbe68a9cb testing again 2018-10-16 19:46:55 -04:00
Barış Soner Uşaklı
aa567a5f2d print out connString and opts 2018-10-16 19:12:33 -04:00
Barış Soner Uşaklı
2d8d234c57 test mongodb again 2018-10-16 18:44:03 -04:00
Barış Soner Uşaklı
e615391b22 convert values to string before removing 2018-10-11 16:23:05 -04:00
Barış Soner Uşaklı
18d0deeccb update deprecated methods (#6794) 2018-09-26 15:02:57 -04:00
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.
2018-09-25 12:12:18 -04:00
Barış Soner Uşaklı
9724ef083e remove v from query 2018-09-24 16:59:12 -04:00
Barış Soner Uşaklı
786311fa64 use value 2018-09-24 16:58:35 -04:00
Barış Soner Uşaklı
5a69f979a8 update processSortedSet to use withScores 2018-09-24 16:57:19 -04:00
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.
2018-09-02 00:32:55 -04:00
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
2018-08-31 11:04:42 -04:00
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.
2018-08-08 15:13:48 -04:00