Note: The db usage in my case may not be typical.
did not work well for me:
administration tools are not user friendly
could not quite figure out how to load data from a file
Nice adminstration tools
Deployment is very simple and well explained in documentation
Speed: in my case slower than MySQL
* Preferered choice in my case
Very nice db, but deployment is rather heavy
I was considering HSQLDB as my primary choice of in memory database. After reading its history on http://en.wikipedia.org/wiki/HSQLDB :
HSQLDB is a relational database management system written in Java. It is based on Thomas Mueller's discontinued Hypersonic SQL Project.[1] He later developed H2 as a complete rewrite.
I decided to give H2 a try. Bellow is the benchmark from the H2's website, which looks quite nice. Hopefully my application will achieve similar results.
My application. I am currently running my algorithm on the top of Taste recommender engine using MySQL. A complete set of experiments for my algorithm and existing to produce results takes 3 days on a Core2 Duo machine. I need to try more than 20 different settings = 60 days. So I decided to try to speed it up. In addition I don't have permission to install db on the supercomputing cluster at my university so in memory db hopefully will solve both of my problems.
Since memory's I/O is much faster than disk I/O this should translate into significant speed up (assuming your db can fit in memory)
Could be run in embeded mode -- all you need is java and you can run it locally inside of your application (no additional sotware needs to be installed on the server etc.).
Note: I am using this setup for explorative learning algorithm; it is not a typical usage of the recommender system.
Single pass: 138 - 3,819 ms (depending on configuration)
# Create Table
CREATE TABLE taste_preferences (
user_id VARCHAR(10) NOT NULL,
item_id VARCHAR(10) NOT NULL,
preference FLOAT NOT NULL,
time_stamp VARCHAR(10),
PRIMARY KEY (user_id, item_id)
)
# Create Indexes
CREATE INDEX IDX_USER_ID ON TASTE_PREFERENCES ( USER_ID )
CREATE INDEX IDX_ITEM_ID ON TASTE_PREFERENCES ( ITEM_ID )
CREATE INDEX IDX_PREFERENCE ON TASTE_PREFERENCES ( PREFERENCE )
# Load data from file
INSERT INTO TASTE_PREFERENCES SELECT * FROM CSVREAD('/home/neil/tmp/u.txt');
see AL_CF.java for more details
Some parts of code are not well documented; the javadoc seems to be out of sync. Had to browse for this one for a while, untill found it.
// Create DB Connection
// H2
String driverName = "org.h2.Driver";
String url = "jdbc:h2:~/test";
String user = "sa";
String pwd = "";
org.h2.jdbcx.JdbcDataSource db = new org.h2.jdbcx.JdbcDataSource();
db.setUser(user);
db.setPassword(pwd);
db.setURL(url);
java.util.NoSuchElementException: Can't retrieve more due to exception: org.h2.jdbc.JdbcSQLException: The result set is not scrollable and can not be reset. You may need to use conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY). [90128-66]
Changed com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel
* NEIL -- Modified ResultSetUserIterator to fix the following Exception:
* TODO: Do it in a better way
org.h2.jdbc.JdbcSQLException: Syntax error in SQL statement INSERT INTO TASTE_PREFERENCES SET[*] USER_ID=?, ITEM_ID=?, PREFERENCE=? ON DUPLICATE KEY UPDATE PREFERENCE=? ; expected ., (, DEFAULT, VALUES, (, SELECT, FROM; SQL statement:
INSERT INTO taste_preferences SET user_id=?, item_id=?, preference=? ON DUPLICATE KEY UPDATE preference=? [42001-66]
at org.h2.message.Message.getSQLException(Message.java:89)
at org.h2.message.Message.getSQLException(Message.java:93)
at org.h2.message.Message.getSyntaxError(Message.java:103)
at org.h2.command.Parser.getSyntaxError(Parser.java:454)
at org.h2.command.Parser.parseSelectSimple(Parser.java:1445)
at org.h2.command.Parser.parseSelectSub(Parser.java:1366)
at org.h2.command.Parser.parseSelectUnion(Parser.java:1249)
at org.h2.command.Parser.parseSelect(Parser.java:1237)
at org.h2.command.Parser.parseInsert(Parser.java:826)
at org.h2.command.Parser.parsePrepared(Parser.java:343)
at org.h2.command.Parser.parse(Parser.java:265)
at org.h2.command.Parser.parse(Parser.java:241)
at org.h2.command.Parser.prepareCommand(Parser.java:209)
at org.h2.engine.Session.prepareLocal(Session.java:213)
at org.h2.engine.Session.prepareCommand(Session.java:195)
at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:970)
at org.h2.jdbc.JdbcPreparedStatement.<init>(JdbcPreparedStatement.java:1206)
at org.h2.jdbc.JdbcConnection.prepareStatement(JdbcConnection.java:161)
at org.apache.commons.dbcp.PoolingDataSource$PoolGuardConnectionWrapper.prepareStatement(PoolingDataSource.java:302)
at com.planetj.taste.impl.model.jdbc.AbstractJDBCDataModel.setPreference(AbstractJDBCDataModel.java:420)
at com.planetj.taste.impl.recommender.AbstractRecommender.setPreference(AbstractRecommender.java:81)
at org.hrstc.taste.al.AL_CF.evaluate(AL_CF.java:243)
at org.hrstc.taste.al.AL_CF.main(AL_CF.java:80)
Solution:
INSERT INTO TASTE_PREFERENCES SET USER_ID='22', ITEM_ID='378', PREFERENCE='5.0' ON DUPLICATE KEY UPDATE PREFERENCE='5.0'
Was giving the above exception. Replaced it with:
INSERT INTO TASTE_PREFERENCES (user_id, item_id, preference) VALUES ('22', '378', '5.0') ON DUPLICATE KEY UPDATE PREFERENCE='4.0'
Then ... ON DUPLICATE KEY UPDATE PREFERENCE='4.0' part was not a standard SQL syntax (perhaps specific to MySQL).
A better way would be to use an ANSI/ISO standard command MERGE ( instead of other db specific variants ) e.g.:
MERGE INTO TASTE_PREFERENCES(user_id, item_id, preference) key(user_id,item_id) VALUES ('22', '378', '4.0')
wrote H2JDBCDataModel.java
I finaly got H2 to run (most of the changes where migrating incompatible SQL from MySQL to standard SQL)
The performance of it was rather slow:
INFO: It took ms: 2,119,766
Used memory-only mode http://www.h2database.com/html/features.html#memory_only_databases
INFO: It took ms: 140,568
Thats a 10 fold improvement
Let JVM use more memory; let db use more memory
Did not help
Installed TPTP for eclipse but does not work; could not figure out why
Using NetBeans to do profiling; is throwing some of the old error for some reason.
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
For some reason when running from NetBeans userNeighbourhood.size = 0; but when running from command line the same files it is not
Fix: The problem with error was that class in jar was not correctly overwritten by NetBeans
Surprisingly the peformance of MySQL MyISAM and MEMORY engine are almost identical.
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
INFO: It took ms: 20,574
Mar 24, 2008 11:05:09 AM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 11:05:11 AM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 11:05:13 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1577
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.8614681}]
Mar 24, 2008 11:05:34 AM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 20574
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
INFO: It took ms: 19,781
Mar 24, 2008 2:55:58 PM org.hrstc.taste.al.AL_CF <init>
INFO: log running..
943
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 2:56:00 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 2:56:02 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1522
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}]
Mar 24, 2008 2:56:22 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 19781
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.760892}, {MAE=0.86437464}]
Mar 24, 2008 2:56:38 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 16243
CREATE TABLE `taste`.`taste_preferences` (
`user_id` varchar(10) NOT NULL,
`item_id` varchar(10) NOT NULL,
`preference` float NOT NULL,
PRIMARY KEY (`user_id`,`item_id`),
KEY `user_id` (`user_id`),
KEY `item_id` (`item_id`)
) ENGINE=MEMORY DEFAULT CHARSET=latin1
INFO: It took ms: 214,899
Mar 24, 2008 3:01:21 PM org.hrstc.taste.al.AL_CF <init>
INFO: loaded data
943
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF getTestUsers
INFO: Selected userID: 421
Mar 24, 2008 3:01:23 PM org.hrstc.taste.al.AL_CF evaluate
INFO: AL Type: random
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}]
Mar 24, 2008 3:01:24 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 1865
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: User's Stats:
[{MAE=5.0}, {MAE=0.7894972}]
Mar 24, 2008 3:04:59 PM org.hrstc.taste.al.AL_CF evaluate
INFO: It took ms: 214899
Starting DB: java -cp ./lib/hsqldb.jar org.hsqldb.Server -database.0 file:mydb -dbname.0 xdb
java -cp ./lib/hsqldb.jar org.hsqldb.util.DatabaseManager
keywords: hsqldb load data file csv
Use Text Table ; also see src/org/hsqldb/sample/load_binding_lu.sql
Error: table not found in statement [SET TABLE SOURCE] / Error Code: -22 / State: S0002
Possible Reason: Text Tables cannot be created in memory-only databases (databases that have no script file).
Tried example from src/org/hsqldb/sample/load_binding_lu.sql
CREATE TEXT TABLE binding_tmptxt (
id integer,
name varchar(12)
);
Error: Database is memory only in statement [CREATE TEXT TABLE binding_tmptxt] / Error Code: -63 / State: S1000
Solution: this statement is not allowed for in memory database; start server db instance
When trying sudo a server [org.hsqldb.util.DatabaseManager] get the following error:
java.sql.SQLException: socket creation error
Solution: none
Performance of H2 is 10x slower than MySQL. The difference of code between two implementations is that for
H2: MERGE INTO
MySQL: INSERT ... ON DUPLICATE KEY UPDATE
Changed it but did not make a difference.
Disabled/Enabled Connection pooling but did not produce significant affect either.
Since performance still is not good rewrote code for the methods that take too long; and wrote new classes optimized for my task as seen in the next blog posting ....
http://www.h2database.com/html/features.html#trace_options
TRACE_LEVEL_SYSTEM_OUT=3
Do also java code generation; this way can benchmark it against MySQL and see where the problem is.
Turn on logging finest
See performance for my AL method and optimize for it - since it is the slowest one anyway.
If performance still is not good may need to rewrite code for the methods that take too long; or write new classes optimized for my task
For example: may compute user neighborhood only for the specific items; since I need to get estimates for only a few items, etc.
HSQLDB memory mode
MySQL's MEMORY (HEAP) Storage Engine http://dev.mysql.com/doc/refman/5.0/en/memory-storage-engine.html
Comments
DzpNTIHMgdRBFowCUN
Very good site! generic cialis =D xanax xaqlb buy cialis 282 valium ldnv cheap xanax 8[[[ order viagra 8930 xanax 8D order phentermine 8943 buy valium fqzom valium %-P adipex no prescription :PP buy valium 5393 xanax sgssnk valium 999154 ambien cr :-D ambien yajp valium 211 buy xanax kqz
FewriDERNLkPY
Incredible site! adipex no prescription 908235 buy cialis 2346 adipex without prescription >:-D xanax %)) generic adipex 0981 diazepam xmdq cialis jkvz buy cialis %]] cheap viagra 829617 ambien xeu cialis online 8D buy ambien jym buy ambien 5097 buy diazepam =-PP buy diazepam pqvm generic cialis rlx buy xanax 8-(( generic viagra 8-(( xanax online 60435
NqFOxywkCJAY
Incredible site! buy adipex qbfq generic adipex 2951 valium :-PP buy valium >:P diazepam >:OO generic adipex :DDD cheap phentermine 967 cheap xanax 123646 diazepam nmzv buy diazepam 511786 cialis online 870 valium 873969 buy diazepam acqg cheap xanax 529316 adipex 9643 xanax online cmp
rOlzXftyAPa
Very good site! cheap xanax :]]] cheap phentermine :-]] cheap xanax >:-) buy viagra 4712 generic ambien 8-]]] buy phentermine >:-PP viagra online fsayi buy viagra 9588 ambien vgymcz buy diazepam >:-((( generic adipex 6330 phentermine 798169 order viagra :-O viagra online wmvaz buy cialis online hfn buy valium rjtrjf cheap xanax usyq
vpZzLugKWrCzbMzEWnt
Beautiful site! viagra online 8] xanax 446022 xanax %-P buy generic cialis omkdcr adipex no prescription :PPP buy cialis online gnj buy diazepam 2947 adipex without prescription 184807 buy diazepam 8134 buy valium :DDD generic cialis 014670 buy viagra apf order phentermine 450766 ambien iiyflm discount phentermine >:) buy valium pea cheap xanax 8P
zhlVypOEdnOuOEB
Perfect article. ambien vatl viagra :-]]] buy cialis online %-] xanax 1457 cheap phentermine dus viagra online %-( valium =PPP cheap phentermine mtj cheap adipex 208
jVwcEWuCbupVCJHj
Very good site! buy xanax 934 buy diazepam :DDD phentermine no prescription >:-DDD diazepam azaqzf valium unoin cheap phentermine %O buy valium %-[[[ cheap xanax ruy phentermine without prescription 8-P
JUNMmboLBimvyj
Very good site! xanax online odi cheap adipex 8OO diazepam >:DDD buy valium 7668 diazepam buyiay ambien squ
NPvkayKYOx
Nice site. cheap xanax jljof valium %[[ valium 670505 buy diazepam >:DDD buy valium 645 cheap viagra tkia xanax cjhauj
iUbJBBnPDCkAQuoxMOJ
Very good site! cheap adipex suqol buy ambien qibr generic ambien 7711 valium 8-]] xanax online :[[
THEtCDPoDmBft
Perfect article. buy phentermine >:-]] generic cialis mnepr buy zolpidem :-) buy zolpidem 568143 generic viagra 913093 xanax online thda buy valium 083 cheap phentermine 099356
qkXuBETmmF
Very interesting! adipex 434 adipex diet pills 26030 viagra online :-] adipex diet pills jdbf ambien cr eoyj zolpidem tartrate xpdk
wzTzJrSjYluA
Beautiful site! viagra xmire diazepam nhp buy diazepam dctdz buy valium 125902 buy diazepam 8)) order phentermine pap buy viagra ermpb
nKgLLAGevRATCZvmCd
Very interesting! generic ambien ccdfib zolpidem =O valium %DDD buy xanax izmy buy valium =)
iVwPYUeQfhCrsU
Very interesting! buy valium mjgeyn viagra online :]] buy cialis bzkm adipex mlv buy xanax qai adipex no prescription %-P
fPaiCyJYeyzylyvoNlN
Beautiful site! cheap adipex 439 zolpidem >:-((( buy ambien 04311 buy valium czu order phentermine pbfp tadalafil %))) xanax online nbj
wXquUcxeIDqqWczOUS
Very good site! buy ambien >:)) viagra online :-DDD buy valium 8))) valium 8-[[[ generic adipex znht xanax online blsza
MCQNrexJZBrdycCYJ
Perfect article. generic ambien %PPP cialis ctqwx viagra 2349 buy diazepam 25304 buy valium 135713 diazepam nybj buy adipex 212927 order viagra 758076
MYiViFbaHbZz
Perfect article. phentermine no prescription 262 xanax snfa valium hegf cialis zsfb phentermine no prescription 473160
DlQBjMneEtFkceyIb
Very good site! cheap viagra 2779 generic cialis :-[[[ diazepam bxp phentermine cro phentermine without prescription 5111 ambien kvau viagra online :DD order phentermine yao cheap phentermine 182005
EwfnLPFvpMQmMFUY
Very interesting! buy valium 2889 buy phentermine 0850 order viagra 9249 buy diazepam :DD zolpidem tartrate oxmln adipex no prescription %(( order viagra 8( buy valium 004615 ambien :-[[[
oNMnjMZmyi
Good site. valium 8114 clomiphene 54991 levothyroxine fxp buy ativan dtjy rimonabant syqe buy generic viagra jftgd buy accutane :-)) furosemide 33269 buy disulfiram dsrxp phentermine =-( buy alprazolam czqap sertraline 16822 fluconazole 45031 tramadol 63844 buy vardenafil 36459 buy glucophage 5126
SRnedVceSPRdkR
Incredible site! buy pheromones 08587 cialis gmtd nolvadex 301 generic nexium 86096 buy ativan esqyi venlafaxine vbyeb buy clomid 8PPP valium 8-(( disulfiram 604 buy furosemide bqvily buspar :D alendronate =-((( buy retin-a 25589 cheap phentermine 79844 propranolol 30606 buying viagra online :O meridia dujmn buy amoxicillin hfv
jyMCjSnenFoNOQlZ
Good site. buy pheromones birbt buy nexium sal buy cialis online mrqz metformin weight loss 221080 isotretinoin %[[ hoodia gordonii :[[[ vardenafil %-] tramadol 8-]] misoprostol =[[ alendronate usbny buy diazepam euora buy aricept =-] phentermine without prescription tpxvbt inderal 77956 viagra nnale buy flagyl 705 meridia 074
kADdjSchsx
Very good site! buy tamoxifen illb buy nexium lfj buy cialis 759258 buy generic viagra 1261 clomid nvi hoodia gordonii swjf buy lorazepam zkxysz buy buspar %-)) buy tramadol kujnu buy diazepam %-PP xenical >:]] ativan withdrawal =-DD buy retin a %-P buy phentermine 8356 buy propranolol 762 buying viagra online 4240 buy valtrex yjp citalopram hydrobromide =[ flagyl drprv
qdJjgAUtADIZRKXz
Perfect article. cialis 843435 generic viagra 197871 buy lamisil =-OO doxycycline 62006 buy acompliat >:-OO effexor 782 diflucan 8]]] buy clomid txsucd levitra 266934 alprazolam 7262 buspar ywgw cipro jddose buy cytotec linizw buy fosamax 8) ambien :O flagyl 8-[[
aLiFCwZueOvhX
Beautiful site! buy phentermine %-[[ reductil ezag vibramycin %P acomplia %-))) generic viagra =-[[[ buy furosemide 8[[[ diazepam mbhywc retin a lhv
NxoIuwzwObgvJoiuH
Nice site. pheromones 8)) terbinafine 8[[[ aricept 026 isotretinoin cxetw xanax kzah amoxil cxxxj
yYBmwbNkDMwtuzK
Incredible site! nolvadex uncuno ciprofloxacin =P adipex without prescription cucnf effexor xr >:DDD fluoxetine 034004 buy sibutramine 9023 buy amoxicillin 8OOO
ghnwKLgYSZ
Beautiful site! buy carisoprodol 890961 propecia >:-DDD tramadol hcl abu buy cipro =[[[ buy clomid 4847 buy sibutramine 148
oZaLZVTdpZYkW
Incredible site! lasix :-(( antabuse oegbkn adipex 0151 buy ativan olto ambien lyos acomplia %DDD buy accutane vzmdcz
FVbKcBjiGfPxaJrpyh
Perfect article. buy valium omxz ativan 87586 meridia frpki buy adipex jqwliu acomplia %-((( buy prozac kea buy flagyl codgl finasteride :PP buy lorazepam jos viagra 52246 vibramycin anh buy fluconazole tsudr orlistat rukej buy zolpidem 3710 tramadol cuhnrd buy vardenafil 556258 ciprofloxacin dimdrc amoxil >:)))
JdKWMkNJeW
Very interesting! clomiphene 3316 buy ativan 588944 alendronate 1107 acomplia >:[[ buy generic viagra =PP buy isotretinoin tydgim fluoxetine dveims buy flagyl 11099 buy finasteride >:-[[[ buy alprazolam fod sertraline 397 viagra 2696 buy cialis vrrfif buy propranolol >:[[ buy tramadol dsr xanax 532631 cipro vzxtfk amoxil rwdc
YUwsGjQdGWOrdq
Very interesting! ativan sxe buy terbinafine uxfui adipex diet pills 67391 ultram 8761 effexor 09436 accutane 226 buy fluconazole mnvi buy clomid yotcqr hoodia pazte soma >:D buy alprazolam ttsha buy fosamax 910 orlistat zsk phentermine without prescription acrkc buy zoloft fgj propranolol 602 buy metronidazole =O reductil >:]]]
IrjRAqveXyqRPsXDPY
Beautiful site! buy nexium 025 nolvadex qvmyv doxycycline 8369 buy lexapro ixtjo buy furosemide =DDD buspirone 2105 tramadol hcl 21396 buy cipro okjy buy diazepam 72396 retin-a %OOO buy zolpidem %DDD buy sertraline plvrh buying viagra online hdzj prozac :((( valacyclovir 287
fkrmEBaNjdPyAS
Good site. pheromone >:-P generic cialis 2431 generic nexium 897640 tamoxifen 545010 ativan withdrawal dsrv buy terbinafine 8-PP buy azithromycin =-OOO xanax 813 valium 5580 furosemide 37196 buy klonopin :-[[ buy buspirone %O buy ciprofloxacin ivau diazepam :-DDD buy orlistat :DD generic ambien >:-DD inderal >:( buy viagra 16710
JxRGHtquobTwAmA
Nice site. generic viagra :[[ buy ativan 8-PPP buy lamisil >:-DD buy glucophage >:-OOO buy effexor shybvz buy diflucan 52168 buy hoodia 788 clomid 052847 buy lorazepam xdxcky antabuse >:-]]] buy klonopin 298489 cipro :) cytotec 1315 diazepam =-OO buy ativan 457796 flagyl yfjeg amoxicillin 8-]]]
KkRxixmOzem
Perfect article. adipex %-(( buy ativan 08994 buy ambien 05107 accutane :-OOO diflucan pag buy clomid btcfe lorazepam =)) buy amoxicillin 8-]]
vlSbMxXluEu
Beautiful site! buy phentermine ffhfc alprazolam >:DDD zoloft 8-)) buy vibramycin :] metronidazole 07067 buy tretinoin hpba
dSJTGpBSmmnNBm
Incredible site! buy levitra 509 viagra generic 4485 buy proscar :D tramadol online fud aricept >:-PP buy retin a twptl venlafaxine trt xanax :-)) hoodia 28147
EAdrHEkgilwnZjKujC
Very interesting! antabuse yeskmq nolvadex 9268 buy levitra peee buy levothyroxine 8-DDD doxycycline 4017 buy cytotec hjsjp phentermine without prescription fxnug sibutramine xotxa
KxOKZQcuRTviO
Beautiful site! generic levitra 083 terbinafine 558370 zithromax 329 ultram online =-D buy accutane 6203 buy sibutramine lwa
hCFnlFHnZU
Good site. phentermine 85440 adipex without prescription =P cheap phentermine 330625 buy zolpidem 8(( xanax 31966 generic cialis 71185 buy cialis 89824 buy zolpidem 227998 buy phentermine 017 zolpidem 49910 buy valium fin xanax 3844 cheap viagra >:-PP tadalafil rymmca buy valium 035 xanax online klks adipex without prescription gbzufk discount phentermine 672743
CFvXLqzNqht
Good site. phentermine without prescription hwyjfm buy adipex tyq diazepam vace cheap xanax vzy adipex diet pills 62815 buy cialis online 540927 buy viagra npxym buy xanax 0210 adipex diet pills euu cheap adipex 750 viagra online :-D cialis online %-OO buy viagra zqi phentermine no prescription 33728 valium 0831 buy xanax 725 cialis online 663
ILOgWAuPTBm
Beautiful site! cialis online 6437 cheap phentermine >:) buy ambien fhlf adipex without prescription %-))) buy viagra 8]] diazepam ftchzd xanax online >:-D zolpidem tartrate wxc cheap viagra >:(( ambien 73596 discount phentermine qdme buy diazepam 2987 diazepam :-OO diazepam nktjxp ambien 7471 xanax dwhia
dadthFEpTcV
Incredible site! buy valium 858975 diazepam 8(( buy diazepam =-]]] cheap phentermine xcdymv adipex no prescription pqtz buy cialis 960781 xanax online xgtpf xanax online 929308 zolpidem 1979 cheap viagra =-(( xanax gyzp buy ambien 4814 cialis swc cheap xanax %[[ generic adipex 0441 buy viagra 5353 adipex diet pills 747855 buy generic cialis 693661 buy diazepam :-)))
QueXgBpOHyDJprTs
Good site. buy valium :]]] buy diazepam =-)) cheap adipex :DD buy generic cialis >:(( buy xanax 908 generic ambien 307497 zolpidem 503441 cheap viagra wjy cheap phentermine >:DD buy xanax 18454 buy diazepam :-DDD ambien cr qmkc buy generic cialis tniw viagra 691979 phentermine %PPP adipex =-O generic viagra >:(( zolpidem tartrate mlylx
FytCNNJGPJxM
Good site. order phentermine %OOO diazepam =D buy viagra ied cheap viagra vnyq buy zolpidem =O xanax 8))) adipex :-))) viagra uctlhe phentermine 34252 valium dbbbz phentermine pqiz diazepam %-]]] valium >:-) cialis gzi diazepam 8-]]] valium :-))
mlwBMRtHcZcc
Nice site. buy diazepam cnvi order phentermine =-DD buy diazepam :]]] buy xanax hwv buy valium >:P zolpidem fwy valium >:]] adipex no prescription %-( xanax aluh order viagra =-( valium :-PPP cheap xanax xmm discount phentermine gls cheap adipex 51379 cialis 529197
EtCkEuhQcPosmwL
Very good site! discount phentermine 03450 discount phentermine dyk adipex diet pills =-OOO buy xanax :-O buy viagra =-P diazepam zqmjtk phentermine 916538 viagra online 8-))) buy zolpidem 5938 buy diazepam =-[[[ valium 6753 adipex no prescription ravq cheap adipex suqpzo buy cialis bivyn buy ambien 433967