aaron thul electronic medical office logistics emol http
play

AaronThul ElectronicMedicalOfficeLogistics(EMOL) - PowerPoint PPT Presentation

AaronThul ElectronicMedicalOfficeLogistics(EMOL) http://chasingnuts.com/oscon1.08.pdf WhoamI? Computer&DatabaseGeek,justlikeyou FormerlyaSysAdminatAutoweb


  1. Aaron
Thul
 Electronic
Medical
Office
Logistics
(EMOL)
 http://chasingnuts.com/oscon1.08.pdf


  2. Who
am
I?
  Computer
&
Database
Geek,
just
like
you
  Formerly
a
SysAdmin
at
Autoweb
 Communications
  PostgreSQL
Build
Your
Car
  Presently
a
IT
manager
at
a
EMOL
  PostgreSQL
Evangelist
  Penguicon
Organizer


  3. With
PostgreSQL
and
other
Open
 Source
software
EMOL
is
  Allowing
Data
collection
from
EMRs
and
 other
sources
  Aiding
in
Adherence
to
national
standards
  Providing
Physician
and
Practice
level
 benchmarking
  Data
Brokering
  Enabling
Automation
of
National
initiatives,
 such
as
the
CMS
PQRI


  4. EMOL
PostgreSQL
Data
  Patient
Records
  Billing
Records
  Lab
Results
  Clinical
Records
  Inventory
Management
  Patient
Reported
Data


  5. Metadata
  Physicians
Dictations
  Scanned
Documents
  Images
  XRAYs
  MIRIs
  CAT
Scans


  6. Metadata
Storage
  ReiserFS
with
tail
packing
  Each
practice/doctor
has
a
folder
  SUN
OpenSolaris
&
ZFS???
  Linux
and
XFS???
  Netapp
Waffle???


  7. EMOL
Software
Building
 Blocks
  Ubuntu
Linux
LTS
(8.04)
  PostgreSQL
(8.3)
  Perl
(5.8.x)
  Windows
Unified
Data
Storage
Server
2003
 (R2)
  Yes
Windows


  8. EMOL
Hardware
Building
 Blocks
  HP
ProCurve
Switches
  Support
considerably
cheaper
than
Smartnet
  SonicWall
Firewalls
  Support
considerably
cheaper
than
Smartnet
  Large
number
of
SCSI
and
SATA
Hard
Drives
  iSCSI
Servers
and
DAS
(Direct
Attached
 Storage)
Systems


  9. Why
PostgreSQL?
  Capable
  Required
Features

  Database
Team
Experience
  Security
  Community

  Documentation
Project
  Mailing
Lists
  IRC
  Events
Like
This!


  10. Why
Perl?
  Practical
Extraction
and
Report
Language
  Development
team
experienced
with
Perl
  Unix‐centric,
and
available
for
Windows

  Text
parsing
and
normalizing
  I
know
it
Perl
is
not
sexy
like
  INSERT ‘new_popular_language’ INTO languages;  Rapid
prototyping
  Weakly
typed
  Interpreted,
though
very
fast
  Supports
objects


  11. Who
is
Where?
 OS
and
PostgreSQL
binaries
on
local
disks
  RAID
1
Mirror
  15k
spindle
drives
  EXT3
  WAL
Buffers
on
local
disks
  RAID
1
Mirror
  15k
spindle
speed

  EXT2
  INDEXs
  DAS
(Direct
Attached
Storage)
Units
  RAID
6
  10
k
spindle
speed
SCSI
  EXT3
  TABLES
  Multiple
iSCSI
Servers
on
SANS
  4
x
1
Gigabit
Ethernet
Interfaces
Bonded
  8
x
1
Terabyte
SATA
drives
per
SAN
Node
RAID
6
  EXT3
 

  12. Data
Daily
  Loading
10
GB
data
daily
into
PostgreSQL
  Loading

10
GB
metadata
daily



  13. Data
Size
 SELECT relname, (relpages*8)/1024 as MB FROM pg_class ORDER BY relpages DESC;

  14. Data
Size
 SELECT relname, (relpages*8)/1024 as MB FROM pg_class ORDER BY relpages DESC; This
does
not
account
for
pg_toast

 This
