anchor.diff:  -define(EXPIRED_FUSE_SESSIONS_VIEW, #view_info{name = "expired_fuse_sessions", design = ?FUSE_SESSIONS_DESIGN_NAME, db_name = ?SYSTEM_DB_NAME}).
   -define(FUSE_SESSIONS_BY_USER_ID_VIEW, #view_info{name = "fuse_sessions_by_user_id", design = ?FUSE_SESSIONS_DESIGN_NAME, db_name = ?SYSTEM_DB_NAME}).
   
  +%% Others
  +-define(RECORD_INSTANCES_DOC_PREFIX, "record_instances_").
  +-define(RECORD_FIELD_BINARY_PREFIX, "__bin__: ").
  +-define(RECORD_FIELD_ATOM_PREFIX, "__atom__: ").
  +-define(RECORD_FIELD_PID_PREFIX, "__pid__: ").
  +-define(RECORD_TUPLE_FIELD_NAME_PREFIX, "tuple_field_").
  +-define(RECORD_META_FIELD_NAME, "record__").
  +
   %% List of all used databases :: [string()]
   -define(DB_LIST, [?SYSTEM_DB_NAME, ?FILES_DB_NAME, ?DESCRIPTORS_DB_NAME, ?USERS_DB_NAME]).
   %% List of all used views :: [#view_info]
   -define(VIEW_LIST, [?FILE_TREE_VIEW, ?WAITING_FILES_TREE_VIEW, ?FILE_SUBDIRS_VIEW, ?FD_BY_FILE_VIEW, ?FD_BY_EXPIRED_BEFORE_VIEW, ?ALL_STORAGE_VIEW,
       ?FILES_BY_UID_AND_FILENAME, ?FILE_META_BY_TIMES, ?FILES_BY_META_DOC,
  -    ?USER_BY_EMAIL_VIEW, ?USER_BY_LOGIN_VIEW, ?USER_BY_DN_VIEW, ?USER_BY_UID_VIEW, ?STORAGE_BY_ID_VIEW,
  +    ?USER_BY_EMAIL_VIEW, ?USER_BY_LOGIN_VIEW, ?USER_BY_DN_VIEW, ?USER_BY_UNVERIFIED_DN_VIEW, ?USER_BY_UID_VIEW, ?STORAGE_BY_ID_VIEW,
       ?SHARE_BY_FILE_VIEW, ?SHARE_BY_USER_VIEW, ?USER_FILES_NUMBER_VIEW, ?USER_FILES_SIZE_VIEW, ?GROUP_FILES_NUMBER_VIEW,
       ?FUSE_CONNECTIONS_VIEW, ?EXPIRED_FUSE_SESSIONS_VIEW, ?FUSE_SESSIONS_BY_USER_ID_VIEW]).
   %% Default database name
   -define(DEFAULT_DB, lists:nth(1, ?DB_LIST)).
  +
  +%% Session cleanup burst size
  +-define(SESSION_CLEANUP_BURST_SIZE,1000).
   
   %% Do not try to read this macro (3 nested list comprehensions). All it does is:
   %% Create an list containing #db_info structures base on ?DB_LIST
   %% Inside every #db_info, list of #design_info is created based on views list (?VIEW_LIST)
   %% Inside every #design_info, list of #view_info is created based on views list (?VIEW_LIST)
   %% Such structural representation of views, makes it easier to initialize views in DBMS
  -%% WARNING: Do not evaluate this macro anywhere but dao_worker:init/cleanup because it's
  +%% WARNING: Do not evaluate this macro anywhere but dao:init/cleanup because it's
   %% potentially slow - O(db_count * view_count^2)
   -define(DATABASE_DESIGN_STRUCTURE, [#db_info{name = DbName,
       designs = [#design_info{name = DesignName,
  
positive.code:     %next_record        -> ?record_info_gen(next_record);
          _ -> {error, unsupported_record}
      end).
  
  %% ====================================================================
  %% DB definitions
  
negative.code: -define(USER_BY_EMAIL_VIEW, #view_info{name = "user_by_email", design = ?USER_BY_EMAIL_DESIGN_NAME, db_name = ?USERS_DB_NAME}).
  -define(USER_BY_LOGIN_VIEW, #view_info{name = "user_by_login", design = ?USER_BY_LOGIN_DESIGN_NAME, db_name = ?USERS_DB_NAME}).
  -define(USER_BY_DN_VIEW, #view_info{name = "user_by_dn", design = ?USER_BY_DN_DESIGN_NAME, db_name = ?USERS_DB_NAME}).
  -define(USER_BY_UNVERIFIED_DN_VIEW, #view_info{name = "user_by_unverified_dn", design = ?USER_BY_UNVERIFIED_DN_DESIGN_NAME, db_name = ?USERS_DB_NAME}).
  -define(USER_BY_UID_VIEW, #view_info{name = "user_by_uid", design = ?USER_BY_UID_DESIGN_NAME, db_name = ?USERS_DB_NAME}).
  
  -define(SHARE_BY_FILE_VIEW, #view_info{name = "share_by_file", design = ?SHARE_BY_FILE_DESIGN_NAME, db_name = ?FILES_DB_NAME}).
  