Persistent computer-related notes that are still under development.

Most important/active pages

Index of pages

Tiny notes

Linux

Lock user account

Disable: usermod –expiredate 1 <login>

Re-enable: usermod –expiredate 2099-01-01 <login>

Tools

See the tools page for Git, Vim etc. notes

Java Development

What is “enterprise”?

Common enterprise problems: database access, remote procedure invocation, transactions, authentication, directory services, auditing, integration of multiple services, authorization (roles, groups of roles, …), LDAP, etc.

Source code & JavaDoc search sites

Clojure & Ecosystem

Datomic

  • Not for write-heavy apps, i.e. apps with >= 1MB/s sustained write throughput (even 1TB/year is perhaps not a best fit) - Essentially serializable writes (shardable via multiple transactors)

  • Note: Performance of the back-end storage doesn’t matter so much - hot data cached on peers, most of the rest can be hold by a memcached cluster in front of the storage

  • A top for Datomic with a single transactor is perhaps around billion rows??

  • Great at answering question about past, what-if, audit trail

  • Good performance at joins for all in local (peer) memory, multiple pears can hold in memory quite different “hot data” for diff. use cases x monholitic DB

  • Classical RDBMs and languages based on constraints from 70s that no more true (expensive memory and storage, dedicated machines) - Datomic explores what we would design if we broke those constraints

  • Flexible: contrary to doc stores, here “documents” are assembled at query time ⇒ no need to decide ahead of time; schema can evolve much more freely

  • Programmable: everything is data (commands, queries, tx info) ⇒ easy to generate, combine, use

  • Consistency etc. - can use server-side functions to do multi-updates etc.


Copyright © 2024 Jakub Holý
Powered by Cryogen
Theme by KingMob