does
provide
more
precision


  15. Data
Size
Really
 SELECT nspname || '.' || relname AS "relation", pg_size_pretty(pg_relation_size(nspname || '.' || relname)) AS "size" FROM pg_class C LEFT JOIN pg_namespace N ON (N.oid = C.relnamespace) WHERE nspname NOT IN ('pg_catalog', 'information_schema') AND nspname !~ '^pg_toast' AND pg_relation_size(nspname || '.' || relname)>0 ORDER BY pg_relation_size(nspname || '.' || relname) DESC

  16. How
much
data
are
we
talking
  Largest
Table:
1,844.73

GB
  Second
Largest
Table:
1,289.36
GB
  Largest
Index:
411.91
GB
  Second
Largest
Index:
405.08
GB
  Total
DB
size
on
disk:
16,800.39
GB


  17. Better
make
sure
we
need
that
 INDEX
 select indexrelid::regclass as index, relid::regclass as table from pg_stat_user_indexes JOIN pg_index USING (indexrelid) where idx_scan = 0 and indisunique is false; More
details
at:
 http://people.planetpostgresql.org/xzilla/index.php?/archives/351‐Index‐pruning‐ techniques.html


  18. Run
it
twice
and
make
it
faster
  Maintain
a
1/500
set
of
random
sample
data
  ALL
queries
hit
that
data
base
first
  Only
once
query
result
is
successful
is
the
 query
moved
onto
production
database
 server


  19. How
do
I
sleep
at
night
  First
Name
  Last
Names
  Social
Security
Numbers

  Birth
Dates
  Needed
to
track
people
over
time
and
 geography


  20. How
do
I
sleep
at
night
 "By
default,
PostgreSQL
is
probably
the
most
 security‐aware
database
available
..."
 




Database
Hacker's
Handbook


  21. Protecting
the
Warehouse
  Simple
processes
that
are
followed
  Intrusion
Prevention
&
Firewalls
  Security
Monitoring
&
Management
‐
MSSP
  Encrypted
Communication
  Identity
Management
‐
Centralized
 management
of
users
and
groups
–
mitigates
 vulnerabilities
that
occur
due
to
 inconsistencies



  22. Protecting
the
Warehouse
  Role‐based
security
  Functions
everyplace
we
can
  Identity
data
symmetrically
encrypted
  Data
is
anonamized

in
all
but
a
few
tables
  Role‐based
security
  All
data
is
anonamized

before
it
is
sent
out


  23. Lessons
Learned
  Server
Ethernet
Cards
are
not
all
made
the
 same
  With
100+
drives
be
ready
to
RMA
some
disks
  You
can
never
have
to
many
DIMM
slots
  You
do
get
what
you
pay
for
with
RAID
 controllers
  You
can’t
have
to
big
a
cache
on
your
RAID
 controller


  24. More
Lessons
Learned
  pg_resetxlog is
not
THAT
scary
  You
can
never
have
to
many
PCI‐X
Slots
  Auto‐vacuum
is
not
always
your
friend


  25. More
Lessons
Learned
  Worry
when
a
developer
says
“I
have
an
idea”
  Some
mistakes
are
just
to
much
fun
to
make
 only
once
  I
am
used
to
hearing
“It
seems
like
you
are
 doing
something
fundamentally
wrong”
  Never
ask
for
directions
from
a
two‐headed
 tourist!

 ‐Big
Bird


  26. Looking
Forward
  I
don’t
think
I
need
to
worry
about
 PostgreSQL
scaling
  Size
matters:
Yahoo
claims
2‐petabyte
database
is
 world's
biggest,
busiest
  http://www.computerworld.com/action/ article.do? command=viewArticleBasic&taxonomyId=18&arti cleId=9087918&intsrc=hm_topic


  27. Looking
Forward
  GridSQL
from
EnterpriseDB
  Built
using
multiple
standard
PostgreSQL
servers
  Open
Source
Project


  28. Questions
  Web:
http://www.chasingnuts.com
  Email:
aaron@chasingnuts.com

  IRC:
AaronThul
on
irc.freenode.org

  Jabber:
apthul@gmail.com
  Twitter:
@AaronThul
  AIM:
AaronThul


Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend